[ 
http://issues.apache.org/jira/browse/AXIS2-1254?page=comments#action_12439822 ] 
            
Eran Chinthaka commented on AXIS2-1254:
---------------------------------------

Ok, I was working with this issue today and just saw this patch.

Anyway, the reason to the initial problem referred to in this issue was, ADB 
was not not allowing to set null, even if   minOccurs=0. I fixed by checking 
the nullity, when you call the set method (didn't commit the changes as I had 
more local changes which failed the build).

With that in mind, I don't think I can agree with you on the third point you 
have mentioned above. IIUC, you must have the ability not to mention anything 
about nilable but to set minOccurs=0. But you suggest to throw an exception in 
that case. 

One could argue about the meaning or the interpretation of "null" in java 
w.r.t. nillable attribute and maxOccurs=0. IMO, if something is nillable then 
if the value is not set, you should see xsi:nill. 
But 
 1. if there is nothing mentioned about nillable
 2. maxOccurs=0
 3. User calls setXX(null), 

then the serialization should simply ignore that element. 

Let me take an example :

If the schema of the element Book is

 <element name="Book">
        <complexType>
          <sequence>
            <element name="name" type="xsd:string" minOccurs="0"/>
            <element name="author" type="xsd:string" minOccurs="0"/>
          </sequence>
        </complexType>
      </element>

then if user calls

Book myBook = new Book();
myBook.setName("Handling Nulls");
myBook.setAuthor(null);

then the serialization would be 

<Book>
   <Name>Handling Nulls</Name>
</Book>

But if the schema was 

<element name="Book">
        <complexType>
          <sequence>
            <element name="name" type="xsd:string" minOccurs="0"/>
            <element name="author" type="xsd:string" nillable="true"/>
          </sequence>
        </complexType>
      </element>

Then the serialization will be 
<Book>
   <Name>Handling Nulls</Name>
   <author xsi:nil="true" />
</Book>

Dennis, please correct me if I am wrong. 


> ADB cannot handle null return value from service method
> -------------------------------------------------------
>
>                 Key: AXIS2-1254
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1254
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: databinding
>    Affects Versions: nightly
>         Environment: Linux, Java 1.5
>            Reporter: Dennis Sosnoski
>         Assigned To: Eran Chinthaka
>            Priority: Blocker
>         Attachments: ADBBeanTemplate.xsl-patch-041006.txt, bug.zip
>
>
> When the response content is an optional element null should be a valid 
> return value from the corresponding method. I tried this with the following 
> WSDL/schema fragment:
>       
>       <element name="getBookResponse">
>         <complexType>
>           <sequence>
>             <element name="book" minOccurs="0" type="tns:BookInformation"/>
>           </sequence>
>         </complexType>
>       </element>
>   <wsdl:message name="getBookResponse">
>     <wsdl:part element="wns:getBookResponse" name="parameters"/>
>   </wsdl:message>
> The result was an error on the server side when the corresponding method 
> returned null:
>      [java] Exception in thread "main" org.apache.axis2.AxisFault: 
> java.lang.RuntimeException: book cannot be null!!
>      [java]     at 
> org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:298)
>      [java]     at 
> com.sosnoski.ws.library.adb.LibraryAdbStub.getBook(LibraryAdbStub.java:340)
>      [java]     at 
> com.sosnoski.ws.library.adb.WebServiceClient.main(WebServiceClient.java:45)
>      ...
> A null return value should be accepted in this case, resulting in an empty 
> wrapper element (<getBookResponse/>, in this case).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to