3 Replies Latest reply on Jun 23, 2017 4:34 AM by rz1911

    JDBCMigrator: org.infinispan.commons.CacheException: java.lang.StackOverflowError

    rz1911

      Hello,

       

      I'm trying to migrate an infinspan cache with JDBC persistence from infinispan 8.2.4.GA to 9.0.0.GA.

      When i run the JDBCMigrator, I get the following exeption:

       

      Exception in thread "main" javax.transaction.HeuristicRollbackException

        at org.infinispan.transaction.tm.EmbeddedTransaction.finishResource(EmbeddedTransaction.java:448)

        at org.infinispan.transaction.tm.EmbeddedTransaction.commitResources(EmbeddedTransaction.java:463)

        at org.infinispan.transaction.tm.EmbeddedTransaction.runCommit(EmbeddedTransaction.java:336)

        at org.infinispan.transaction.tm.EmbeddedTransaction.commit(EmbeddedTransaction.java:115)

        at org.infinispan.transaction.tm.EmbeddedBaseTransactionManager.commit(EmbeddedBaseTransactionManager.java:73)

        at org.infinispan.tools.jdbc.migrator.JDBCMigrator.run(JDBCMigrator.java:56)

        at org.infinispan.tools.jdbc.migrator.JDBCMigrator.main(JDBCMigrator.java:92)

        at CacheMigrator.main(CacheMigrator.java:3)

      Caused by: javax.transaction.xa.XAException

        at org.infinispan.transaction.impl.TransactionCoordinator.handleCommitFailure(TransactionCoordinator.java:222)

        at org.infinispan.transaction.impl.TransactionCoordinator.commitInternal(TransactionCoordinator.java:233)

        at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:172)

        at org.infinispan.transaction.xa.XaTransactionTable.commit(XaTransactionTable.java:126)

        at org.infinispan.transaction.xa.TransactionXaAdapter.commit(TransactionXaAdapter.java:68)

        at org.infinispan.transaction.tm.EmbeddedTransaction.finishResource(EmbeddedTransaction.java:416)

        ... 7 more

      Caused by: org.infinispan.commons.CacheException: java.lang.StackOverflowError

        at org.infinispan.interceptors.impl.InvocationContextInterceptor.rethrowException(InvocationContextInterceptor.java:141)

        at org.infinispan.interceptors.impl.InvocationContextInterceptor.access$000(InvocationContextInterceptor.java:43)

        at org.infinispan.interceptors.impl.InvocationContextInterceptor$1.apply(InvocationContextInterceptor.java:58)

        at org.infinispan.interceptors.InvocationExceptionFunction.apply(InvocationExceptionFunction.java:21)

        at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.addCallback(SimpleAsyncInvocationStage.java:67)

        at org.infinispan.interceptors.InvocationStage.andExceptionally(InvocationStage.java:34)

        at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:131)

        at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:94)

        at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:248)

        at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:137)

        at org.infinispan.transaction.impl.TransactionCoordinator.commitInternal(TransactionCoordinator.java:230)

        ... 11 more

      Caused by: java.lang.StackOverflowError

        at java.lang.Class.getAnnotation(Class.java:3415)

        at org.infinispan.marshall.core.GlobalMarshaller.findAnnotatedExternalizer(GlobalMarshaller.java:656)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:408)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:355)

        at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)

        at org.infinispan.marshall.core.GlobalMarshaller.objectToObjectStream(GlobalMarshaller.java:210)

        at org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:603)

        at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:598)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:412)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:355)

        at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)

        at org.infinispan.marshall.core.GlobalMarshaller.objectToObjectStream(GlobalMarshaller.java:210)

        at org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:603)

        at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:598)

       

       

        ... many more ...

       

        at org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:412)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:355)

        at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)

        at org.infinispan.marshall.core.GlobalMarshaller.objectToObjectStream(GlobalMarshaller.java:210)

        at org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:603)

        at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:598)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:412)

        at org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:355)

       

       

      The Cache is filled with custom object annotaded with an AdvancedExternalizer.

       

      You can reproduce the error using the attached files:

       

      1. Create a MySQL DB "migration" with user "migration" and password "password"
      2. Run CacheFiller to populate the cache using infinispan 8.2.4.GA
      3. Run CacheMigrator from migration.zip to migrate using infinispan 9.0.0.GA

       

      Is there something wrong with the configuration or do I have to change something in the code?

       

      Thanks a lot,

      Ralf