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