Tuscany
  1. Tuscany
  2. TUSCANY-1060

SDO Serialzation Failing in BigBank.

    Details

      Description

      BigBank is failing cause it's now using the PassByValueInterceptor which is detects com.bigbank.account.impl.CustomerProfileDataImpl SDO generated class is Java Serializable; however during serialization it receives a ClassCastException. To reproduce run BigBank see readme.html in directory java\sampleapps\bigbank

      Stack trace :
      Daemon Thread [http-8090-Processor25] (Suspended)
      org.apache.tuscany.databinding.sdo.SDODataBinding(org.apache.tuscany.spi.databinding.extension.DataBindingExtension).copy(java.lang.Object) line: 149
      org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.copy(java.lang.Object, org.apache.tuscany.spi.databinding.DataBinding) line: 106
      org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 71
      org.apache.tuscany.core.wire.SynchronousBridgingInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 41
      org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler(org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler).invoke(org.apache.tuscany.spi.wire.OutboundInvocationChain, org.apache.tuscany.spi.wire.TargetInvoker, java.lang.Object[], java.lang.Object, java.util.LinkedList<java.lang.Object>) line: 91
      org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder(org.apache.axiom.om.impl.builder.StAXOMBuilder).<init>(javax.xml.stream.XMLStreamReader) line: 95
      org.apache.axiom.om.impl.builder.StAXOMBuilder.<init>(java.io.InputStream) line: 86
      org.apache.tuscany.databinding.axiom.AxiomDataBinding.copy(java.lang.Object) line: 62
      org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.copy(java.lang.Object, org.apache.tuscany.spi.databinding.DataBinding) line: 106
      org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 71
      org.apache.tuscany.core.wire.SynchronousBridgingInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 41
      org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 71
      org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler(org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler).invoke(org.apache.tuscany.spi.wire.OutboundInvocationChain, org.apache.tuscany.spi.wire.TargetInvoker, java.lang.Object[], java.lang.Object, java.util.LinkedList<java.lang.Object>) line: 91
      org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 166
      $Proxy43.getCustomerProfile(java.lang.String) line: not available
      bigbank.webclient.services.account.AccountServiceComponentImpl.getCustomerProfile(java.lang.String) line: 73
      sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]
      sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 39
      sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25
      java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 585
      org.apache.tuscany.core.implementation.java.JavaTargetInvoker.invokeTarget(java.lang.Object, short) line: 93
      org.apache.tuscany.core.implementation.java.JavaTargetInvoker(org.apache.tuscany.spi.extension.TargetInvokerExtension).invoke(org.apache.tuscany.spi.wire.Message) line: 67
      org.apache.tuscany.core.wire.InvokerInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 44
      org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 68
      org.apache.tuscany.core.wire.SynchronousBridgingInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 41
      org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler(org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler).invoke(org.apache.tuscany.spi.wire.OutboundInvocationChain, org.apache.tuscany.spi.wire.TargetInvoker, java.lang.Object[], java.lang.Object, java.util.LinkedList<java.lang.Object>) line: 91
      org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 166
      $Proxy43.getCustomerProfile(java.lang.String) line: not available
      bigbank.webclient.services.profile.AccountLoginServiceImpl.login(java.lang.String, java.lang.String) line: 50
      sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]
      sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 39
      sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25
      java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 585
      org.apache.tuscany.core.implementation.java.JavaTargetInvoker.invokeTarget(java.lang.Object, short) line: 93
      org.apache.tuscany.core.implementation.java.JavaTargetInvoker(org.apache.tuscany.spi.extension.TargetInvokerExtension).invoke(org.apache.tuscany.spi.wire.Message) line: 67
      org.apache.tuscany.core.wire.InvokerInterceptor.invoke(org.apache.tuscany.spi.wire.Message) line: 44
      org.apache.tuscany.core.wire.jdk.JDKInboundInvocationHandler(org.apache.tuscany.spi.wire.AbstractInboundInvocationHandler).invoke(org.apache.tuscany.spi.wire.InboundInvocationChain, org.apache.tuscany.spi.wire.TargetInvoker, java.lang.Object[]) line: 45
      org.apache.tuscany.core.wire.jdk.JDKInboundInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 122
      $Proxy41.login(java.lang.String, java.lang.String) line: not available

        Activity

        Hide
        Raymond Feng added a comment -

        Are you seeing a dynamic DataObject instance created from the deserialization? If that's the case, it's probably related to the static type registration.

        Show
        Raymond Feng added a comment - Are you seeing a dynamic DataObject instance created from the deserialization? If that's the case, it's probably related to the static type registration.
        Hide
        Kelvin Goodson added a comment -

        It looks to me like line 149 of DataBindingExtension should be giving a bit more info than is recorded in the stack trace here ...

        Do you have the stack trace for the nested exception that would allow us to drill down into the offending code without having to reproduce your environment please?

        Show
        Kelvin Goodson added a comment - It looks to me like line 149 of DataBindingExtension should be giving a bit more info than is recorded in the stack trace here ... Do you have the stack trace for the nested exception that would allow us to drill down into the offending code without having to reproduce your environment please?
        Hide
        Venkatakrishnan added a comment -

        Hi,

        I guess this could be because the SDO DataBinding uses the default 'copy' method in the DataBindingExtension class since it has to yet implement its own.

        Raymond, I am thinking of implementing the SDODataBinding's copy method using the CopyHelper. Is this right?

        To reproduce this I have deployed the wars in sampleapps/bigbank into Tomcat and have tried to invoke the client as mentioned in the Readme.html in the sampleapps/bigbank directory. But then I am end up with another exception as follows:

        SEVERE: Cannot find message associated with key requestListenerValve.requestInit
        java.lang.AbstractMethodError: org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.httpRequestStarted(Ljavax/servlet/http/HttpServletRequest;)V
        at org.apache.tuscany.runtime.webapp.TuscanyRequestListener.requestInitialized(TuscanyRequestListener.java:59)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:167)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

        What have I missed out or messed up here?

        Thanks

        • Venkat
        Show
        Venkatakrishnan added a comment - Hi, I guess this could be because the SDO DataBinding uses the default 'copy' method in the DataBindingExtension class since it has to yet implement its own. Raymond, I am thinking of implementing the SDODataBinding's copy method using the CopyHelper. Is this right? To reproduce this I have deployed the wars in sampleapps/bigbank into Tomcat and have tried to invoke the client as mentioned in the Readme.html in the sampleapps/bigbank directory. But then I am end up with another exception as follows: SEVERE: Cannot find message associated with key requestListenerValve.requestInit java.lang.AbstractMethodError: org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.httpRequestStarted(Ljavax/servlet/http/HttpServletRequest;)V at org.apache.tuscany.runtime.webapp.TuscanyRequestListener.requestInitialized(TuscanyRequestListener.java:59) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:167) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) What have I missed out or messed up here? Thanks Venkat
        Hide
        Frank Budinsky added a comment -

        Resolving because this is old, and doesn't appear to be identifying an actual SDO problem.

        Show
        Frank Budinsky added a comment - Resolving because this is old, and doesn't appear to be identifying an actual SDO problem.
        Hide
        ant elder added a comment -

        Closing because this has been in RESOLVED state for over one year, if it turns out to not be fixed please reopen.

        Show
        ant elder added a comment - Closing because this has been in RESOLVED state for over one year, if it turns out to not be fixed please reopen.

          People

          • Assignee:
            Unassigned
            Reporter:
            Rick Rineholt
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development