You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by aw...@apache.org on 2007/07/16 22:59:57 UTC

svn commit: r556736 - /myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java

Author: awiner
Date: Mon Jul 16 13:59:56 2007
New Revision: 556736

URL: http://svn.apache.org/viewvc?view=rev&rev=556736
Log:
TRINIDAD-104: Don't write NULL characters as output
- In CoreRenderer.toChar(), catch any uses of NUL (\u0000) by returning CHAR_UNDEFINED

Modified:
    myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java

Modified: myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java?view=diff&rev=556736&r1=556735&r2=556736
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/CoreRenderer.java Mon Jul 16 13:59:56 2007
@@ -147,26 +147,38 @@
   {
     if (o == null)
       return CHAR_UNDEFINED;
-
+    
+    char c;
     if (o instanceof Character)
-      return ((Character) o).charValue();
-
-    // If it's not a Character object, then let's turn it into
-    // a CharSequence and grab the first character
-    CharSequence cs;
-    if (o instanceof CharSequence)
     {
-      cs = (CharSequence) o;
+      c = ((Character) o).charValue();
     }
     else
     {
-      cs = o.toString();
+      // If it's not a Character object, then let's turn it into
+      // a CharSequence and grab the first character
+      CharSequence cs;
+      if (o instanceof CharSequence)
+      {
+        cs = (CharSequence) o;
+      }
+      else
+      {
+        cs = o.toString();
+      }
+
+      if (cs.length() == 0)
+        c = CHAR_UNDEFINED;
+      else
+        c = cs.charAt(0);
     }
-    
-    if (cs.length() == 0)
-      return CHAR_UNDEFINED;
 
-    return cs.charAt(0);
+    // Handle the occasional odd bit of code that likes
+    // returning null, and treat it identically to UNDEFINED.
+    if (c == '\u0000')
+      c = CHAR_UNDEFINED;
+
+    return c;
   }