WASdev / standards.jsr352.jbatch

Home of 'jbatch', a compatible implementation of the Jakarta Batch specification (and the former Reference Implementation for the JSR 352, Batch Applications for the Java Platform specification).
Other
21 stars 18 forks source link

Java EE7 sample Chunk Exception test now fails #25

Closed smillidge closed 9 years ago

smillidge commented 9 years ago

The JBatch JavaEE 7 chunk exception sample now fails its tests on a current build of JBatch. https://github.com/javaee-samples/javaee7-samples/tree/master/batch/chunk-exception

The process skip count is coming up with the value 2 rather than the expected 1.

Debugging within Payara shows that the count is incremented twice with the following relevant stacks showing the traces to the point where the count is updated.

"concurrent/__defaultManagedExecutorService-managedThreadFactory-Thread-12" com.ibm.jbatch.container.impl.ChunkStepControllerImpl.processItem(ChunkStepControllerImpl.java:411) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.readAndProcess(ChunkStepControllerImpl.java:247) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.invokeChunk(ChunkStepControllerImpl.java:600) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.invokeCoreStep(ChunkStepControllerImpl.java:744) com.ibm.jbatch.container.impl.BaseStepControllerImpl.execute(BaseStepControllerImpl.java:144) com.ibm.jbatch.container.impl.ExecutionTransitioner.doExecutionLoop(ExecutionTransitioner.java:112) com.ibm.jbatch.container.impl.JobThreadRootControllerImpl.originateExecutionOnThread(JobThreadRootControllerImpl.java:110) com.ibm.jbatch.container.util.BatchWorkUnit.run(BatchWorkUnit.java:80) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.run(ManagedFutureTask.java:141) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:744) org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)

"concurrent/__defaultManagedExecutorService-managedThreadFactory-Thread-12" com.ibm.jbatch.container.impl.ChunkStepControllerImpl.processItem(ChunkStepControllerImpl.java:420) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.readAndProcess(ChunkStepControllerImpl.java:247) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.invokeChunk(ChunkStepControllerImpl.java:600) com.ibm.jbatch.container.impl.ChunkStepControllerImpl.invokeCoreStep(ChunkStepControllerImpl.java:744) com.ibm.jbatch.container.impl.BaseStepControllerImpl.execute(BaseStepControllerImpl.java:144) com.ibm.jbatch.container.impl.ExecutionTransitioner.doExecutionLoop(ExecutionTransitioner.java:112) com.ibm.jbatch.container.impl.JobThreadRootControllerImpl.originateExecutionOnThread(JobThreadRootControllerImpl.java:110) com.ibm.jbatch.container.util.BatchWorkUnit.run(BatchWorkUnit.java:80) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.run(ManagedFutureTask.java:141) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:744) org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)

smillidge commented 9 years ago

It could be the test in the sample is incorrect. The count is 1 on GlassFish 4.1 with the old JBatch 1.0

scottkurz commented 9 years ago

Steve,

Thanks for opening this.

Actually I noticed this among other issues in a detailed writeup of this sample here: https://github.com/javaee-samples/javaee7-samples/issues/281

I suggested loosening the assertion. Roberto is asking if the spec should be tightened to pin down the behavior here. I'm still thinking about it, but I imagine he might not want to change the sample until the spec question is resolved.. so we might remain in this state for a bit.

smillidge commented 9 years ago

Thanks no problem I didn't see the samples issue