Skip to content

Commit 821b37f

Browse files
committed
ValidationProcessor: don't cache {Array,Object}SchemaSelector results anymore
Given the issue, the plan is to create a ValidationProcessor for each validation. As such, caching these doesn't make sense anymore. Signed-off-by: Francis Galiegue <[email protected]>
1 parent 8ad8249 commit 821b37f

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

src/main/java/com/github/fge/jsonschema/processors/validation/ValidationProcessor.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@
3737
import com.github.fge.jsonschema.processors.data.SchemaContext;
3838
import com.github.fge.jsonschema.processors.data.ValidatorList;
3939
import com.github.fge.msgsimple.bundle.MessageBundle;
40-
import com.google.common.cache.CacheBuilder;
4140
import com.google.common.cache.CacheLoader;
42-
import com.google.common.cache.LoadingCache;
4341
import com.google.common.collect.Lists;
4442

4543
import java.util.Collections;
@@ -54,8 +52,6 @@ public final class ValidationProcessor
5452
private final MessageBundle syntaxMessages;
5553
private final MessageBundle validationMessages;
5654
private final Processor<SchemaContext, ValidatorList> processor;
57-
private final LoadingCache<JsonNode, ArraySchemaSelector> arrayCache;
58-
private final LoadingCache<JsonNode, ObjectSchemaSelector> objectCache;
5955

6056
public ValidationProcessor(final ValidationConfiguration cfg,
6157
final Processor<SchemaContext, ValidatorList> processor)
@@ -65,8 +61,6 @@ public ValidationProcessor(final ValidationConfiguration cfg,
6561
this.processor = new CachingProcessor<SchemaContext, ValidatorList>(
6662
processor, SchemaContextEquivalence.getInstance()
6763
);
68-
arrayCache = CacheBuilder.newBuilder().build(arrayLoader());
69-
objectCache = CacheBuilder.newBuilder().build(objectLoader());
7064
}
7165

7266
@Override
@@ -155,7 +149,7 @@ private void processArray(final ProcessingReport report,
155149
final JsonNode node = instance.getNode();
156150

157151
final JsonNode digest = ArraySchemaDigester.getInstance().digest(schema);
158-
final ArraySchemaSelector selector = arrayCache.getUnchecked(digest);
152+
final ArraySchemaSelector selector = new ArraySchemaSelector(digest);
159153

160154
final int size = node.size();
161155

@@ -184,7 +178,7 @@ private void processObject(final ProcessingReport report,
184178

185179
final JsonNode digest = ObjectSchemaDigester.getInstance()
186180
.digest(schema);
187-
final ObjectSchemaSelector selector = objectCache.getUnchecked(digest);
181+
final ObjectSchemaSelector selector = new ObjectSchemaSelector(digest);
188182

189183
final List<String> fields = Lists.newArrayList(node.fieldNames());
190184
Collections.sort(fields);

0 commit comments

Comments
 (0)