You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by zi...@apache.org on 2004/05/04 23:33:22 UTC

cvs commit: xml-xmlbeans/v2/test/src/drt/drtcases MarshalTests.java

zieg        2004/05/04 14:33:22

  Modified:    v2/src/binding/org/apache/xmlbeans/impl/binding/bts
                        JavaTypeName.java
               v2/src/marshal/org/apache/xmlbeans/impl/marshal
                        JaxrpcEnumRuntimeBindingType.java
                        JaxrpcEnumUnmarshaller.java UnmarshalResult.java
               v2/test/cases/marshal doc.xml
               v2/test/src/drt/drtcases MarshalTests.java
  Log:
  properly catch errors from enum fromValue method
  
  Revision  Changes    Path
  1.14      +5 -7      xml-xmlbeans/v2/src/binding/org/apache/xmlbeans/impl/binding/bts/JavaTypeName.java
  
  Index: JavaTypeName.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/binding/org/apache/xmlbeans/impl/binding/bts/JavaTypeName.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JavaTypeName.java	4 May 2004 01:34:58 -0000	1.13
  +++ JavaTypeName.java	4 May 2004 21:33:22 -0000	1.14
  @@ -337,12 +337,11 @@
               return new JavaTypeName(class_name, "", false);
           }
   
  -        final String compname;
  -        int dims = 0;
  +        final int first_bracket = class_name.indexOf('[');
  +        final int last_bracket = class_name.lastIndexOf('[');
  +        final int semi = class_name.indexOf(';', last_bracket);
   
  -        int first_bracket = class_name.indexOf('[');
  -        int last_bracket = class_name.lastIndexOf('[');
  -        int semi = class_name.indexOf(';', last_bracket);
  +        final String compname;
   
           if (semi == -1) {
               char array_type = class_name.charAt(1 + last_bracket);
  @@ -350,10 +349,9 @@
           } else {
               compname = class_name.substring(last_bracket + 2, semi);
           }
  -        dims = (1 + last_bracket - first_bracket);
  +        final int dims = (1 + last_bracket - first_bracket);
   
           assert compname.length() > 0 ;
  -
   
           StringBuffer array_str = new StringBuffer(2 * dims);
           for (int i = 0; i < dims; i++) {
  
  
  
  1.6       +12 -3     xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/JaxrpcEnumRuntimeBindingType.java
  
  Index: JaxrpcEnumRuntimeBindingType.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/JaxrpcEnumRuntimeBindingType.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JaxrpcEnumRuntimeBindingType.java	30 Apr 2004 21:31:48 -0000	1.5
  +++ JaxrpcEnumRuntimeBindingType.java	4 May 2004 21:33:22 -0000	1.6
  @@ -21,6 +21,7 @@
   import org.apache.xmlbeans.impl.binding.bts.BindingTypeName;
   import org.apache.xmlbeans.impl.binding.bts.JaxrpcEnumType;
   import org.apache.xmlbeans.impl.marshal.util.ReflectionUtils;
  +import org.apache.xmlbeans.impl.common.InvalidLexicalValueException;
   
   import java.lang.reflect.Method;
   
  @@ -82,10 +83,18 @@
           return itemInfo.getItemUnmarshaller();
       }
   
  -    Object fromValue(Object itemValue) throws XmlException
  +    Object fromValue(Object itemValue, UnmarshalResult context)
  +        throws XmlException
       {
  -        return ReflectionUtils.invokeMethod(null, itemInfo.getFromValueMethod(),
  -                                            new Object[]{itemValue});
  +        assert itemValue != null;
  +        assert context != null;
  +        try {
  +            return ReflectionUtils.invokeMethod(null, itemInfo.getFromValueMethod(),
  +                                                new Object[]{itemValue});
  +        }
  +        catch (XmlException iae) {
  +            throw new InvalidLexicalValueException(iae, context.getLocation());
  +        }
       }
   
   
  
  
  
  1.5       +10 -4     xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/JaxrpcEnumUnmarshaller.java
  
  Index: JaxrpcEnumUnmarshaller.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/JaxrpcEnumUnmarshaller.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JaxrpcEnumUnmarshaller.java	18 Apr 2004 19:28:31 -0000	1.4
  +++ JaxrpcEnumUnmarshaller.java	4 May 2004 21:33:22 -0000	1.5
  @@ -17,6 +17,7 @@
   
   import org.apache.xmlbeans.XmlException;
   import org.apache.xmlbeans.impl.binding.bts.BindingLoader;
  +import org.apache.xmlbeans.impl.common.InvalidLexicalValueException;
   
   final class JaxrpcEnumUnmarshaller
       implements TypeUnmarshaller
  @@ -31,10 +32,15 @@
       public Object unmarshal(UnmarshalResult result)
           throws XmlException
       {
  -
           final TypeUnmarshaller item_um = runtimeType.getItemUnmarshaller();
           final Object itemValue = item_um.unmarshal(result);
  -        return runtimeType.fromValue(itemValue);
  +        try {
  +            return runtimeType.fromValue(itemValue, result);
  +        }
  +        catch(InvalidLexicalValueException e) {
  +            result.addError(e.getMessage(), e.getLocation());
  +            throw e;
  +        }
       }
   
       public void unmarshal(Object object, UnmarshalResult result)
  @@ -49,7 +55,7 @@
       {
           final TypeUnmarshaller item_um = runtimeType.getItemUnmarshaller();
           final Object itemValue = item_um.unmarshalAttribute(result);
  -        return runtimeType.fromValue(itemValue);
  +        return runtimeType.fromValue(itemValue, result);
       }
   
       public Object unmarshalAttribute(CharSequence lexical_value,
  @@ -58,7 +64,7 @@
       {
           final TypeUnmarshaller item_um = runtimeType.getItemUnmarshaller();
           final Object itemValue = item_um.unmarshalAttribute(lexical_value, result);
  -        return runtimeType.fromValue(itemValue);
  +        return runtimeType.fromValue(itemValue, result);
       }
   
       public void unmarshalAttribute(Object object, UnmarshalResult result)
  
  
  
  1.25      +1 -1      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/UnmarshalResult.java
  
  Index: UnmarshalResult.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/UnmarshalResult.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- UnmarshalResult.java	3 May 2004 17:24:45 -0000	1.24
  +++ UnmarshalResult.java	4 May 2004 21:33:22 -0000	1.25
  @@ -128,7 +128,7 @@
           return binding_type;
       }
   
  -    private void addError(String msg)
  +    void addError(String msg)
       {
           addError(msg, baseReader.getLocation());
       }
  
  
  
  1.16      +1 -1      xml-xmlbeans/v2/test/cases/marshal/doc.xml
  
  Index: doc.xml
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/test/cases/marshal/doc.xml,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- doc.xml	19 Apr 2004 06:30:36 -0000	1.15
  +++ doc.xml	4 May 2004 21:33:22 -0000	1.16
  @@ -4,7 +4,7 @@
       xmlns:My="java:com.mytest"
       xmlns:n1="java:com.mytest">
   
  -    <My:Myelt ignore="someval" My:Attrib="-4444.123456789">
  +    <My:Myelt n1:modeEnum="Off" ignore="someval" My:Attrib="-4444.123456789" >
           <My:MyFloat>111111165.34</My:MyFloat>
           <My:MyClass xsi:type="My:MySubClass">
               <My:Myatt xsi:type="xsd:token">inner-str</My:Myatt>
  
  
  
  1.58      +2 -0      xml-xmlbeans/v2/test/src/drt/drtcases/MarshalTests.java
  
  Index: MarshalTests.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/test/src/drt/drtcases/MarshalTests.java,v
  retrieving revision 1.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- MarshalTests.java	30 Apr 2004 21:31:49 -0000	1.57
  +++ MarshalTests.java	4 May 2004 21:33:22 -0000	1.58
  @@ -191,6 +191,8 @@
           testSimpleTypeMarshal(new GDuration("P1Y2M3DT10H30M"), "duration");
   
           testSimpleTypeMarshal("some text here", "string");
  +        testSimpleTypeMarshal("  ", "string");
  +        testSimpleTypeMarshal("", "string");
           testSimpleTypeMarshal("aToken", "token");
           testSimpleTypeMarshal("       ", "string");
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xmlbeans-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-cvs-help@xml.apache.org