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 2003/12/06 03:21:53 UTC

cvs commit: xml-xmlbeans/v2/test/cases/marshal doc.xml

zieg        2003/12/05 18:21:53

  Modified:    v2/src/marshal/org/apache/xmlbeans/impl/marshal
                        BaseSimpleTypeConverter.java
                        BooleanTypeConverter.java ByNameUnmarshaller.java
                        ByteTypeConverter.java DecimalTypeConverter.java
                        DoubleTypeConverter.java FloatTypeConverter.java
                        IntTypeConverter.java IntegerTypeConverter.java
                        LongTypeConverter.java ShortTypeConverter.java
                        StringTypeConverter.java UnmarshalContextImpl.java
               v2/test/cases/marshal doc.xml
  Log:
  properly recover from invalid lexical exceptions
  
  Revision  Changes    Path
  1.2       +13 -0     xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/BaseSimpleTypeConverter.java
  
  Index: BaseSimpleTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/BaseSimpleTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BaseSimpleTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ BaseSimpleTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -71,4 +71,17 @@
       {
       }
   
  +    public final Object unmarshal(UnmarshalContextImpl context)
  +    {
  +        try {
  +            return getObject(context);
  +        }
  +        finally {
  +            assert context.isEndElement();
  +            context.next();
  +        }
  +    }
  +
  +    protected abstract Object getObject(UnmarshalContextImpl context);
  +
   }
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/BooleanTypeConverter.java
  
  Index: BooleanTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/BooleanTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BooleanTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ BooleanTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class BooleanTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           boolean b = context.getBooleanValue();
  -        assert context.isEndElement();
  -        context.next();
           return Boolean.valueOf(b);
       }
   
  
  
  
  1.5       +21 -5     xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ByNameUnmarshaller.java
  
  Index: ByNameUnmarshaller.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ByNameUnmarshaller.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ByNameUnmarshaller.java	5 Dec 2003 02:45:54 -0000	1.4
  +++ ByNameUnmarshaller.java	6 Dec 2003 02:21:53 -0000	1.5
  @@ -58,6 +58,9 @@
   
   import org.apache.xmlbeans.impl.binding.bts.BindingLoader;
   import org.apache.xmlbeans.impl.binding.bts.ByNameBean;
  +import org.apache.xmlbeans.impl.common.InvalidLexicalValueException;
  +import org.apache.xmlbeans.impl.common.XmlStreamUtils;
  +import org.apache.xmlbeans.XmlError;
   
   final class ByNameUnmarshaller implements TypeUnmarshaller
   {
  @@ -120,8 +123,15 @@
           final TypeUnmarshaller um = prop.getTypeUnmarshaller(context);
           assert um != null;
   
  -        final Object prop_val = um.unmarshal(context);
  -        prop.fill(inter, prop_val);
  +        try {
  +            final Object prop_val = um.unmarshal(context);
  +            prop.fill(inter, prop_val);
  +        }
  +        catch (InvalidLexicalValueException ilve) {
  +            //TODO: add location information
  +            XmlError err = XmlError.forMessage(ilve.getMessage());
  +            context.getErrorCollection().add(err);
  +        }
       }
   
   
  @@ -132,9 +142,15 @@
           final TypeUnmarshaller um = prop.getTypeUnmarshaller(context);
           assert um != null;
   
  -
  -        final Object prop_val = um.unmarshalAttribute(context);
  -        prop.fill(inter, prop_val);
  +        try {
  +            final Object prop_val = um.unmarshalAttribute(context);
  +            prop.fill(inter, prop_val);
  +        }
  +        catch (InvalidLexicalValueException ilve) {
  +            //TODO: add location information
  +            XmlError err = XmlError.forMessage(ilve.getMessage());
  +            context.getErrorCollection().add(err);
  +        }
       }
   
       private void deserializeAttributes(Object inter, UnmarshalContextImpl context)
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ByteTypeConverter.java
  
  Index: ByteTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ByteTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ByteTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ ByteTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class ByteTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           byte val = context.getByteValue();
  -        assert context.isEndElement();
  -        context.next();
           return new Byte(val);
       }
   
  
  
  
  1.2       +2 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/DecimalTypeConverter.java
  
  Index: DecimalTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/DecimalTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DecimalTypeConverter.java	5 Dec 2003 23:48:22 -0000	1.1
  +++ DecimalTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -63,11 +63,10 @@
   final class DecimalTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           BigDecimal val = context.getBigDecimalValue();
  -        assert context.isEndElement();
  -        context.next();
           return val;
       }
   
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/DoubleTypeConverter.java
  
  Index: DoubleTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/DoubleTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DoubleTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ DoubleTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class DoubleTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           double val = context.getDoubleValue();
  -        assert context.isEndElement();
  -        context.next();
           return new Double(val);
       }
   
  
  
  
  1.2       +6 -7      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/FloatTypeConverter.java
  
  Index: FloatTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/FloatTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FloatTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ FloatTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,13 +61,6 @@
   final class FloatTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  -    {
  -        float val = context.getFloatValue();
  -        assert context.isEndElement();
  -        context.next();
  -        return new Float(val);
  -    }
   
       public Object unmarshalAttribute(UnmarshalContextImpl context)
       {
  @@ -80,5 +73,11 @@
       {
           Float val = (Float)value;
           return XsTypeConverter.printFloat(val.floatValue());
  +    }
  +
  +    protected Object getObject(UnmarshalContextImpl context)
  +    {
  +        float val = context.getFloatValue();
  +        return new Float(val);
       }
   }
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/IntTypeConverter.java
  
  Index: IntTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/IntTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IntTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ IntTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class IntTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           int val = context.getIntValue();
  -        assert context.isEndElement();
  -        context.next();
           return new Integer(val);
       }
   
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/IntegerTypeConverter.java
  
  Index: IntegerTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/IntegerTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IntegerTypeConverter.java	5 Dec 2003 23:48:22 -0000	1.1
  +++ IntegerTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -63,11 +63,9 @@
   final class IntegerTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           BigInteger val = context.getBigIntegerValue();
  -        assert context.isEndElement();
  -        context.next();
           return val;
       }
   
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/LongTypeConverter.java
  
  Index: LongTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/LongTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LongTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ LongTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class LongTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           long val = context.getLongValue();
  -        assert context.isEndElement();
  -        context.next();
           return new Long(val);
       }
   
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ShortTypeConverter.java
  
  Index: ShortTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/ShortTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ShortTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ ShortTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class ShortTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           short val = context.getShortValue();
  -        assert context.isEndElement();
  -        context.next();
           return new Short(val);
       }
   
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/StringTypeConverter.java
  
  Index: StringTypeConverter.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/StringTypeConverter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StringTypeConverter.java	5 Dec 2003 02:45:54 -0000	1.1
  +++ StringTypeConverter.java	6 Dec 2003 02:21:53 -0000	1.2
  @@ -61,11 +61,9 @@
   final class StringTypeConverter
       extends BaseSimpleTypeConverter
   {
  -    public Object unmarshal(UnmarshalContextImpl context)
  +    protected Object getObject(UnmarshalContextImpl context)
       {
           String val = context.getStringValue();
  -        assert context.isEndElement();
  -        context.next();
           return val;
       }
   
  
  
  
  1.6       +0 -1      xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/UnmarshalContextImpl.java
  
  Index: UnmarshalContextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/UnmarshalContextImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- UnmarshalContextImpl.java	5 Dec 2003 23:48:22 -0000	1.5
  +++ UnmarshalContextImpl.java	6 Dec 2003 02:21:53 -0000	1.6
  @@ -613,6 +613,5 @@
   
           return baseReader.getAttributeLocalName(currentAttributeIndex);
       }
  -
   }
   
  
  
  
  1.6       +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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- doc.xml	5 Dec 2003 23:48:22 -0000	1.5
  +++ doc.xml	6 Dec 2003 02:21:53 -0000	1.6
  @@ -4,7 +4,7 @@
       xmlns:My="java:com.mytest" xsi:type="My:MyClass">
   
       <My:Myelt ignore="someval" My:Attrib="4444.123456789">
  -        <My:MyFloat>65.34</My:MyFloat>
  +        <My:MyFloat>111111165.34</My:MyFloat>
           <My:MyClass>
               <My:Myatt xsi:type="xsd:token">inner-str</My:Myatt>
           </My:MyClass>
  
  
  

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