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=17826>.
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=17826

RuntimeInstance.setDefaultProperties() codepage problem

           Summary: RuntimeInstance.setDefaultProperties() codepage problem
           Product: Velocity
           Version: 1.3.1-rc2
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Source
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


There is a bug in the RuntimeInstance setDefaultProperties method that prevents
Velocity 1.3.1 from running on an IBM mainframe.

The code is currently written:
 
          InputStream inputStream = classLoader
                 .getResourceAsStream( DEFAULT_RUNTIME_PROPERTIES );
 
             configuration.load( inputStream );
 
Which loads the default runtime properties into an ExtendedProperties
object.
This fails on an OS/390 which has a default codepage of Cp1047 (ebcdic),
since:
 
 1) the properties resource is packaged in the Jar in codepage ISO8859_1.
 2) The ExtendedProperties class attempts to load it using the default
 codepage (Cp1047).
 3) Because of the codepage mismatch, the resulting ExtendedProperties
 object is empty and you get the error:
 "It appears that no class was specified as the ResourceManager.  Please
 ensure that all configuration information is correct."
 
 Note that java.util.Properties.load(InputStream) ALWAYS loads using
 "8859_1", since properties files are assumed to be in ASCII.
 
 
 A workaround to this bug is to load the default properties manually, add
 your changes and pass them all to the  VelocityEngine.init(Properties)
 method.
 
 The fix is to change the line to:

       configuration.load( inputStream, "8859_1" );
 
 Which is consistent with java.util.Properties.load().  Also, any other uses
 of the ExtendedProperties.load() should be changed as well.   In fact,
 ExtendedProperties.load() should probably default to "8859_1", IMO.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to