1 2 Previous Next 22 Replies Latest reply on Apr 11, 2012 11:42 AM by blabno

    Serialization issues in tests

    andygibson

      I keep getting a NotSerializableException in my test, I have the full stack trace, but I think the relelvant point is listed below. This kind of transformed into more general serialization issues which are documentated below.

       

       

      org.jboss.arquillian.impl.event.FiredEventException:  java.lang.IllegalStateException: Error launching

      test  org.fluttercode.todolist.view.SignUpBeanTest public void  org.fluttercode.todolist.view.SignUpBeanTest.testUserCreateNoData()
          at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68)
          at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
      ...

      ...

      Caused  by: java.io.WriteAbortedException: writing aborted; 

      java.io.NotSerializableException:  org.hibernate.validator.util.annotationfactory.AnnotationProxy
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
          at java.util.HashSet.readObject(HashSet.java:291)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
          at java.util.HashSet.readObject(HashSet.java:291)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
          at org.jboss.arquillian.protocol.servlet_3.ServletMethodExecutor.execute(ServletMethodExecutor.java:88)
          at org.jboss.arquillian.protocol.servlet_3.ServletMethodExecutor.invoke(ServletMethodExecutor.java:57)
          ... 29 more
      Caused by: java.io.NotSerializableException: org.hibernate.validator.util.annotationfactory.AnnotationProxy
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)

       

      In short, I tracked it down to the hibernate validations I had put on my model, I remove them all and the test ran fine. I started adding them back bit by bit. @Column is ok, @NotNull gives me version issues :

       

       

      ... 26 more
      Caused by: java.io.InvalidClassException: org.hibernate.validator.engine.NodeImpl; local class

      incompatible: stream classdesc serialVersionUID = 2075466571633860499,

      local class serialVersionUID = 7855129585748746323
          at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)

       

      and @NotEmpty   gives me the error from the top stack trace.

       

      I fixed the serialVersionId issue by removing the depdendencies from my pom.xml and instead adding the glassfish server runtime to my eclipse project so I didn't have different versions of the libraries on the server and client. This fixed it, except now I get errors where it cannot find the hibernate PersistentBag class, obviously because the hibernate libraries are not on the classpath, I only have the server runtime which is implementation agnostic.

       

      I think this is hitting an overall issue of needing synchronization between the server runtime implementations and the client side dependencies. I'm not sure of the best way to get around this given that you might be going against mulltiple containers and technically the tests (as the servers are) should be implementation agnostic. Just wondering what your thoughts are,

       

      Cheers,

       

      Andy Gibson

        • 1. Re: Serialization issues in tests
          aslak

          As you found, the reason is:

           

          On Exception, the incontainer TestRunner tries to serialize the caught Exception back to the Client so it can be displayed as if it was local. The problem is you don't have the Hibernate Client lib on Client Classpath or you have the wrong version of it. This results in a Deserialization exception on the Client.

           

          We probably have to change that to not Serialize the actual Exception, but serialize a Textual representation of it, which we can create a 'proxy' Exception of on the client side and make it 'look' like the original.

           

          Any ideas on this is appreciated..

           

          If you want to play with a solution I can help you around the code..

          • 2. Re: Serialization issues in tests
            aslak
            • 3. Re: Serialization issues in tests
              andygibson

              Hey Aslak,

               

              I've been looking at it, and think I have a solution for it. I'll look at it some more tomorrow.

               

              Cheers,

               

              Andy

              • 4. Re: Serialization issues in tests
                andygibson

                Hey Aslak,

                 

                I don't know where the best place to discuss this is so I'll do it here.

                 

                I have a solution to the problem that proxies the exceptions and preserves the stack trace and the exception causes so it actually proxies all the exceptions down the stack and recreates them back on the client. When an exception type cannot be recreated (missing class, can't find a suitable constructor), it instead creates an ArquillianProxyException which includes the original message and exception type and the reason the exception couldn't be re-created. Even when it has to substiture proxies, it still maintains the stack trace and root causes.

                 

                Here's a quick example of a junit stack trace :

                 

                {code}

                javax.ejb.EJBException  //normal exception

                    at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5119)

                    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5017)

                    .....

                    .....

                    .....

                    .....    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)

                    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)

                    at java.lang.Thread.run(Thread.java:619)

                Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not insert: [org.fluttercode.todolist.model.User]

                    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1179)

                    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1112)

                    .....

                    .....

                    .....

                    .....    at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5264)

                    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5252)

                    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:190)

                    ... 88 more

                Caused by: org.jboss.arquillian.spi.ArquillianProxyException: org.hibernate.exception.ConstraintViolationException : could not insert: [org.fluttercode.todolist.model.User] [Proxied because : Exception class not found on client]

                    at org.jboss.arquillian.spi.ExceptionProxy.createProxyException(ExceptionProxy.java:89)

                    at org.jboss.arquillian.spi.ExceptionProxy.createException(ExceptionProxy.java:80)

                    .....

                    .....

                    .....

                    .....    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

                Caused by: java.sql.SQLIntegrityConstraintViolationException: Column 'PASSWORD'  cannot accept a NULL value.

                    at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)

                    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)

                    .....

                    .....

                    .....

                    .....

                    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)

                    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)

                    at java.lang.Thread.run(Thread.java:619)

                Caused by: org.jboss.arquillian.spi.ArquillianProxyException: org.apache.derby.client.am.SqlException : Column 'PASSWORD'  cannot accept a NULL value. [Proxied because : Exception class not found on client]

                    at org.jboss.arquillian.spi.ExceptionProxy.createProxyException(ExceptionProxy.java:89)

                    .....

                    .....

                    .....

                    .....

                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

                {code}

                 

                Note that we use the real exception for the EJBException and the PersistenceException, then we proxy the hibernate exception, and then switch back to the real SQLIntegrity constraint exception, and proxy the derby sql exception.

                 

                 

                However, this mechanism has two problems. Some exceptions don't have standard constructors, the faces ValidatorException being one of them, it requires a collection of faces messages or the faces context as a constructor. Secondly, when these classes can't be constructed and a proxy is used, any tests expecting a certain type of exception fail. Obviously, I hit both of these issues with one test where I was checking that a validator exception is thrown. I think it fair to say you can't expect the right exception from the test if it isn't on the client path, but I'm not sure what to do about the exotic constructor Exceptions.

                 

                So, what do I need to do with it now? I have two new classes and a modification to the TestResult class.

                 

                Cheers,

                 

                Andy Gibson

                • 5. Re: Serialization issues in tests
                  aslak

                  hmm.. sounds interesting

                   

                  You can start by forking the http://github.com/arquillian/arquillian repository to your account.

                   

                  Then clone your github arquillian fork to your local machine, create a branch ARQ-229 and commit your changes to that. Then push your ARQ-299 branch to a ARQ-299 branch on your github repo.. And i'll have a look.

                   

                  git clone your_arq_github_fork_url arquillian

                  cd arquillian

                  git checkout -b ARQ-299

                  --- apply the changes

                  git add file1 file2 file3

                  git commit -m 'ARQ-299 some description'

                  git push origin ARQ-299

                   

                   

                  And please login to https://cla.jboss.org and sign a Contributor License Agreement for Arquillian..

                  • 6. Re: Serialization issues in tests
                    andygibson

                    Hey Aslak,

                     

                    Thanks for the great instructions, I haven't really set Git up on my development environment, I was planning at some point to move some of my other projects over to Github so I'm currently getting set up on Git and Github. I'm just letting you know that its in my list of things to get done.

                     

                    Cheers,

                     

                    Andy

                    • 7. Re: Serialization issues in tests
                      andygibson

                      Ok, I have added my changes, tested them (the jbossas-embedded-6 test is broken but apart from that it works) and pushed my changes into my arquillian fork in the ARQ-299 branch.

                      I went to sign the CLA but my login isn't working. Does it use a different login from jboss.org?

                       

                      Cheers,

                       

                      Andy

                      • 8. Re: Serialization issues in tests
                        andygibson

                        Yeah, actually, in addition to my JBoss.org login not working on the CLA, it doesn't get me in the JIRA either. If it should all work together, who is the best person to contact about that?

                        Cheers,

                         

                        Andy

                        • 9. Re: Serialization issues in tests
                          aslak

                          hmm.. you are logged in here, and as far as I know it should be the same account.. maybe try a password reset?

                          • 10. Re: Serialization issues in tests
                            andygibson

                            Ok, I got my login issues all fixed. I'll go fill out a CLA.

                             

                            Cheers,

                             

                            Andy

                            • 11. Re: Serialization issues in tests
                              andygibson

                              Ok, I've filled out the CLA, updated the JIRA. I do have one question. I put the code in the SPI module with the TestRunner and TestResult classes. There are no tests in there, so I didn't add any there. I have tested the code in my own separate tests (using the actual project code that caused me to discover this problem), but do you want me to write tests for it and if so, where do they go? Do you have a default container and module you use for remote testing (which this would need) the arquillian source, or do you just rely on the container tests to test the framework.

                               

                              Cheers,

                               

                              Andy Gibson

                               

                              PS I'm going to have a browse through the JIRA and see if any other issues might be suitable to work on.

                              • 12. Re: Serialization issues in tests
                                dandii

                                Hi Andy,

                                 

                                I have the same Problem. What would you suggest me?

                                 

                                -------------------------------------------------------------------------------
                                Test set: at.some.packages.FileManagerTest
                                -------------------------------------------------------------------------------
                                Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 13.151 sec <<< FAILURE!
                                testStoreFile(at.some.packages.FileManagerTest)  Time elapsed: 0.208 sec  <<< ERROR!
                                org.jboss.arquillian.impl.event.FiredEventException: java.lang.IllegalStateException: Error launching test at.some.packages.FileManagerTest public void at.some.packages.FileManagerTest.testStoreFile() throws java.security.NoSuchAlgorithmException,javax.security.auth.login.LoginException,java.io.IOException,javax.naming.NamingException,at.some.packages.FileUploadException,at.some.packages.PermissionException,javax.transaction.NotSupportedException,javax.transaction.SystemException,java.lang.SecurityException,java.lang.IllegalStateException,javax.transaction.RollbackException,javax.transaction.HeuristicMixedException,javax.transaction.HeuristicRollbackException
                                    at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68)
                                    at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
                                    at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:157)
                                    at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244)
                                    at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207)
                                    at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:225)
                                    at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297)
                                    at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221)
                                    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
                                    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
                                    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
                                    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
                                    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
                                    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
                                    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
                                    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
                                    at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163)
                                    at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:186)
                                    at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297)
                                    at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182)
                                    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
                                    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)
                                    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
                                    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
                                    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
                                    at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                    at java.lang.reflect.Method.invoke(Method.java:597)
                                    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
                                    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
                                Caused by: java.lang.IllegalStateException: Error launching test at.some.packages.FileManagerTest public void at.some.packages.FileManagerTest.testStoreFile() throws java.security.NoSuchAlgorithmException,javax.security.auth.login.LoginException,java.io.IOException,javax.naming.NamingException,at.some.packages.FileUploadException,at.some.packages.PermissionException,javax.transaction.NotSupportedException,javax.transaction.SystemException,java.lang.SecurityException,java.lang.IllegalStateException,javax.transaction.RollbackException,javax.transaction.HeuristicMixedException,javax.transaction.HeuristicRollbackException
                                    at org.jboss.arquillian.protocol.servlet_3.ServletMethodExecutor.invoke(ServletMethodExecutor.java:61)
                                    at org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:50)
                                    at org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:40)
                                    at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
                                    ... 31 more
                                Caused by: java.io.InvalidClassException: org.hibernate.validator.engine.NodeImpl; local class incompatible: stream classdesc serialVersionUID = 2075466571633860499, local class serialVersionUID = 7855129585748746323
                                    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
                                    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
                                    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
                                    at java.util.ArrayList.readObject(ArrayList.java:593)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                    at java.lang.reflect.Method.invoke(Method.java:597)
                                    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
                                    at java.util.HashSet.readObject(HashSet.java:291)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                    at java.lang.reflect.Method.invoke(Method.java:597)
                                    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
                                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
                                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
                                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
                                    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
                                    at org.jboss.arquillian.protocol.servlet_3.ServletMethodExecutor.execute(ServletMethodExecutor.java:88)
                                    at org.jboss.arquillian.protocol.servlet_3.ServletMethodExecutor.invoke(ServletMethodExecutor.java:57)
                                    ... 34 more
                                
                                
                                • 13. Re: Serialization issues in tests
                                  aslak

                                  You have a different v. of Hibernate on Client classpath as used by the Server.

                                  • 14. Re: Serialization issues in tests
                                    dandii

                                    Hi Aslak, that's it! Thanks

                                    1 2 Previous Next