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


 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















[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]