here's more info. this is from findOrganizationfindOrganization 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.NullPointerExceptionat org.apache.tuscany.das.rdb.impl.ApplyChangesCommandImpl.execute(ApplyChangesCommandImpl.java:58) the call to:root. 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: publicDataObject 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()); returnaccount; } 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.NullPointerExceptionat 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.NullPointerExceptionat 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.NullPointerExceptionat 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) getDataGraph()
