diff --git a/VERSION.txt b/VERSION.txt index 0f0f43c46b6..ddb136d6bdb 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -8,6 +8,7 @@ jetty-7.3.0-SNAPSHOT + 332796 Annotations inheritance does not work with jetty7 + 332937 Added Destroyable interface and reworked dependent lifecycles, specially of JNDI + 320457 add SPNEGO support + + 333481 Handle UTF-32 codepoints + 333679 Refactored jetty-jmx. Moved mbeans to modules. jetty-7.2.2.v20101205 5 December 2010 diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuffer.java b/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuffer.java index af11f0db49f..19996078245 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuffer.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuffer.java @@ -126,7 +126,7 @@ public class Utf8StringBuffer // 10xxxxxx _bits=(_bits<<6)|(b&0x3f); if (--_more==0) - _buffer.append((char)_bits); + _buffer.append(Character.toChars(_bits)); } } } diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuilder.java b/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuilder.java index 593adb549fe..f450ca52d24 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuilder.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/Utf8StringBuilder.java @@ -123,7 +123,10 @@ public class Utf8StringBuilder // 10xxxxxx _bits=(_bits<<6)|(b&0x3f); if (--_more==0) - _buffer.append((char)_bits); + { + // _buffer.append((char)_bits); + _buffer.append(Character.toChars(_bits)); + } } } } diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBufferTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBufferTest.java index 8601e6205fe..555ea45bbca 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBufferTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBufferTest.java @@ -69,5 +69,19 @@ public class Utf8StringBufferTest assertEquals("abc?",buffer.toString()); } - + @Test + public void testUTF32codes() + throws Exception + { + String source="\uD842\uDF9F"; + byte[] bytes=source.getBytes("UTF-8"); + + String jvmcheck = new String(bytes,0,bytes.length,"UTF-8"); + assertEquals(source,jvmcheck); + + Utf8StringBuffer buffer = new Utf8StringBuffer(); + buffer.append(bytes,0,bytes.length); + String result=buffer.toString(); + assertEquals(source,result); + } } diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBuilderTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBuilderTest.java index 62402189454..20ca6674a73 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBuilderTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/Utf8StringBuilderTest.java @@ -68,7 +68,23 @@ public class Utf8StringBuilderTest buffer.append(bytes[i]); assertEquals("abc?",buffer.toString()); } + + @Test + public void testUTF32codes() + throws Exception + { + String source="\uD842\uDF9F"; + byte[] bytes=source.getBytes("UTF-8"); + + String jvmcheck = new String(bytes,0,bytes.length,"UTF-8"); + assertEquals(source,jvmcheck); + + Utf8StringBuilder buffer = new Utf8StringBuilder(); + buffer.append(bytes,0,bytes.length); + String result=buffer.toString(); + assertEquals(source,result); + } }