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,