You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Andrew Cornwall (JIRA)" <ji...@apache.org> on 2007/07/12 20:47:04 UTC

[jira] Commented: (HARMONY-4448) XMLEncoded Strings with \n are decoded incorrectly

    [ https://issues.apache.org/jira/browse/HARMONY-4448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12512210 ] 

Andrew Cornwall commented on HARMONY-4448:
------------------------------------------

A possible fix for this is to change Command.setData(String) to: 

    public void setData(String data) {
    	if(this.data == null) {
    		this.data = data;
    	} else {
    		this.data = this.data + data;
    	}
    }

and Handler.characters(char[]) to:
    @Override
    public void characters(char[] text, int start, int length)
            throws SAXException {
        if (length > 0) {
            String data = String.valueOf(text, start, length)
                    /* .replace('\n', ' ').replace('\t', ' ').trim() */;
            if (data.length() > 0) {
                Command.prn(tabCount, tabCount + ">setting data=" + data //$NON-NLS-1$
                        + "<EOL>"); //$NON-NLS-1$
                Command cmd = stack.peek();
                cmd.setData(data);
            }
        }
    }

but I'm not sure if this breaks other things.


> XMLEncoded Strings with \n are decoded incorrectly
> --------------------------------------------------
>
>                 Key: HARMONY-4448
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4448
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>         Environment: M2 on Win x86
>            Reporter: Andrew Cornwall
>
> XMLEncoded Strings which have a \n in them (such as "hello\nthere") are decoded
> incorrectly.
> The following testcase demonstrates the issue:
> public class Bug126404 {
>     public static void main (String args[]) {
> 	Object object = null;
> 	String encodedString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
> 	"<java version=\"1.5.0\" class=\"java.beans.XMLDecoder\">\n" +
> 	" <string>hello\n" +
> 	"there</string>\n" +
> 	"</java>\n";
> 	byte[] in = encodedString.getBytes();
> 	ByteArrayInputStream inputStream = new ByteArrayInputStream(in);
> 	XMLDecoder decoder = new XMLDecoder(inputStream, "CDS");
> 	try{
> 	    object = decoder.readObject();
> 	}
> 	catch (Exception ex) { 
> 	    ex.printStackTrace();
> 	}
> 	System.out.println(new String(object.toString()));
>     }
> }
> On Sun JDK, this results in:
> hello
> there
> On Harmony M2, this results in:
> there

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.