DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25816>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25816 Serializer default output properties are not immutable Summary: Serializer default output properties are not immutable Product: XalanJ2 Version: CurrentCVS Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: org.apache.xml.serializer AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Code like this, which calls the factory in org.apache.xml.serializer: java.util.Properties prop0 = OutputPropertiesFactory.getDefaultMethodProperties("xml"); String val = prop0.getProperty("encoding"); System.out.println("enc = " + val); prop0.setProperty("encoding","UTF-BRIAN"); val = prop0.getProperty("encoding"); System.out.println("enc = " + val); // DEFAULT VALUE IS CHANGED ! THIS IS BAD, ISN'T IT ? java.util.Properties prop1 = OutputPropertiesFactory.getDefaultMethodProperties("xml"); val = prop1.getProperty("encoding"); System.out.println("enc = " + val); return new Properties(defaultProperties); ------------------------------------- Will write this out: enc = UTF-8 enc = UTF-BRIAN enc = UTF-BRIAN The last line shows that we have changed the default value within the factory. I think this is bad. The simplest solution I can see is that the last line of OutputPropertiesFactory.getDefaultMethodProperties(String method) should be: return new Properties(defaultProperties); rather than return defaultProperties; In this way properties can be changed by the caller in the Properties object, but the default values are unchanged for the next call to the factory.
