Mahmoud Ben Hassine <mbenhassine@vmware.com>: Author Summary
Build | Completed | Code commits | Tests |
---|---|---|---|
BATCH › SONAR › #3002 | 2 weeks ago | Testless build | |
BATCH › NIGHTLY › #5060 | 2 weeks ago |
Fix plugin repositories order in build script
Issue #3823 |
4033 passed |
BATCH › JL › #310 | 2 weeks ago |
Fix plugin repositories order in build script
Issue #3823 |
Testless build |
BATCH › GRAD › #744 | 2 weeks ago |
Fix plugin repositories order in build script
Issue #3823 |
4033 passed |
BATCH › MCI › #10 | 1 month ago |
Update maven plugins to latest versions
|
3792 passed |
BATCH › MCI › #9 | 1 month ago |
Replace usage of "build" directory with "target"
|
3792 passed |
BATCH › MCI › #8 | 1 month ago |
Add maven-jar-plugin configuration
|
3792 passed |
BATCH › MCI › #7 | 1 month ago |
Tweak documentation generation process
* Update and filter distribution resources * Use maven's `site` phase instead of `verify` to generate docs/distribution |
3792 passed |
BATCH › MCI › #6 | 1 month ago |
Update build process documentation
|
3792 passed |
BATCH › MCI › #5 | 1 month ago |
Add maven gpg plugin to sign artifacts
Update configuration to run unit/integration tests separately
This commit updates the configuration to run unit tests with maven-surefire-plugin and integration tests with maven-failsafe-plugin. JSR-352 TCK tests are considered as integration tests and are executed with other integration tests (no need for a separate profile to run them). Some unit tests were failing when integration tests were skipped.. Those tests have been temporarily ignored. Add maven profile to run test coverage analysis with jacoco
Re-organize dependencies
Add maven wrapper files
Add flatten-maven-plugin configuration
Add maven deploy plugin
|
3792 passed |
Build | Completed | Code commits | Tests |
---|---|---|---|
BATCH › JL › #310 | 2 weeks ago |
Fix plugin repositories order in build script
Issue #3823 |
Testless build |
BATCH › NIGHTLY › #5029 | 1 month ago |
Fix ignored tests
Remove ignored test suites
Signed-off-by: Mahmoud Ben Hassine <mbenhassine@vmware.com> Merge spring-batch-core-tests in spring-batch-core
Merge spring-batch-infrastructure-tests in spring-batch-infrastructure
Move BatchMessageListenerContainer to src/test
Remove ignored test
Based on the commit message of df1783a7, this test has no added value. |
3702 passed |
BATCH › GRAD › #742 | 1 month ago |
Move BatchMessageListenerContainer to src/test
Merge spring-batch-infrastructure-tests in spring-batch-infrastructure
Merge spring-batch-core-tests in spring-batch-core
|
3702 passed |
BATCH › GRAD › #735 | 2 months ago |
Polish contribution cbdb251441968197aca805cdda4e634ab8542c39
* Fix assertion messages in tests * Use transactional tests instead of a separate service with a transactional method |
3899 passed |
BATCH › FB › #449 | 2 months ago |
Downgrade spring framework version to v5.0.15
Revert "Downgrade commons-dbcp2 to v2.2.0"
This reverts commit 339fd609 |
Testless build |
BATCH › FB › #341 | 2 months ago |
Revert "Explicitly considering Start Time not being null for running Job Executions"
This reverts commit f8f8a02a |
1 of 1929 failed |
BATCH › FB › #275 | 2 months ago |
Use H2 instead of HSQLDB for tests
Revert "Use isolation level READ_COMMITTED for tests"
|
56 of 1896 failed |
BATCH › GRAD › #729 | 2 months ago |
Update gradle version to 6.7
Update sonarqube plugin version to 3.0
Update "what's new" section for version 5.0
|
1 of 1927 failed |
BATCH › NIGHTLY › #4980 | 2 months ago |
Update dependencies
|
1920 passed |
BATCH › BATCHWIN › #281 | 2 months ago |
Upgrade JUnit version to 4.13.1
|
1 of 1926 failed |
Build | Completed | Code commits | Tests |
---|---|---|---|
BATCH › NIGHTLY › #5060 | 2 weeks ago |
Fix plugin repositories order in build script
Issue #3823 |
4033 passed |
BATCH › NIGHTLY › #5030 | 1 month ago |
Move docs to src directory
|
4033 passed |
BATCH › GRAD › #743 | 1 month ago |
Move docs to src directory
|
4033 passed |
BATCH › NIGHTLY › #5023 | 1 month ago |
Add maven central to buildscript repository
Polish contribution feb46fd3f74716db42e2d34639d4a6952e7267e5
* Update year in license header * Use "this" keyword where appropriate |
4030 passed |
BATCH › NIGHTLY › #5005 | 2 months ago |
Polish contribution cbdb251441968197aca805cdda4e634ab8542c39
* Fix assertion messages in tests * Use transactional tests instead of a separate service with a transactional method Update build to resolve dependencies from maven central first
|
4028 passed |
BATCH › SONAR › #2956 | 2 months ago |
Update build to resolve dependencies from maven central first
Polish contribution cbdb251441968197aca805cdda4e634ab8542c39
* Fix assertion messages in tests * Use transactional tests instead of a separate service with a transactional method |
Testless build |
BATCH › SONAR › #2953 | 2 months ago |
Fix KafkaItemReaderTests
Tests in this class fail intermittently because they send messages to Kafka in an asynchronous way and assert on the results immediately without waiting for the send operation to complete. This commit updates the tests to wait for send results before asserting on them (similar to a140a9f5). Fix PartitionParserTests
Some tests in PartitionParserTests were failing intermittently due to the usage of non-synchronized shared state between concurrent threads. This commit updates the test code to use `AtomicInteger` instead of `int` for the state shared between concurrent threads. Fix flaky tests
JsrSplitParsingTests#test and DecisionStepTests#testDecisionAfterSplit were failing intermittently with: ``` org.springframework.batch.core.JobExecutionException: Flow execution ended unexpectedly at org.springframework.batch.core.jsr.job.flow.JsrFlowJob.doExecute(JsrFlowJob.java:88) ~[main/:?] at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:320) [main/:?] at org.springframework.batch.core.jsr.launch.JsrJobOperator$2.run(JsrJobOperator.java:674) [main/:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232] Caused by: org.springframework.batch.core.job.flow.FlowExecutionException: Ended flow=flow1.step1 at state=flow1.step1.flow1.step1 with exception at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:178) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91) ~[main/:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232] ... 1 more Caused by: org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [INSERT INTO BATCH_STEP_EXECUTION_CONTEXT (SHORT_CONTEXT, SERIALIZED_CONTEXT, STEP_EXECUTION_ID) VALUES(?, ?, ?)]; transaction rollback: serialization failure; nested exception is java.sql.SQLTransactionRollbackException: transaction rollback: serialization failure at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:73) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1541) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:667) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.persistSerializedContext(JdbcExecutionContextDao.java:236) ~[main/:?] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.saveExecutionContext(JdbcExecutionContextDao.java:189) ~[main/:?] at org.springframework.batch.core.repository.support.SimpleJobRepository.add(SimpleJobRepository.java:177) ~[main/:?] at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:371) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:134) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.0.jar:5.3.0] at com.sun.proxy.$Proxy41.add(Unknown Source) ~[?:?] at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68) ~[main/:?] at org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState.handle(JsrStepState.java:53) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91) ~[main/:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232] ... 1 more Caused by: java.sql.SQLTransactionRollbackException: transaction rollback: serialization failure at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.8.0.jar:2.8.0] at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.8.0.jar:2.8.0] at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:965) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.persistSerializedContext(JdbcExecutionContextDao.java:236) ~[main/:?] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.saveExecutionContext(JdbcExecutionContextDao.java:189) ~[main/:?] at org.springframework.batch.core.repository.support.SimpleJobRepository.add(SimpleJobRepository.java:177) ~[main/:?] at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:371) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:134) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.0.jar:5.3.0] at com.sun.proxy.$Proxy41.add(Unknown Source) ~[?:?] at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68) ~[main/:?] at org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState.handle(JsrStepState.java:53) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91) ~[main/:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232] ... 1 more Caused by: org.hsqldb.HsqlException: transaction rollback: serialization failure at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.Session.handleAbortTransaction(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.Session.executeCompiledStatement(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.Session.execute(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source) ~[hsqldb-2.5.1.jar:2.5.1] at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.8.0.jar:2.8.0] at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.8.0.jar:2.8.0] at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:965) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015) ~[spring-jdbc-5.3.0.jar:5.3.0] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.persistSerializedContext(JdbcExecutionContextDao.java:236) ~[main/:?] at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.saveExecutionContext(JdbcExecutionContextDao.java:189) ~[main/:?] at org.springframework.batch.core.repository.support.SimpleJobRepository.add(SimpleJobRepository.java:177) ~[main/:?] at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:371) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:134) ~[spring-tx-5.3.0.jar:5.3.0] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.0.jar:5.3.0] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.0.jar:5.3.0] at com.sun.proxy.$Proxy41.add(Unknown Source) ~[?:?] at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68) ~[main/:?] at org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState.handle(JsrStepState.java:53) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169) ~[main/:?] at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94) ~[main/:?] at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91) ~[main/:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232] ... 1 more ``` This failure is due to a concurrency issue when executing the split flow with the default SimpleAsyncTaskExecutor. Several attempts have been made to fix this issue with no success: * use `@DirtiesContext` annotation * use a separate db for each test * use `READ_COMMITTED` isolation level in the job repository * downgrade hsqldb from v2.5.1 to v2.4.1 (since v2.5.1 has introduced several changes in the MVCC mode) The issue seems to be related to how the in-memory database is shared between tests *and* how the test context is cached (ie the combination of both). This commit moves these tests to a separate test class which seem to fix the issue. Fix OptimisticLockingFailureTests#testAsyncStopOfStartingJob
This test was failing intermittently due to an incorrect way of waiting for a job execution to finish, which is: ``` while(jobExecution.isRunning()) { // wait for async launched job to complete execution } ``` `JobExecution#isRunning()` is based on the status of the job execution in memory which might not be persisted yet. Here is an excerpt from the Javadoc: ``` Test if this JobExecution indicates that it is running. It should be noted that this does not necessarily mean that it has been persisted as such yet. ``` That's why in the case where `isRunning` returns false and the JobExecution is not persisted yet (which is still in a running status in db), the second attempt of re-running the job fails with a `JobExecutionAlreadyRunningException`. This commit fixes the loop by continuously checking the status of the Job execution in the job repository until it reaches one of the end statuses. Issue #1121 Remove unused code in DecisionStepTests
|
Testless build |
BATCH › FB › #451 | 2 months ago |
Fix build
|
1922 passed |
BATCH › FB › #308 | 2 months ago |
Remove unused code in DecisionStepTests
|
1922 passed |
BATCH › GRAD › #730 | 2 months ago |
Remove outdated retry documentation
Spring Retry was pulled out of Spring Batch since 2.2. The documentation of Spring Retry has evolved since then, and the retry section of the batch docs is now out of sync. This commit removes the outdated documentation while keeping the link to Spring Retry. |
3896 passed |
Issue #3823