2 Replies Latest reply on May 22, 2017 10:52 AM by Ralf Zimmermann

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

    Ralf Zimmermann Newbie

      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