thanks all for the help. created issue tuscany-2525
----- Original Message ---- From: Luciano Resende <[EMAIL PROTECTED]> To: [email protected] Sent: Sunday, August 3, 2008 11:09:49 PM Subject: Re: das npe in PassByValueInterceptor On Tue, Jul 29, 2008 at 1:05 PM, Jean Madson <[EMAIL PROTECTED]> wrote: > For sure, it´s really very interesting. > Can you put as an attachment the code from the class that implements > findOrganization and > the class code that implements the testRunner? > Who knows someone else could help us... Yes, please raise a JIRA with your code or a unit test that allows us to reproduce your problem and we can definetly take a look and provide some help. > > -- > Jean Madson > > > > 2008/7/29 Abraham Washington <[EMAIL PROTECTED]> >> >> here's more info. >> >> >> >> this is from findOrganization >> >> findOrganization data graph -> >> [EMAIL PROTECTED] (resourceSet: >> [EMAIL PROTECTED] >> [EMAIL PROTECTED] >> uri='root.xml', >> [EMAIL PROTECTED] >> uri='http:///org.apache.tuscany.das.rdb/das', >> [EMAIL PROTECTED] >> uri='http:///org.apache.tuscany.das.rdb/das', >> [EMAIL PROTECTED] >> uri='change-summary.xml']) >> >> findOrganization data graph root -> >> [EMAIL PROTECTED] (eClass: >> [EMAIL PROTECTED] (name: DataGraphRoot) >> (instanceClassName: null) (abstract: false, interface: false)) >> >> >> >> // this debug came from the test runner >> >> data graph -> null >> >> account -> [EMAIL PROTECTED] >> (eClass: [EMAIL PROTECTED] (name: ACCOUNT) >> (instanceClassName: null) (abstract: false, interface: false)) >> >> Testrunner accountName -> TestNode1 >> >> >> >> update account now... >> >> java.lang.NullPointerException >> >> at org.apache.tuscany.das.rdb.impl.ApplyChangesCommandImpl.execute( >> >> ApplyChangesCommandImpl.java:58) >> >> >> the call to: >> >> root. >> >> getDataGraph() >> >> >> >> is what's outputting: data graph -> null >> >> >> >> seems odd that the call works fine in the operation findOrganization, but >> it's null inside the testRunner >> >> >> >> thanks >> >> >> >> ----- Original Message ---- >> From: Jean Madson <[EMAIL PROTECTED]> >> To: [email protected] >> Sent: Tuesday, July 29, 2008 10:16:20 AM >> Subject: Re: das npe in PassByValueInterceptor >> >> It's exactly what you did for dataGraph, showing its internal >> representation. >> -- >> Jean Madson >> >> >> >> 2008/7/29 Abraham Washington <[EMAIL PROTECTED]> >>> >>> what do you mean by dump? >>> >>> ----- Original Message ---- >>> From: Jean Madson <[EMAIL PROTECTED]> >>> To: [email protected] >>> Sent: Tuesday, July 29, 2008 9:04:06 AM >>> Subject: Re: das npe in PassByValueInterceptor >>> >>> Can you dump "account"? So we can see what is inside it... >>> >>> >>> -- >>> Jean Madson >>> http://bit-zen.blogspot.com/ >>> MSN: [EMAIL PROTECTED] >>> ----- >>> HI LI KO KEN TEN >>> Be grass, don't eat grass >>> "É preciso esvaziar a xícara para ver o fundo tal como ele é, caso >>> contrário, >>> o fundo parecerá turvo, e idéias precipitadas acerca do que seja o >>> fundo límpido emergirão." >>> >>> >>> >>> >>> 2008/7/29 Abraham Washington <[EMAIL PROTECTED]> >>>> >>>> this is where it's failing: >>>> >>>> >>>> >>>> if (!root.equals(root.getDataGraph().getRootObject())) { >>>> throw new RuntimeException("'root' argument must be the root >>>> of the datagraph"); >>>> } >>>> >>>> >>>> in org.apache.tuscany.das.rdb.impl.ApplyChangesCommandImpl at line 58 >>>> (looking at the source code). i printed out the same thing and can >>>> reproduce the problem. >>>> >>>> the problem is the call to root.getDataGraph() is returning null, thus >>>> the call to root.getDataGraph().getRootObject() throws the npe. >>>> >>>> when i make the call to find the organization, the dataGraph is null as >>>> well. here's my call to findOrganization: >>>> >>>> >>>> public >>>> >>>> DataObject findOrganization(String id) { >>>> >>>> DataObject root = >>>> >>>> null >>>> ; >>>> >>>> InputStream in = >>>> >>>> getClass().getClassLoader().getResourceAsStream( >>>> >>>> "dasConfiguration.xml"); >>>> >>>> DAS das = DAS. >>>> >>>> FACTORY.createDAS(in, getConnection()); >>>> >>>> Command read = das.getCommand( >>>> >>>> "getAccountByID"); >>>> >>>> read.setParameter(1, Integer.valueOf(id)); >>>> >>>> root = read.executeQuery(); >>>> >>>> DataObject account = root.getDataObject( >>>> >>>> "ACCOUNT[1]"); >>>> >>>> System. >>>> >>>> out.println("account dataGraph -> " + account.getDataGraph()); >>>> >>>> System. >>>> >>>> out.println("account dataObject -> " + >>>> account.getDataGraph().getRootObject()); >>>> >>>> return account; >>>> >>>> } >>>> >>>> >>>> >>>> Output: >>>> >>>> >>>> >>>> data graph -> null >>>> >>>> >>>> then a npe this thrown on the call to: >>>> System.out.println("account dataObject -> " + >>>> account.getDataGraph().getRootObject()); >>>> >>>> >>>> >>>> why would the dataGraph be null ? >>>> >>>> >>>> >>>> thx abe >>>> >>>> >>>> >>>> ----- Original Message ---- >>>> From: Jean Madson <[EMAIL PROTECTED]> >>>> To: [email protected] >>>> Sent: Tuesday, July 29, 2008 7:31:18 AM >>>> Subject: Re: das npe in PassByValueInterceptor >>>> >>>> It throws NullPointerException. >>>> Does the organizationService variable have a valid reference to the >>>> service? >>>> Try to test this. >>>> You can try to do a dump from organizationService. >>>> Perhaps, organizationService can't find an organization with that id, >>>> thus, returning a null reference. >>>> Check this too. >>>> >>>> -- >>>> Jean Madson >>>> >>>> >>>> >>>> 2008/7/28 Abraham Washington <[EMAIL PROTECTED]> >>>>> >>>>> i put the call to das.applyChanges in a try/catch block which gives a >>>>> little more info: >>>>> >>>>> >>>>> >>>>> java.lang.NullPointerException >>>>> >>>>> at org.apache.tuscany.das.rdb.impl.ApplyChangesCommandImpl.execute( >>>>> >>>>> ApplyChangesCommandImpl.java:58) >>>>> >>>>> at org.apache.tuscany.das.rdb.impl.DASImpl.applyChanges( >>>>> >>>>> DASImpl.java:310) >>>>> >>>>> at org.soa.services.OrganizationDataServiceImpl.updateOrganization( >>>>> >>>>> OrganizationDataServiceImpl.java:188) >>>>> >>>>> at org.soa.services.OrganizationServiceImpl.updateOrganization( >>>>> >>>>> OrganizationServiceImpl.java:60) >>>>> >>>>> 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:585) >>>>> >>>>> at org.apache.tuscany.sca.implementation.spring.SpringInvoker.doInvoke( >>>>> >>>>> SpringInvoker.java:100) >>>>> >>>>> at org.apache.tuscany.sca.implementation.spring.SpringInvoker.invoke( >>>>> >>>>> SpringInvoker.java:116) >>>>> >>>>> at >>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>> >>>>> PassByValueInterceptor.java:108) >>>>> >>>>> at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke( >>>>> >>>>> SCABindingInvoker.java:61) >>>>> >>>>> at >>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>> >>>>> PassByValueInterceptor.java:108) >>>>> >>>>> at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>> >>>>> JDKInvocationHandler.java:286) >>>>> >>>>> at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>> >>>>> JDKInvocationHandler.java:154) >>>>> >>>>> at $Proxy7.updateOrganization(Unknown Source) >>>>> >>>>> >>>>> >>>>> here's line 63 from my test runner: >>>>> >>>>> >>>>> commonj.sdo.DataObject account = >>>>> organizationService.getOrganization(organizationId >>>>> >>>>> ); >>>>> >>>>> organizationService.updateOrganization(account); >>>>> >>>>> >>>>> >>>>> line 63 is organizationService.updateOrganization(organizationId); >>>>> >>>>> >>>>> >>>>> thx...hope this helps...all i'm doing is grabbing the org (just a >>>>> simple find) in getOrganization, then passing that org to update. no >>>>> changes are made. maybe i'm not closing a connection ? >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ----- Original Message ---- >>>>> From: Jean Madson <[EMAIL PROTECTED]> >>>>> To: [email protected] >>>>> Sent: Monday, July 28, 2008 4:37:34 PM >>>>> Subject: Re: das npe in PassByValueInterceptor >>>>> >>>>> OK, Abraham. >>>>> It seems like an invalid reference object in line 63. >>>>> What is there? >>>>> Can you put here a numbered excerpt of the code around 63 line? >>>>> >>>>> >>>>> 2008/7/28 Abraham Washington <[EMAIL PROTECTED]> >>>>>> >>>>>> hi jean...that is the entire stack trace. i'm running within eclipse >>>>>> and that's all that's given. i'm using oracle if that helps. >>>>>> >>>>>> >>>>>> >>>>>> update account now... >>>>>> >>>>>> Exception in thread "main" >>>>>> >>>>>> java.lang.NullPointerException >>>>>> >>>>>> at >>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copyFault( >>>>>> >>>>>> PassByValueInterceptor.java:125) >>>>>> >>>>>> at >>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>>> >>>>>> PassByValueInterceptor.java:115) >>>>>> >>>>>> at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke( >>>>>> >>>>>> SCABindingInvoker.java:61) >>>>>> >>>>>> at >>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>>> >>>>>> PassByValueInterceptor.java:108) >>>>>> >>>>>> at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>>> >>>>>> JDKInvocationHandler.java:286) >>>>>> >>>>>> at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>>> >>>>>> JDKInvocationHandler.java:154 >>>>>> ) >>>>>> >>>>>> at $Proxy7.updateOrganization(Unknown Source) >>>>>> >>>>>> at helloworld.OrganizationServiceCompositeRunner.main( >>>>>> >>>>>> OrganizationServiceCompositeRunner.java:63) >>>>>> >>>>>> let me know if you need more info...abe >>>>>> >>>>>> ----- Original Message ---- >>>>>> From: Jean Madson <[EMAIL PROTECTED]> >>>>>> To: [email protected] >>>>>> Sent: Monday, July 28, 2008 3:52:49 PM >>>>>> Subject: Re: das npe in PassByValueInterceptor >>>>>> >>>>>> Can you put here all stack trace? >>>>>> >>>>>> >>>>>> >>>>>> 2008/7/28 Abraham Washington <[EMAIL PROTECTED]> >>>>>>> >>>>>>> hi, i'm trying to get DAS to work for my service. i'm able to query >>>>>>> and get results back no problem. below is my code for updating. if i >>>>>>> take >>>>>>> out the call to account.set(....), then the apply works (but there were >>>>>>> no >>>>>>> changes to the DataObject). with the account.set(...) call, the >>>>>>> exception >>>>>>> is thrown. ideas? thx abe >>>>>>> >>>>>>> >>>>>>> >>>>>>> Command read = das.getCommand( >>>>>>> >>>>>>> "getAccountByID"); >>>>>>> >>>>>>> read.setParameter(1, Integer.valueOf(organizationId)); >>>>>>> >>>>>>> root = read.executeQuery(); >>>>>>> >>>>>>> DataObject account = root.getDataObject( >>>>>>> >>>>>>> "ACCOUNT[1]"); >>>>>>> >>>>>>> System. >>>>>>> >>>>>>> out.println("accountName before change -> " + >>>>>>> account.getString("ACCOUNT_NAME")); >>>>>>> >>>>>>> account.set( >>>>>>> >>>>>>> "ACCOUNT_NAME", "TestAccount"); >>>>>>> >>>>>>> System. >>>>>>> >>>>>>> out.println("apply changes..."); >>>>>>> >>>>>>> das.applyChanges(root); >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> apply changes... >>>>>>> >>>>>>> Exception in thread "main" >>>>>>> >>>>>>> java.lang.NullPointerException >>>>>>> >>>>>>> at >>>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copyFault( >>>>>>> >>>>>>> PassByValueInterceptor.java:125) >>>>>>> >>>>>>> at >>>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>>>> >>>>>>> PassByValueInterceptor.java:115) >>>>>>> >>>>>>> at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke( >>>>>>> >>>>>>> SCABindingInvoker.java:61) >>>>>>> >>>>>>> at >>>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke( >>>>>>> >>>>>>> PassByValueInterceptor.java:108) >>>>>>> >>>>>>> at >>>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>>>> >>>>>>> JDKInvocationHandler.java:286) >>>>>>> >>>>>>> at >>>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( >>>>>>> >>>>>>> JDKInvocationHandler.java:154) >>>>>>> >>>>>>> at $Proxy7.updateOrganization(Unknown Source) >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >>> >> >> >> >> >> > > > > > -- Luciano Resende Apache Tuscany Committer http://people.apache.org/~lresende http://lresende.blogspot.com/
