Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-15195

Missing dependency in jberet-core module

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Minor
    • None
    • 23.0.2.Final, 24.0.1.Final
    • Batch
    • None
      1. Configure batch subsystem to use JdbcRepository.
      2. Deploy a batch application with JPA and Bean Validation enabled.
      3. Perform checkpoint commit.

    Description

      As a regression due to WFLY-12393, when Bean Validation is enabled in a deployed batch application, a ClassNotFoundException will be thrown during checkpoint commit.

      Simply adding the missing javax.validation.api dependency to the jberet-core module will fix this.

      2021-08-23 17:52:33,253 ERROR [org.jberet] (Batch Thread - 5) JBERET000007: Failed to run job XXXXXX, , org.jberet.job.model.Job@68d7b80d: javax.batch.operations.BatchRuntimeException: JBERET000626: Failed to run UPDATE STEP_EXECUTION SET ENDTIME=?, BATCHSTATUS=?, EXITSTATUS=?, EXECUTIONEXCEPTION=?, PERSISTENTUSERDATA=?, READCOUNT=?, WRITECOUNT=?, COMMITCOUNT=?, ROLLBACKCOUNT=?, READSKIPCOUNT=?, PROCESSSKIPCOUNT=?, FILTERCOUNT=?, WRITESKIPCOUNT=?, READERCHECKPOINTINFO=?, WRITERCHECKPOINTINFO=? WHERE STEPEXECUTIONID=?
      	at org.jberet.repository.JdbcRepository.updateStepExecution(JdbcRepository.java:720)
      	at org.jberet.repository.JdbcRepository.savePersistentData(JdbcRepository.java:732)
      	at org.wildfly.extension.batch.jberet.job.repository.JobRepositoryService.savePersistentData(JobRepositoryService.java:189)
      	at org.wildfly.extension.batch.jberet.job.repository.JdbcJobRepositoryService.savePersistentData(JdbcJobRepositoryService.java:44)
      	at org.jberet.runtime.context.StepContextImpl.savePersistentData(StepContextImpl.java:199)
      	at org.jberet.runtime.runner.StepExecutionRunner.run(StepExecutionRunner.java:171)
      	at org.jberet.runtime.runner.CompositeExecutionRunner.runStep(CompositeExecutionRunner.java:164)
      	at org.jberet.runtime.runner.CompositeExecutionRunner.runFromHeadOrRestartPoint(CompositeExecutionRunner.java:88)
      	at org.jberet.runtime.runner.JobExecutionRunner.run(JobExecutionRunner.java:60)
      	at org.wildfly.extension.batch.jberet.deployment.BatchEnvironmentService$WildFlyBatchEnvironment$1.run(BatchEnvironmentService.java:189)
      	at org.wildfly.extension.requestcontroller.ControlPointTask.run(ControlPointTask.java:46)
      	at org.wildfly.extension.batch.jberet.thread.pool.WildFlyJobExecutor$1.run(WildFlyJobExecutor.java:72)
      	at org.jberet.spi.JobExecutor$1.run(JobExecutor.java:99)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      	at org.jboss.threads.JBossThread.run(JBossThread.java:513)
      Caused by: javax.batch.operations.BatchRuntimeException: JBERET000653: Failed to deserialize: [...]
      	at org.jberet.runtime.SerializableData.deserialize(SerializableData.java:112)
      	at org.jberet.runtime.AbstractStepExecution.deserialize(AbstractStepExecution.java:169)
      	at org.jberet.runtime.AbstractStepExecution.getException(AbstractStepExecution.java:104)
      	at org.jberet.repository.JdbcRepository.updateStepExecution(JdbcRepository.java:703)
      	... 16 more
      Caused by: java.lang.ClassNotFoundException: javax.validation.constraints.NotNull from [Module "org.jberet.jberet-core" version 1.3.7.Final from local module loader @4883b407 (finder: local module finder @7d9d1a19 (roots: D:\wildfly-23.0.2.Final\modules,D:\wildfly-23.0.2.Final\modules\system\layers\base))]
      	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
      	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
      	at java.lang.Class.forName0(Native Method)
      	at java.lang.Class.forName(Class.java:348)
      	at java.io.ObjectInputStream.resolveProxyClass(ObjectInputStream.java:830)
      	at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1908)
      	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1847)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2160)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2405)
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2329)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2187)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2405)
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2329)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2187)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2405)
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2329)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2187)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:503)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:461)
      	at java.util.HashSet.readObject(HashSet.java:341)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1184)
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2296)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2187)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2405)
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2329)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2187)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1667)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:503)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:461)
      	at org.jberet.util.BatchUtil.bytesToSerializableObject(BatchUtil.java:113)
      	at org.jberet.runtime.SerializableData.deserialize(SerializableData.java:108)
      	... 19 more
      

      Attachments

        Activity

          People

            cfang@redhat.com Cheng Fang
            joseph.choi Joseph Choi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: