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 [[EMAIL PROTECTED]]
  Reviewed by:  Matthew J. Duftler ([EMAIL PROTECTED])
  
  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,
  
  
  


Reply via email to