You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Tom Jordahl <to...@macromedia.com> on 2004/10/14 22:57:36 UTC

RE: cvs commit: ws-axis/java/src/org/apache/axis/encoding Seriali zationContext.java

OK, fine.

--
Tom Jordahl
Macromedia Server Development

> -----Original Message-----
> From: Davanum Srinivas [mailto:davanum@gmail.com]
> Sent: Thursday, October 14, 2004 4:45 PM
> To: Tom Jordahl
> Cc: axis-dev@ws.apache.org
> Subject: Re: cvs commit: ws-axis/java/src/org/apache/axis/encoding Seriali
> zationContext.java
> 
> i'd prefer it to NPE's :)  Note that this happens ONLY when someone
> programatically uses the SerializationContext one-arg constructor
> which is not the case in the rest of axis code.
> 
> -- dims
> 
> 
> On Thu, 14 Oct 2004 16:40:41 -0400, Tom Jordahl <to...@macromedia.com>
> wrote:
> >
> > We really want the default to be encoded?
> >
> > --
> > Tom Jordahl
> > Macromedia Server Development
> >
> > > -----Original Message-----
> > > From: dims@apache.org [mailto:dims@apache.org]
> > > Sent: Thursday, October 14, 2004 4:29 PM
> > > To: ws-axis-cvs@apache.org
> > > Subject: cvs commit: ws-axis/java/src/org/apache/axis/encoding
> > > SerializationContext.java
> > >
> > > dims        2004/10/14 13:28:47
> > >
> > >   Modified:    java/src/org/apache/axis/encoding/ser
> BeanSerializer.java
> > >                java/src/org/apache/axis/encoding
> SerializationContext.java
> > >   Log:
> > >   Fix for AXIS-1585 - npe after using SerializationContext one-arg
> > > constructor
> > >
> > >   Revision  Changes    Path
> > >   1.77      +2 -2      ws-
> > > axis/java/src/org/apache/axis/encoding/ser/BeanSerializer.java
> > >
> > >   Index: BeanSerializer.java
> > >   ===================================================================
> > >   RCS file: /home/cvs/ws-
> > > axis/java/src/org/apache/axis/encoding/ser/BeanSerializer.java,v
> > >   retrieving revision 1.76
> > >   retrieving revision 1.77
> > >   diff -u -r1.76 -r1.77
> > >   --- BeanSerializer.java     2 Jul 2004 13:04:52 -0000       1.76
> > >   +++ BeanSerializer.java     14 Oct 2004 20:28:47 -0000      1.77
> > >   @@ -103,11 +103,11 @@
> > >            Attributes beanAttrs = getObjectAttributes(value,
> attributes,
> > > context);
> > >
> > >            // Get the encoding style
> > >   -        String encodingStyle =
> > > context.getMessageContext().getEncodingStyle();
> > >   +        String encodingStyle = context.getEncodingStyle();
> > >            boolean isEncoded = Constants.isSOAP_ENC(encodingStyle);
> > >
> > >            // check whether we have and xsd:any namespace="##any" type
> > >   -        boolean suppressElement =
> > > !context.getMessageContext().isEncoded() &&
> > >   +        boolean suppressElement = !context.isEncoded() &&
> > >                                      name.getNamespaceURI().equals("")
> &&
> > >
> name.getLocalPart().equals("any");
> > >
> > >
> > >
> > >
> > >   1.92      +29 -4     ws-
> > > axis/java/src/org/apache/axis/encoding/SerializationContext.java
> > >
> > >   Index: SerializationContext.java
> > >   ===================================================================
> > >   RCS file: /home/cvs/ws-
> > > axis/java/src/org/apache/axis/encoding/SerializationContext.java,v
> > >   retrieving revision 1.91
> > >   retrieving revision 1.92
> > >   diff -u -r1.91 -r1.92
> > >   --- SerializationContext.java       29 Jul 2004 21:40:26 -0000
> 1.91
> > >   +++ SerializationContext.java       14 Oct 2004 20:28:47 -0000
> 1.92
> > >   @@ -18,6 +18,9 @@
> > >
> > >    import java.io.IOException;
> > >    import java.io.Writer;
> > >   +import java.lang.IllegalAccessException;
> > >   +import java.lang.NoSuchMethodException;
> > >   +import java.lang.reflect.InvocationTargetException;
> > >    import java.lang.reflect.Method;
> > >    import java.util.ArrayList;
> > >    import java.util.Calendar;
> > >   @@ -457,6 +460,26 @@
> > >        }
> > >
> > >        /**
> > >   +     * Returns this context's encoding style.  If we've got a
> message
> > >   +     * context then we'll get the style from that; otherwise we'll
> > >   +     * return a default.
> > >   +     *
> > >   +     * @return a <code>String</code> value
> > >   +     */
> > >   +    public String getEncodingStyle() {
> > >   +        return msgContext == null ? Use.ENCODED.getEncoding() :
> > > msgContext.getEncodingStyle();
> > >   +    }
> > >   +
> > >   +    /**
> > >   +     * Returns whether this context should be encoded or not.
> > >   +     *
> > >   +     * @return a <code>boolean</code> value
> > >   +     */
> > >   +    public boolean isEncoded() {
> > >   +        return msgContext == null ? true : msgContext.isEncoded();
> > >   +    }
> > >   +
> > >   +    /**
> > >         * Convert QName to a string of the form <prefix>:<localpart>
> > >         * @param qName
> > >         * @return prefixed qname representation for serialization.
> > >   @@ -698,7 +721,7 @@
> > >            // hashCode() and equals() methods have been overloaded to
> make
> > > two
> > >            // Objects appear equal.
> > >
> > >   -        if (doMultiRefs && (msgContext == null ||
> > > msgContext.isEncoded()) &&
> > >   +        if (doMultiRefs && isEncoded() &&
> > >                    (value != forceSer) && !isPrimitive(value)) {
> > >                if (multiRefIndex == -1)
> > >                    multiRefValues = new HashMap();
> > >   @@ -1277,9 +1300,11 @@
> > >                        SERIALIZER_METHOD, SERIALIZER_CLASSES);
> > >                if (method != null) {
> > >                    serializer = (Serializer) method.invoke(null,
> > >   -                     new Object[] {msgContext.getEncodingStyle(),
> > > javaType, qname});
> > >   +                    new Object[] {getEncodingStyle(), javaType,
> > > qname});
> > >                }
> > >   -       } catch (Exception e) {
> > >   +       } catch (NoSuchMethodException e) {
> > >   +       } catch (IllegalAccessException e) {
> > >   +       } catch (InvocationTargetException e) {
> > >           }
> > >           return serializer;
> > >        }
> > >   @@ -1363,7 +1388,7 @@
> > >                        actualXMLType.value =
> > >                            ((BaseSerializerFactory)
> > > serFactory).getXMLType();
> > >                    }
> > >   -                boolean encoded = (msgContext == null ||
> > > msgContext.isEncoded());
> > >   +                boolean encoded = isEncoded();
> > >                    if (actualXMLType.value == null ||
> > >                            (!encoded &&
> > > actualXMLType.value.equals(soapConstants.getArrayType()))) {
> > >                        actualXMLType.value = tm.getXMLType(javaType,
> > >
> > >
> > >
> >
> 
> 
> --
> Davanum Srinivas - http://webservices.apache.org/~dims/