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) >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >>> >>> >> >> >> > > > >
