org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '10' exceeded

Apereo Issues | Dan McCallum | 3 years ago
  1. 0

    If an inbound csv file contains an unrecognized column name in its header row, the validation step logs a warning. E.g. {noformat} 15:35:38.520 [taskExecutor-1] WARN o.j.s.u.i.j.v.m.m.v.DatabaseConstraintMapValidator - Skipped validation because no metadata could be found for column 'ColumnReference[tableName=external_faculty_course_roster,columnName=stdnt_enrl_status]'. {noformat} That's fine, and makes sense. But later on, when we go to insert records into the staging tables, these rogue columns result in NPEs which effectively abort the entire file b/c no rows are successfully imported: {noformat} 15:35:54.317 [taskExecutor-1] INFO o.j.s.u.i.j.s.SqlServerExternalTableUpsertWriter - ******UPSERT****** batch start:500 batchstop:550 15:35:54.348 [taskExecutor-1] ERROR o.s.batch.core.step.AbstractStep - Encountered an error executing the step org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '10' exceeded at org.springframework.batch.core.step.skip.LimitCheckingItemSkipPolicy.shouldSkip(LimitCheckingItemSkipPolicy.java:133) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.skip.ExceptionClassifierSkipPolicy.shouldSkip(ExceptionClassifierSkipPolicy.java:70) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.shouldSkip(FaultTolerantChunkProcessor.java:498) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.checkSkipPolicy(FaultTolerantChunkProcessor.java:529) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.scan(FaultTolerantChunkProcessor.java:595) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.access$900(FaultTolerantChunkProcessor.java:50) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$5.recover(FaultTolerantChunkProcessor.java:413) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:435) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:304) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:188) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.BatchRetryTemplate.execute(BatchRetryTemplate.java:217) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.write(FaultTolerantChunkProcessor.java:423) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:199) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:395) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) ~[spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:267) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:77) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:368) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:253) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:139) [spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:136) [spring-batch-core-2.2.2.RELEASE.jar:na] at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_31] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_31] at java.lang.Thread.run(Unknown Source) [na:1.6.0_31] Caused by: java.lang.NullPointerException: null at org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter$1.doInPreparedStatement(SqlServerStagingTableWriter.java:131) ~[ssp-data-importer-impl-1.0.0.jar:1.0.0] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:589) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter.write(SqlServerStagingTableWriter.java:119) ~[ssp-data-importer-impl-1.0.0.jar:1.0.0] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_31] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at $Proxy0.write(Unknown Source) ~[na:na] at org.springframework.batch.item.support.CompositeItemWriter.write(CompositeItemWriter.java:51) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_31] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at $Proxy8.write(Unknown Source) ~[na:na] at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:175) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.scan(FaultTolerantChunkProcessor.java:580) ~[spring-batch-core-2.2.2.RELEASE.jar:na] ... 25 common frames omitted {noformat} This exception does appear in the logs (obviously), but there is no corresponding explanation in the report. Just a mysterious record count set: {noformat} Table Name: external_faculty_course_roster Parsed: 1843 Skipped on Parse: 1 Upserted: 0 Skipped on Write: 10 {noformat} Think we need to decide whether we consider a rogue column to be a row-fatal problem or not. If it is, we should just treat it like any other validation failure rather than letting it slide by. If it's not, we should either remove the rogue column from the output of the validation step or else implement some defensive code in the staging table writing components. We don't really have a notion of "soft failures" currently, or at least not that we represent in reports. So I think for this particular case we should probably start by considering a rogue column to be a row-fatal validation failure and handle it the same way we do any other such failure.

    Apereo Issues | 3 years ago | Dan McCallum
    org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '10' exceeded
  2. 0

    If an inbound csv file contains an unrecognized column name in its header row, the validation step logs a warning. E.g. {noformat} 15:35:38.520 [taskExecutor-1] WARN o.j.s.u.i.j.v.m.m.v.DatabaseConstraintMapValidator - Skipped validation because no metadata could be found for column 'ColumnReference[tableName=external_faculty_course_roster,columnName=stdnt_enrl_status]'. {noformat} That's fine, and makes sense. But later on, when we go to insert records into the staging tables, these rogue columns result in NPEs which effectively abort the entire file b/c no rows are successfully imported: {noformat} 15:35:54.317 [taskExecutor-1] INFO o.j.s.u.i.j.s.SqlServerExternalTableUpsertWriter - ******UPSERT****** batch start:500 batchstop:550 15:35:54.348 [taskExecutor-1] ERROR o.s.batch.core.step.AbstractStep - Encountered an error executing the step org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '10' exceeded at org.springframework.batch.core.step.skip.LimitCheckingItemSkipPolicy.shouldSkip(LimitCheckingItemSkipPolicy.java:133) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.skip.ExceptionClassifierSkipPolicy.shouldSkip(ExceptionClassifierSkipPolicy.java:70) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.shouldSkip(FaultTolerantChunkProcessor.java:498) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.checkSkipPolicy(FaultTolerantChunkProcessor.java:529) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.scan(FaultTolerantChunkProcessor.java:595) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.access$900(FaultTolerantChunkProcessor.java:50) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$5.recover(FaultTolerantChunkProcessor.java:413) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:435) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:304) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:188) ~[spring-retry-1.0.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.BatchRetryTemplate.execute(BatchRetryTemplate.java:217) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.write(FaultTolerantChunkProcessor.java:423) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:199) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:395) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) ~[spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:267) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:77) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:368) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:253) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:139) [spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:136) [spring-batch-core-2.2.2.RELEASE.jar:na] at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_31] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_31] at java.lang.Thread.run(Unknown Source) [na:1.6.0_31] Caused by: java.lang.NullPointerException: null at org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter$1.doInPreparedStatement(SqlServerStagingTableWriter.java:131) ~[ssp-data-importer-impl-1.0.0.jar:1.0.0] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:589) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter.write(SqlServerStagingTableWriter.java:119) ~[ssp-data-importer-impl-1.0.0.jar:1.0.0] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_31] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at $Proxy0.write(Unknown Source) ~[na:na] at org.springframework.batch.item.support.CompositeItemWriter.write(CompositeItemWriter.java:51) ~[spring-batch-infrastructure-2.2.2.RELEASE.jar:na] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_31] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE] at $Proxy8.write(Unknown Source) ~[na:na] at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:175) ~[spring-batch-core-2.2.2.RELEASE.jar:na] at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.scan(FaultTolerantChunkProcessor.java:580) ~[spring-batch-core-2.2.2.RELEASE.jar:na] ... 25 common frames omitted {noformat} This exception does appear in the logs (obviously), but there is no corresponding explanation in the report. Just a mysterious record count set: {noformat} Table Name: external_faculty_course_roster Parsed: 1843 Skipped on Parse: 1 Upserted: 0 Skipped on Write: 10 {noformat} Think we need to decide whether we consider a rogue column to be a row-fatal problem or not. If it is, we should just treat it like any other validation failure rather than letting it slide by. If it's not, we should either remove the rogue column from the output of the validation step or else implement some defensive code in the staging table writing components. We don't really have a notion of "soft failures" currently, or at least not that we represent in reports. So I think for this particular case we should probably start by considering a rogue column to be a row-fatal validation failure and handle it the same way we do any other such failure.

    Apereo Issues | 3 years ago | Dan McCallum
    org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '10' exceeded
  3. 0

    HQL Exception (org.hibernate.dialect.Dialect$3)

    Stack Overflow | 4 years ago | Hari
    java.lang.NullPointerException: null
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Error loading model properties in JPA on play 2.0.3

    Stack Overflow | 4 years ago | Chappies
    java.lang.NullPointerException: null

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.NullPointerException

      null

      at org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter$1.doInPreparedStatement()
    2. org.jasig.ssp
      SqlServerStagingTableWriter$1.doInPreparedStatement
      1. org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter$1.doInPreparedStatement(SqlServerStagingTableWriter.java:131)[ssp-data-importer-impl-1.0.0.jar:1.0.0]
      1 frame
    3. Spring Framework
      JdbcTemplate.execute
      1. org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:589)[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      2. org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617)[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      2 frames
    4. org.jasig.ssp
      SqlServerStagingTableWriter.write
      1. org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter.write(SqlServerStagingTableWriter.java:119)[ssp-data-importer-impl-1.0.0.jar:1.0.0]
      1 frame
    5. Java RT
      Method.invoke
      1. sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)[na:na]
      2. sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)[na:1.6.0_31]
      3. java.lang.reflect.Method.invoke(Unknown Source)[na:1.6.0_31]
      3 frames
    6. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      2. org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      3. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      4. org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      5. org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      6. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      7. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      7 frames
    7. Unknown
      $Proxy0.write
      1. $Proxy0.write(Unknown Source)[na:na]
      1 frame
    8. Spring Batch Infrastructure
      CompositeItemWriter.write
      1. org.springframework.batch.item.support.CompositeItemWriter.write(CompositeItemWriter.java:51)[spring-batch-infrastructure-2.2.2.RELEASE.jar:na]
      1 frame
    9. Java RT
      Method.invoke
      1. sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)[na:na]
      2. sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)[na:1.6.0_31]
      3. java.lang.reflect.Method.invoke(Unknown Source)[na:1.6.0_31]
      3 frames
    10. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      2. org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      3. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      4. org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:132)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      5. org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:120)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      6. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      7. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)[spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
      7 frames
    11. Unknown
      $Proxy8.write
      1. $Proxy8.write(Unknown Source)[na:na]
      1 frame
    12. Spring Batch Core
      FaultTolerantChunkProcessor$5.recover
      1. org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:175)[spring-batch-core-2.2.2.RELEASE.jar:na]
      2. org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.scan(FaultTolerantChunkProcessor.java:580)[spring-batch-core-2.2.2.RELEASE.jar:na]
      3. org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.access$900(FaultTolerantChunkProcessor.java:50)[spring-batch-core-2.2.2.RELEASE.jar:na]
      4. org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$5.recover(FaultTolerantChunkProcessor.java:413)[spring-batch-core-2.2.2.RELEASE.jar:na]
      4 frames
    13. Spring Retry
      RetryTemplate.execute
      1. org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:435)[spring-retry-1.0.2.RELEASE.jar:na]
      2. org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:304)[spring-retry-1.0.2.RELEASE.jar:na]
      3. org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:188)[spring-retry-1.0.2.RELEASE.jar:na]
      3 frames
    14. Spring Batch Core
      TaskletStep$ChunkTransactionCallback.doInTransaction
      1. org.springframework.batch.core.step.item.BatchRetryTemplate.execute(BatchRetryTemplate.java:217)[spring-batch-core-2.2.2.RELEASE.jar:na]
      2. org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.write(FaultTolerantChunkProcessor.java:423)[spring-batch-core-2.2.2.RELEASE.jar:na]
      3. org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:199)[spring-batch-core-2.2.2.RELEASE.jar:na]
      4. org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75)[spring-batch-core-2.2.2.RELEASE.jar:na]
      5. org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:395)[spring-batch-core-2.2.2.RELEASE.jar:na]
      5 frames
    15. Spring Tx
      TransactionTemplate.execute
      1. org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)[spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE]
      1 frame
    16. Spring Batch Core
      StepContextRepeatCallback.doInIteration
      1. org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:267)[spring-batch-core-2.2.2.RELEASE.jar:na]
      2. org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:77)[spring-batch-core-2.2.2.RELEASE.jar:na]
      2 frames
    17. Spring Batch Infrastructure
      RepeatTemplate.iterate
      1. org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:368)[spring-batch-infrastructure-2.2.2.RELEASE.jar:na]
      2. org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)[spring-batch-infrastructure-2.2.2.RELEASE.jar:na]
      3. org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144)[spring-batch-infrastructure-2.2.2.RELEASE.jar:na]
      3 frames
    18. Spring Batch Core
      TaskExecutorPartitionHandler$1.call
      1. org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:253)[spring-batch-core-2.2.2.RELEASE.jar:na]
      2. org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195)[spring-batch-core-2.2.2.RELEASE.jar:na]
      3. org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:139)[spring-batch-core-2.2.2.RELEASE.jar:na]
      4. org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler$1.call(TaskExecutorPartitionHandler.java:136)[spring-batch-core-2.2.2.RELEASE.jar:na]
      4 frames
    19. Java RT
      Thread.run
      1. java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)[na:1.6.0_31]
      2. java.util.concurrent.FutureTask.run(Unknown Source)[na:1.6.0_31]
      3. java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)[na:1.6.0_31]
      4. java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)[na:1.6.0_31]
      5. java.lang.Thread.run(Unknown Source)[na:1.6.0_31]
      5 frames