axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Venkat Reddy <vred...@gmail.com>
Subject Re: [jira] Commented: (AXIS-2025) Illegal XML characters in String arguments and return values cause XML exceptions in Axis calls
Date Sat, 09 Jul 2005 10:53:58 GMT
We are already scanning well (AbstractEncoder.java line#109) and
catching these invalid stuff (character < 0x20), but simply throwing a
Runtime exception here. The user is asking for encoding/escaping this
subset of characters appropriately so that they can be
decoded/unescaped on the clientside. Currently we can't provide this,
i think, because there is no standard way to do this, such that the
underlying XML parsers won't crib.

-venkat



On 7/9/05, Tom Jordahl (JIRA) <axis-dev@ws.apache.org> wrote:
>     [ http://issues.apache.org/jira/browse/AXIS-2025?page=comments#action_12315334 ]
> 
> Tom Jordahl commented on AXIS-2025:
> -----------------------------------
> 
> So enhancing the scanning of strings does not seem like a viable option here?
> At this point, returning a reasonable fault may be the best we can do.
> 
> > Illegal XML characters in String arguments and return values cause XML exceptions
in Axis calls
> > -----------------------------------------------------------------------------------------------
> >
> >          Key: AXIS-2025
> >          URL: http://issues.apache.org/jira/browse/AXIS-2025
> >      Project: Apache Axis
> >         Type: Bug
> >   Components: Serialization/Deserialization
> >     Versions: 1.2
> >  Environment: All (but reproduced on WinXP).
> > Axis 1.1 and 1.2
> >     Reporter: Shankar Unni
> >     Assignee: Venkat Reddy
> >  Attachments: Axis1.1badmsgAPI.log, Axis1.1echoAPI.log, Axis1.2badmsgAPI.log, Axis1.2echoAPI.log
> >
> > Arguments and return values of Java type String are incorrectly handled if they
contain non-printing illegal ASCII characters.
> > Example 1: bad return values:
> > - - - - - - - - - - - - - - -
> > E.g. the string
> >   "bad char: " + (char)3 + "."
> > Trivial example:
> > foo.jws:
> >   public class foo {
> >     public String badmsg()
> >     {
> >       return "bad: " + (char)3 + ".";
> >     }
> >   }
> > When calling this method and the server is running on Axis 1.1, it returns XML with
the illegal character ASCII "3" in the text:
> >    <badmsgReturn xsi:type="xsd:string">bad: ?.</badmsgReturn>
> > This causes an XML parse exception on the client side ("org.xml.sax.SAXParseException:
An invalid XML character (Unicode: 0x3) was found in the element content of the document.")
> > With Axis 1.2, the server doesn't even return a valid response: I get an HTTP 200
OK with an empty content, causing a different XML parse error.
> > Example 2: bad parameter values:
> > - - - - - - - - - - - - - - - -
> > A similar problem exists when passing such a string from the the client side.
> > If I have a method in foo.jws:
> >   public class foo {
> >     public String echo(String s)
> >     {
> >       return s;
> >     }
> >   }
> > Then if I write an ordinary Java client to call this, and pass it a bad string as
in the beginning of this post, I get an exception thrown while the call is being composed:
> > java.lang.IllegalArgumentException: The char '0x3' in 'bad char: ?.' is not a valid
XML character.
> > This is somewhat absurd: shouldn't the serialization layer be encoding these illegal
XML characters as entity escapes? They're entirely legal in the current locale (US), and normal
Java code handles this character quite normally.  Why should it croak when passed by XML/RPC?
> 
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
> 
>

Mime
View raw message