Open
Description
hi spring batch teams.i am using spring batch 5.0.3. When I compile the project as native, I am getting an error as follows. Can you provide aot support for RepositoryItemReader?
The reproduce example codes are shared via my Github, check here.
Spring boot version: 3.1.3
Spring Batch version: 5.0.3
Kotlin version: 1.9.10
Java version: 17
2023-09-17T12:02:04.118+03:00 DEBUG 81289 --- [ main] o.s.b.c.r.dao.JdbcJobExecutionDao : Truncating long message before update of JobExecution: JobExecution: id=1, version=1, startTime=2023-09-17T12:02:04.083372, endTime=2023-09-17T12:02:04.118208, lastUpdated=2023-09-17T12:02:04.118833, status=FAILED, exitStatus=exitCode=FAILED;exitDescription=org.springframework.batch.item.adapter.DynamicMethodInvocationException: java.lang.NoSuchMethodException: jdk.proxy4.$Proxy50.findAll(org.springframework.data.domain.PageRequest)
at org.springframework.batch.item.data.RepositoryItemReader.doInvoke(RepositoryItemReader.java:261)
at org.springframework.batch.item.data.RepositoryItemReader.doPageRead(RepositoryItemReader.java:228)
at org.springframework.batch.item.data.RepositoryItemReader.doRead(RepositoryItemReader.java:174)
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.read(AbstractItemCountingItemStreamItemReader.java:95)
at org.springframework.batch.core.step.item.SimpleChunkProvider.doRead(SimpleChunkProvider.java:108)
at org.springframework.batch.core.step.item.SimpleChunkProvider.read(SimpleChunkProvider.java:182)
at org.springframework.batch.core.step.item.SimpleChunkProvider.lambda$provide$0(SimpleChunkProvider.java:132)
at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:362)
at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:206)
at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:140)
at org.springframework.batch.core.step.item.SimpleChunkProvider.provide(SimpleChunkProvider.java:127)
at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:69)
at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:389)
at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:313)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:256)
at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:82)
at org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate$ExecutingRunnable.run(TaskExecutorRepeatTemplate.java:261)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at [email protected]/java.lang.Thread.run(Thread.java:833)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
Caused by: java.lang.NoSuchMethodException: jdk.proxy4.$Proxy50.findAll(org.springframework.data.domain.PageRequest)
at [email protected]/java.lang.Class.getMethod(DynamicHub.java:2227)
at org.springframework.util.MethodInvoker.prepare(MethodInvoker.java:184)
at org.springframework.batch.item.data.RepositoryItemReader.doInvoke(RepositoryItemReader.java:258)
... 22 more
, job=[JobInstance: id=1, version=0, Job=[postInfoJob]], jobParameters=[{'run.id':'{value=1, type=class java.lang.Long, identifying=true}'}]