RubyString#toString() returns trimmed java.lang.String sequence when the given 
sequence is malformed
----------------------------------------------------------------------------------------------------

                 Key: JRUBY-5519
                 URL: http://jira.codehaus.org/browse/JRUBY-5519
             Project: JRuby
          Issue Type: Task
          Components: Core Classes/Modules
    Affects Versions: JRuby 1.6RC2, JRuby-OSSL 0.7.3
         Environment: jruby 1.6.0.RC2 (ruby 1.8.7 patchlevel 330) (2011-02-17 
8f3eab6) (Java HotSpot(TM) 64-Bit Server VM 1.7.0-ea) [linux-amd64-java]
            Reporter: Hiroshi Nakamura


To avoid things to be unnecessarily complexed, I talk about 1.8 mode only here. 
Beside this, JRuby-OSSL doesn't support 1.9 mode now :-(

The commit [master 617654c2] *1 for 1.6.0.RC2 changed RubyString#decodeString() 
(UTF8 decoding) to use 'new String(..., encname)' *2 instead of 
Charset#decode(), and it affects JRuby-OSSL. From 1.6.0.RC2 the JRuby-OSSL 
testsuite starts failing.

JRuby-OSSL is using RubyString#toString() which uses the 
RubyString#decodeString(), to get java.lang.String. The String could be a 
Base64 encoded ascii data (PEM format) or a binary data (DER format). And the 
JRuby-OSSL test failures are for binary data handling.

Charset#decode() which is used before RC2 left unknown UTF8 bytes in decoded 
String, but new String(..., encname) does not. According to *1 it is 
'unspecified' but on my Ubuntu box, Open JDK 6, 7, J9 and JRockit R28.1 all 
trims uknown bytes. So RubyString#toString() returns trimmed byte sequences
 packed in java.lang.String from RC2 if JRuby-OSSL tries to handle DER 
formatted data (a binary, looks malformed as an UTF8 string.)

JRuby-OSSL should fix to retrieve ByteList from RubyString and I would support 
1.6 users to upgrade to newer JRuby-OSSL gem but other JRuby ext developers 
would be affected as well I think. Signature RubyString#toString() looks too 
promising for an ext developer, no? :-)

Tom, what do you think about this issue? (I'm asking Tom since git log says 
you're the author of th
e commit)

*1 
https://github.com/jruby/jruby/commit/617654c2da4fc793529fac7a8845b903ae1b6919
*2 
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#String(byte[],
 int, int, java.lang.String)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to