[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sca-assembly] NEW ISSUE: Test 6019 assumed injection behavior
I thought the behavior was runtimes could avoid injecting null references for all multiplicity values. Maybe this was changed or I was just wrong. This seems a little strange though as the behavior for 0..1 will be different than 1..n, i.e. the former is not injected, the latter is. Jim On Jan 12, 2010, at 2:29 PM, David Booz wrote: > An unwired reference with a multiplicity of 0..n MUST be presented > to the > implementation code by the SCA runtime as an empty array or empty > collection [JCA90023] > > > How can a runtime have a null reference given the above statement in > Java CAA? > > > Dave Booz > STSM, BPM and SCA Architecture > Co-Chair OASIS SCA-Policy TC and SCA-J TC > "Distributed objects first, then world hunger" > Poughkeepsie, NY (845)-435-6093 or 8-295-6093 > e-mail:booz@us.ibm.com > > > |------------> > | From: | > |------------> >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |Mike Edwards > < > mike_edwards > @uk > .ibm > .com > > > | >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |------------> > | To: | > |------------> >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |OASIS Assembly <sca-assembly@lists.oasis- > open > .org > > > | >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |------------> > | Date: | > |------------> >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |01/12/2010 04:16 > AM > | >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |------------> > | Subject: | > |------------> >> --------------------------------------------------------------------------------------------------------------------------------------------------| > |Re: [sca-assembly] NEW ISSUE: Test 6019 assumed injection > behavior > | >> --------------------------------------------------------------------------------------------------------------------------------------------------| > > > > > > > Logged as: http://www.osoa.org/jira/browse/ASSEMBLY-201 > > Yours, Mike. > > Strategist - Emerging Technologies, SCA & SDO. > Co Chair OASIS SCA Assembly TC. > IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain. > Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431 > Email: mike_edwards@uk.ibm.com > > > From: Jim Marino <jim.marino@gmail.com> > > To: OASIS Assembly <sca-assembly@lists.oasis-open.org> > > Date: 11/01/2010 18:16 > > Subject: [sca-assembly] NEW ISSUE: Test 6019 assumed injection > behavior > > > > > > > > > > TARGET: SCA Assembly Conformance Tests > > DESCRIPTION: > > Test case ASM_6019 verifies an autowire reference with multiplicity > 0..n that has no matching services still runs. The component > implementation, org.oasisopen.sca.test.service1Impl4, has an array > type for the autowire reference. The operation that is invoked on that > implementation iterates the array and invokes wired services without > checking for null. Some runtimes may not inject the reference if no > matching wires are found. Consequently, this results in an NPE since > the reference member variable is not set: > > @Service(Service1.class) > public class service1Impl4 implements Service1 { > > @Property > public String serviceName = "service1"; > // Required = false + an array -> multiplicity 0..n > @Reference(required=false) > public Service1[] reference1 = null; > > public String operation1(String input) { > String result = serviceName + " > operation1 > invoked"; > // Call each of the references in the > array, concatenating the results > for( int i=0 ; i < > reference1.length; i+ > + ) { > result = > result.concat(" > "); > result = > result.concat > ( reference1[i].operation1(input) ); > } // end for > return result; > } > > } > > > SVN Version: 426 > > PROPOSAL: > > Code defensively, assuming the reference may not be injected. A > potential replacement is: > > @Service(Service1.class) > public class service1Impl4 implements Service1 { > > @Property > public String serviceName = "service1"; > > @Reference(required=false) > public Service1[] reference1; > > public String operation1(String input) { > StringBuilder result = new > StringBuilder > (serviceName).append(" > operation1 invoked"); > for (Service1 aReference1 : reference1) { > String value = > aReference1.operation1(input); > result = result.append(" > ").append(value); > } > return result.toString(); > } > > } > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > > > > > > > > > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with > number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire > PO6 3AU > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]