1 2 Previous Next 22 Replies Latest reply on Apr 11, 2012 11:42 AM by blabno Go to original post
      • 15. Re: Serialization issues in tests
        blabno

        Guys, what if exception is not serializable?

        I'm running 1.0.0.CR7.

        The exception is from HtmlUnit java script engine:

         

        Caused by: java.io.NotSerializableException: com.gargoylesoftware.htmlunit.javascript.background.JavaScriptFunctionJob

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at java.util.PriorityQueue.writeObject(PriorityQueue.java:693)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2855)

                at sun.reflect.GeneratedMethodAccessor752.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                at sun.reflect.GeneratedMethodAccessor752.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                at sun.reflect.GeneratedMethodAccessor752.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at java.util.ArrayList.writeObject(ArrayList.java:570)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at java.util.HashMap.writeObject(HashMap.java:1001)

                at sun.reflect.GeneratedMethodAccessor755.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                at sun.reflect.GeneratedMethodAccessor752.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at java.util.ArrayList.writeObject(ArrayList.java:570)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2855)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)

                at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.writeObject(ScriptableObject.java:2837)

                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.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at org.jboss.arquillian.test.spi.ExceptionProxy.writeExternal(ExceptionProxy.java:227)

                at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at org.jboss.arquillian.test.spi.ExceptionProxy.writeExternal(ExceptionProxy.java:210)

                at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

                at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

                at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

                at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

                at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

                at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.writeObject(ServletTestRunner.java:229)

                at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.executeTest(ServletTestRunner.java:163)

                at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.execute(ServletTestRunner.java:126)

                at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:90)

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.jboss.jsfunit.framework.JSFUnitFilter.doFilter(JSFUnitFilter.java:119)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.jboss.jsfunit.arquillian.container.JSFUnitCleanupTestTreadFilter.doFilter(JSFUnitCleanupTestTreadFilter.java:51)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:118)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

                at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:161)

                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)

                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:397)

                at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)

                at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:151)

                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)

                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

                at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

                at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)

                at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)

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

        • 16. Re: Serialization issues in tests
          blabno

          I think that problem is inside ExceptionProxy.writeExternal(ObjectOutput out) at line "output.writeObject(original);". The original is not serializable in my case.

          This is really bad issue, because only thing we see in Jenkins is "NotSerializableException" which is not the real cause of test failure (It's the JavaScript code to blame).

          • 17. Re: Serialization issues in tests
            aslak

            Please report a Jira..

             

            The code in quesiton is here: https://github.com/arquillian/arquillian-core/blob/master/test/spi/src/main/java/org/jboss/arquillian/test/spi/ExceptionProxy.java#L225

             

            Need a try catch around the ObjectOutputStream write part.. if it fails just write the empty byte array

             

            The HTMLUnit Exception breaks the contract of Exception by not being serializable, and should be fixed as well, but I guess we can work around it.

            • 18. Re: Serialization issues in tests
              blabno
              • 19. Re: Serialization issues in tests
                aslak

                Thank you!

                 

                you up for the task ?

                • 20. Re: Serialization issues in tests
                  blabno

                  I'd be honoured. I'll submit pull request ASAP.

                  • 21. Re: Serialization issues in tests
                    aslak

                    Bernard, did you have a chance to look at this? Final is about to go out the door.. within hours..

                    • 22. Re: Serialization issues in tests
                      blabno

                      Hi Aslak, I tried testing with my app that uses jsfunit and current jsfunit doesn't wan to work with new arquillian. I'm working on it now. (don't want to submit untested code)

                      1 2 Previous Next