OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[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]