intuit / fuzzy-matcher

A Java library to determine probability of objects being similar.
Apache License 2.0
228 stars 69 forks source link

IllegalStateException: stream has already been operated upon or closed #15

Closed edreyer closed 4 years ago

edreyer commented 4 years ago

I got the following exception when attempting to match a Document.

Caused by: java.lang.IllegalStateException: stream has already been operated upon or closed
    at java.util.stream.AbstractPipeline.<init>(AbstractPipeline.java:203) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline.<init>(ReferencePipeline.java:94) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline$StatelessOp.<init>(ReferencePipeline.java:618) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline$2.<init>(ReferencePipeline.java:163) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline.filter(ReferencePipeline.java:162) ~[na:1.8.0_181]
    at com.intuit.fuzzymatcher.domain.Token.getSearchGroups(Token.java:55) ~[fuzzy-matcher-0.4.2.jar:na]
    at com.intuit.fuzzymatcher.function.MatchOptimizerFunction.lambda$null$12(MatchOptimizerFunction.java:177) ~[fuzzy-matcher-0.4.2.jar:na]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:1.8.0_181]
    at java.util.stream.DistinctOps$1$2.accept(DistinctOps.java:175) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_181]
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_181]
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_181]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_181]
    at com.intuit.fuzzymatcher.function.MatchOptimizerFunction.lambda$initializeSearchGroups$13(MatchOptimizerFunction.java:171) ~[fuzzy-matcher-0.4.2.jar:na]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_181]
    at java.util.stream.DistinctOps$1$2.accept(DistinctOps.java:175) ~[na:1.8.0_181]
    at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1625) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_181]
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_181]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_181]
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_181]
    at com.intuit.fuzzymatcher.function.MatchOptimizerFunction.initializeSearchGroups(MatchOptimizerFunction.java:166) ~[fuzzy-matcher-0.4.2.jar:na]
    at com.intuit.fuzzymatcher.function.MatchOptimizerFunction.lambda$searchGroupOptimizer$8(MatchOptimizerFunction.java:148) ~[fuzzy-matcher-0.4.2.jar:na]
    at com.intuit.fuzzymatcher.component.TokenMatch.lambda$matchTokens$1(TokenMatch.java:26) ~[fuzzy-matcher-0.4.2.jar:na]
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[na:1.8.0_181]
    at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1696) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_181]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_181]
    at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747) ~[na:1.8.0_181]
    at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721) ~[na:1.8.0_181]
    at java.util.stream.AbstractTask.compute(AbstractTask.java:316) ~[na:1.8.0_181]
    at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) ~[na:1.8.0_181]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[na:1.8.0_181]
    at java.util.concurrent.ForkJoinPool$WorkQueue.execLocalTasks(ForkJoinPool.java:1040) ~[na:1.8.0_181]
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1058) ~[na:1.8.0_181]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[na:1.8.0_181]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[na:1.8.0_181]
edreyer commented 4 years ago

Turned out this was my mistake