You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2006/04/13 08:28:48 UTC

svn commit: r393730 - in /directory/trunks/mina/core/src: main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java main/java/org/apache/mina/util/CharsetUtil.java test/java/org/apache/mina/util/CharsetUtilTest.java

Author: trustin
Date: Wed Apr 12 23:28:44 2006
New Revision: 393730

URL: http://svn.apache.org/viewcvs?rev=393730&view=rev
Log:
Fixed issue: DIRMINA-207 (Charset.getDefaultEncoding doesn't work with JDK 1.6.0-beta2)
* Removed explicit version check

Modified:
    directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/util/CharsetUtil.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/util/CharsetUtilTest.java

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java?rev=393730&r1=393729&r2=393730&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java Wed Apr 12 23:28:44 2006
@@ -44,7 +44,7 @@
      */
     public TextLineCodecFactory()
     {
-        this( Charset.forName( CharsetUtil.getDefaultEncoding() ) );
+        this( Charset.forName( CharsetUtil.getDefaultCharsetName() ) );
     }
     
     /**

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/util/CharsetUtil.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/util/CharsetUtil.java?rev=393730&r1=393729&r2=393730&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/util/CharsetUtil.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/util/CharsetUtil.java Wed Apr 12 23:28:44 2006
@@ -36,48 +36,26 @@
 {
     public static final Logger log = LoggerFactory.getLogger( CharsetUtil.class );
     
-    
-    public static final String getDefaultEncoding()
+    public static final String getDefaultCharsetName()
     {
-        String encoding = null;
-        String version = System.getProperty( "java.version" );
-        
-        if ( version.startsWith( "1.5" ) || version.startsWith( "5.0" ) )
+        // Use reflection here to be able to compile mina with jdk 1.4.
+        try
         {
-            // Use reflection here to be able to compile mina with jdk 1.4
-            try
-            {
-                Class charsetClass = Class.forName( "java.nio.charset.Charset" );
-                Object charSet = charsetClass.getMethod( "defaultCharset", null ).invoke( null, null );
-                encoding = ( String ) charsetClass.getMethod( "name", null ).invoke( charSet, null );
-            }
-            catch ( Exception e )
-            {
-                log.error( "Failed to call java.nio.charset.Charset.defaultCharset().name() on JDK 1.5" );
-                throw new RuntimeException( e );
-            }
+            Class charsetClass = Class.forName( "java.nio.charset.Charset" );
+            Object charSet = charsetClass.getMethod( "defaultCharset", null ).invoke( null, null );
+            return ( String ) charsetClass.getMethod( "name", null ).invoke( charSet, null );
         }
-        else if ( version.startsWith( "1.4" ) )
+        catch ( Exception e )
         {
-            OutputStreamWriter writer = new OutputStreamWriter( new ByteArrayOutputStream() );
-            encoding = writer.getEncoding();
         }
-        else if ( version.startsWith( "1.3" ) )
-        {
-            log.warn( "Character encoding determined in non-standard manner for JDK 1.3" );
-            encoding = System.getProperty( "file.encoding" );
-        }
-        else
-        {
-            throw new IllegalStateException( "JDK version is not compatible." );
-        }
-        
-        return encoding;
-    }
 
+        // Try to use OutputStreamWriter instead.
+        OutputStreamWriter writer = new OutputStreamWriter( new ByteArrayOutputStream() );
+        return writer.getEncoding();
+    }
 
     public static Charset getDefaultCharset()
     {
-        return Charset.forName( getDefaultEncoding() );
+        return Charset.forName( getDefaultCharsetName() );
     }
 }

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/util/CharsetUtilTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/util/CharsetUtilTest.java?rev=393730&r1=393729&r2=393730&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/util/CharsetUtilTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/util/CharsetUtilTest.java Wed Apr 12 23:28:44 2006
@@ -28,10 +28,10 @@
  */
 public class CharsetUtilTest extends TestCase
 {
-    public void testGetDefaultEncoding()
+    public void testGetDefaultCharsetName()
     {
         // @todo How the heck do I test this so it works on all machines running test?
-        String encoding = CharsetUtil.getDefaultEncoding();
+        String encoding = CharsetUtil.getDefaultCharsetName();
         assertNotNull( encoding );
     }
 }