Merge remote-tracking branch 'origin/master' into wicket-6774
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
index 52c9c5c..733946e 100755
--- a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
@@ -62,19 +62,6 @@
 	/** A table of hex digits */

 	private static final char[] HEX_DIGIT = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

 			'A', 'B', 'C', 'D', 'E', 'F' };

-	private static final Set<Character> NONCHARACTERS = Collections.unmodifiableSet(new HashSet<Character>()

-	{

-		private static final long serialVersionUID = 1L;

-

-		{

-			for (int i = 0x0000FDD0; i <= 0x0000FDEF; ++i)

-			{

-				add((char)i);

-			}

-			add((char)0x0000FFFE);

-			// all other non-characters are out of range of (char)

-		}

-	});

 

 	private static final Pattern HTML_NUMBER_REGEX = Pattern.compile("&#\\d+;");

 	

@@ -336,7 +323,7 @@
 		{

 			final char c = s.charAt(i);

 

-			if (NONCHARACTERS.contains(c))

+			if (Character.getType(c) == Character.UNASSIGNED)

 			{

 				continue;

 			}

@@ -1020,7 +1007,7 @@
 	 */

 	public static String toEscapedUnicode(final String unicodeString)

 	{

-		if ((unicodeString == null) || (unicodeString.length() == 0))

+		if (unicodeString == null || unicodeString.isEmpty())

 		{

 			return unicodeString;

 		}

@@ -1030,7 +1017,7 @@
 		for (int x = 0; x < len; x++)

 		{

 			char aChar = unicodeString.charAt(x);

-			if (NONCHARACTERS.contains(aChar))

+			if (Character.getType(aChar) == Character.UNASSIGNED)

 			{

 				continue;

 			}

diff --git a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
index bb0fa39..47a0ec0 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
@@ -459,7 +459,7 @@
 	@Test

 	public void testNonchar()

 	{

-		assertEquals("", Strings.escapeMarkup("\ufffe\uFDDF\uFDE0").toString());

-		assertEquals("", Strings.toEscapedUnicode("\ufffe\uFDDF\uFDE0"));

+		assertEquals("", Strings.escapeMarkup("\ufffe\uFDDF\uFDE0\uFDD0\uFDEF").toString());

+		assertEquals("", Strings.toEscapedUnicode("\ufffe\uFDDF\uFDE0\uFDD0\uFDEF"));

 	}

 }