You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by du...@apache.org on 2002/05/29 20:45:43 UTC

cvs commit: xml-soap/java/src/org/apache/soap/encoding/soapenc BooleanDeserializer.java SoapEncUtils.java

duftler     02/05/29 11:45:43

  Modified:    java/src/org/apache/soap/encoding/soapenc
                        BooleanDeserializer.java SoapEncUtils.java
  Log:
  Changed unmarshalling of xsi:null to be just as liberal as
  BooleanDeserializer is in what it accepts. For more info,
  please see: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9395
  Submitted by:	Marc Tremblay [marc.tremblay@wmode.com]
  Reviewed by:	Matthew J. Duftler (duftler@us.ibm.com)
  
  Revision  Changes    Path
  1.3       +4 -11     xml-soap/java/src/org/apache/soap/encoding/soapenc/BooleanDeserializer.java
  
  Index: BooleanDeserializer.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/BooleanDeserializer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BooleanDeserializer.java	16 Jul 2001 01:44:14 -0000	1.2
  +++ BooleanDeserializer.java	29 May 2002 18:45:43 -0000	1.3
  @@ -78,19 +78,12 @@
          throws IllegalArgumentException {
       Element root = (Element)src;
       String value = DOMUtils.getChildCharacterData(root);
  -    
  +
       if ((value == null) || (value.length() == 0))
         throw new IllegalArgumentException("Missing boolean value");
   
  -    switch (value.charAt(0)) {
  -      case '0': case 'f': case 'F':
  -        return new Bean(boolean.class, Boolean.FALSE);
  -
  -      case '1': case 't': case 'T':
  -        return new Bean(boolean.class, Boolean.TRUE);
  -
  -      default:
  -        throw new IllegalArgumentException("Invalid boolean value: " + value);
  -    }
  +    return SoapEncUtils.decodeBooleanValue(value)
  +           ? new Bean(boolean.class, Boolean.TRUE)
  +           : new Bean(boolean.class, Boolean.FALSE);
     }
   }
  
  
  
  1.9       +16 -2     xml-soap/java/src/org/apache/soap/encoding/soapenc/SoapEncUtils.java
  
  Index: SoapEncUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/SoapEncUtils.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SoapEncUtils.java	16 Apr 2002 17:14:14 -0000	1.8
  +++ SoapEncUtils.java	29 May 2002 18:45:43 -0000	1.9
  @@ -211,8 +211,22 @@
                                                  Constants.NS_URI_CURRENT_SCHEMA_XSI,
                                                  Constants.ATTR_NULL);
   
  -    return nullValue != null
  -           && nullValue.equals(Constants.ATTRVAL_TRUE);
  +    return nullValue != null && decodeBooleanValue(nullValue);
  +  }
  +
  +  public static boolean decodeBooleanValue(String value)
  +  {
  +    switch (value.charAt(0))
  +    {
  +      case '0': case 'f': case 'F':
  +        return false;
  +
  +      case '1': case 't': case 'T':
  +        return true;
  +
  +      default:
  +        throw new IllegalArgumentException("Invalid boolean value: " + value);
  +    }
     }
   
     public static QName getAttributeValue(Element el,