GPars findAllParallel Bug

By Robert Fischer, 4 Months ago, written in groovy.
  1. import static groovyx.gpars.Parallelizer.doParallel
  2.  
  3. @Grab(group='org.codehaus.gpars', module='gpars', version='0.9')
  4. @Grab(group='org.coconut.forkjoin', module='jsr166y', version='070108')
  5. class Foo {}
  6.  
  7. doParallel {
  8.     def arbitraryData = (1..1000).collect { new Random().nextInt() }
  9.     arbitraryData.findAllParallel { it % 2 }.min()
  10. }
  11.  
  12. /*
  13.  
  14. java.lang.ClassCastException: java.lang.Integer
  15.         at $Proxy9.evaluate(Unknown Source)
  16.         at jsr166y.forkjoin.ParallelArray$WithBoundedFilter.leafIndexSelected(ParallelArray.java:1846)
  17.         at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1292)
  18.         at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
  19.         at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
  20.         at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
  21.         at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
  22.         at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
  23.         at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
  24.         at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
  25.         at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
  26.         at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
  27.         at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
  28.         at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
  29.         at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
  30.         at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
  31.         at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
  32.         at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
  33.         at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
  34.         at jsr166y.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:286)
  35.  
  36. */