-2
final BigDecimal couponlessAmount = orderItems.stream()
.filter(item -> !item.getIsUseCoupon())
.map(item -> item.getTotalAmount().subtract(item.getReduceProductAmount()))
.reduce(BigDecimal.ZERO, BigDecimal::add);
何かがそれはJDK/JITのバグではないようだjava.util.ConcurrentModificationException
java8ストリームマップが原因でConcurrentModificationExceptionが発生するのはなぜですか?
java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380) ~[?:1.8.0_77]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_77]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_77]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_77]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_77]
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:474) ~[?:1.8.0_77]
at com.yijiupi.himalaya.ordercompute.provider.domain.component.computer.CouponUseLimitComputer.getMaxUseAmount(CouponUseLimitComputer.java:103) ~[classes/:?]
時々、それはJDK、おそらくJITのバグだと思う – komite