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

    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
    Bernard Labno Master

    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 Knutsen Master

    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.

  • 19. Re: Serialization issues in tests
    Aslak Knutsen Master

    Thank you!

     

    you up for the task ?

  • 20. Re: Serialization issues in tests
    Bernard Labno Master

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

  • 21. Re: Serialization issues in tests
    Aslak Knutsen Master

    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
    Bernard Labno Master

    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