thanks Luciano.  i'll test out the sample with oracle tomorrow.  
thx for taking the time - abe



----- Original Message ----
From: Luciano Resende <[EMAIL PROTECTED]>
To: [email protected]
Sent: Saturday, August 9, 2008 5:18:08 PM
Subject: Re: das npe in PassByValueInterceptor

BTW, the sample is available at :

https://svn.apache.org/repos/asf/tuscany/sandbox/lresende/sca/samples/organization-das

On Sat, Aug 9, 2008 at 4:14 PM, Luciano Resende <[EMAIL PROTECTED]> wrote:
> Hi Abraham
>
>  From your initial post, looks like you are having two problems :
>
>      - Using DAS, a call to applyChanges succedds, but the account
> row does not get updated.
>      - When you use SCA to create a DAS component, you are having a
> PassByValueInterceptor exception
>
>  I have committed a organization-das sample, all based on the
> application you provided under TUSCANY-2525, under svn revision
> 684376.
>
>  Note that I'm building the sample im multiple steps, isolating the
> areas involved in each issue. Also, note that I'm using derby, but
> changing back to Oracle should be easy, just change the
> ConnectionHelper to create the proper Oracle connection.
>
>  Right now, I have the DAS piece working ok, and it would be good if
> you could verify this in your Oracle environment by running the
> OrganizationTestCase. While I wait for your feedback, I'm going to
> move to incorporate the SCA into the sample.
>
> Thanks
>
>
> On Mon, Aug 4, 2008 at 12:51 PM, Abraham Washington
> <[EMAIL PROTECTED]> wrote:
>> 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/
>>
>>
>
>
>
> --
> Luciano Resende
> Apache Tuscany Committer
> http://people.apache.org/~lresende
> http://lresende.blogspot.com/
>



-- 
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende
http://lresende.blogspot.com/



      

Reply via email to