Skip to content

Commit f23eb1e

Browse files
gsmetmarko-bekhta
authored andcommitted
HV-1831 Clean up another experiment that shouldn't have been committed
1 parent 74bdd10 commit f23eb1e

File tree

1 file changed

+12
-41
lines changed

1 file changed

+12
-41
lines changed

engine/src/main/java/org/hibernate/validator/internal/engine/validationcontext/AbstractValidationContext.java

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
package org.hibernate.validator.internal.engine.validationcontext;
88

99
import java.lang.invoke.MethodHandles;
10-
import java.util.ArrayList;
1110
import java.util.Collections;
12-
import java.util.HashMap;
1311
import java.util.HashSet;
12+
import java.util.IdentityHashMap;
1413
import java.util.Iterator;
1514
import java.util.Map;
1615
import java.util.Set;
@@ -103,19 +102,19 @@ abstract class AbstractValidationContext<T> implements BaseBeanValidationContext
103102
* The set of already processed meta constraints per bean - path ({@link BeanPathMetaConstraintProcessedUnit}).
104103
*/
105104
@Lazy
106-
private HashSet<BeanPathMetaConstraintProcessedUnit> processedPathUnits;
105+
private Set<BeanPathMetaConstraintProcessedUnit> processedPathUnits;
107106

108107
/**
109108
* The set of already processed groups per bean ({@link BeanGroupProcessedUnit}).
110109
*/
111110
@Lazy
112-
private HashSet<BeanGroupProcessedUnit> processedGroupUnits;
111+
private Set<BeanGroupProcessedUnit> processedGroupUnits;
113112

114113
/**
115114
* Maps an object to a list of paths in which it has been validated. The objects are the bean instances.
116115
*/
117116
@Lazy
118-
private HashMap<ProcessedBean, ArrayList<PathImpl>> processedPathsPerBean;
117+
private Map<Object, Set<PathImpl>> processedPathsPerBean;
119118

120119
/**
121120
* Contains all failing constraints so far.
@@ -339,7 +338,7 @@ private String interpolate(
339338
}
340339

341340
private boolean isAlreadyValidatedForPath(Object value, PathImpl path) {
342-
ArrayList<PathImpl> pathSet = getInitializedProcessedPathsPerBean().get( new ProcessedBean( value ) );
341+
Set<PathImpl> pathSet = getInitializedProcessedPathsPerBean().get( value );
343342
if ( pathSet == null ) {
344343
return false;
345344
}
@@ -375,13 +374,12 @@ private boolean isAlreadyValidatedForCurrentGroup(Object value, Class<?> group)
375374

376375
private void markCurrentBeanAsProcessedForCurrentPath(Object bean, PathImpl path) {
377376
// HV-1031 The path object is mutated as we traverse the object tree, hence copy it before saving it
378-
HashMap<ProcessedBean, ArrayList<PathImpl>> processedPathsPerBean = getInitializedProcessedPathsPerBean();
377+
Map<Object, Set<PathImpl>> processedPathsPerBean = getInitializedProcessedPathsPerBean();
379378

380-
ProcessedBean processedBean = new ProcessedBean( bean );
381-
ArrayList<PathImpl> processedPaths = processedPathsPerBean.get( processedBean );
379+
Set<PathImpl> processedPaths = processedPathsPerBean.get( bean );
382380
if ( processedPaths == null ) {
383-
processedPaths = new ArrayList<>();
384-
processedPathsPerBean.put( processedBean, processedPaths );
381+
processedPaths = new HashSet<>();
382+
processedPathsPerBean.put( bean, processedPaths );
385383
}
386384

387385
processedPaths.add( PathImpl.createCopy( path ) );
@@ -398,16 +396,16 @@ private Set<BeanPathMetaConstraintProcessedUnit> getInitializedProcessedPathUnit
398396
return processedPathUnits;
399397
}
400398

401-
private HashSet<BeanGroupProcessedUnit> getInitializedProcessedGroupUnits() {
399+
private Set<BeanGroupProcessedUnit> getInitializedProcessedGroupUnits() {
402400
if ( processedGroupUnits == null ) {
403401
processedGroupUnits = new HashSet<>();
404402
}
405403
return processedGroupUnits;
406404
}
407405

408-
private HashMap<ProcessedBean, ArrayList<PathImpl>> getInitializedProcessedPathsPerBean() {
406+
private Map<Object, Set<PathImpl>> getInitializedProcessedPathsPerBean() {
409407
if ( processedPathsPerBean == null ) {
410-
processedPathsPerBean = new HashMap<>();
408+
processedPathsPerBean = new IdentityHashMap<>();
411409
}
412410
return processedPathsPerBean;
413411
}
@@ -512,31 +510,4 @@ private int createHashCode() {
512510
return result;
513511
}
514512
}
515-
516-
private static final class ProcessedBean {
517-
518-
private Object bean;
519-
private int hashCode = -1;
520-
521-
ProcessedBean(Object bean) {
522-
this.bean = bean;
523-
}
524-
525-
@Override
526-
public boolean equals(Object o) {
527-
return this.bean == ((ProcessedBean) o).bean;
528-
}
529-
530-
@Override
531-
public int hashCode() {
532-
if ( hashCode == -1 ) {
533-
hashCode = createHashCode();
534-
}
535-
return hashCode;
536-
}
537-
538-
private int createHashCode() {
539-
return System.identityHashCode( bean );
540-
}
541-
}
542513
}

0 commit comments

Comments
 (0)