Author: toad
Date: 2006-05-05 17:52:51 +0000 (Fri, 05 May 2006)
New Revision: 8608

Modified:
   trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
   trunk/freenet/src/freenet/node/Version.java
Log:
695: Fix rare NPE in content filter (fixes frost chinese support page).

Modified: trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java       
2006-05-05 17:30:56 UTC (rev 8607)
+++ trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java       
2006-05-05 17:52:51 UTC (rev 8608)
@@ -464,10 +464,10 @@
        }

        static class ParsedTag {
-               String element = null;
-               String[] unparsedAttrs = null;
-               boolean startSlash = false;
-               boolean endSlash = false;
+               final String element;
+               final String[] unparsedAttrs;
+               final boolean startSlash;
+               final boolean endSlash;
                /*
                 * public ParsedTag(ParsedTag t) { this.element = t.element;
                 * this.unparsedAttrs = (String[]) t.unparsedAttrs.clone();
@@ -482,8 +482,12 @@

                public ParsedTag(Vector v) {
                        int len = v.size();
-                       if (len == 0)
+                       if (len == 0) {
+                               element = null;
+                               unparsedAttrs = new String[0];
+                               startSlash = endSlash = false;
                                return;
+                       }
                        String s = (String) v.elementAt(len - 1);
                        if ((len - 1 != 0 || s.length() > 1) && 
s.endsWith("/")) {
                                s = s.substring(0, s.length() - 1);
@@ -492,19 +496,20 @@
                                        len--;
                                endSlash = true;
                                // Don't need to set it back because everything 
is an I-value
-                       }
+                       } else endSlash = false;
                        s = (String) v.elementAt(0);
                        if (s.length() > 1 && s.startsWith("/")) {
                                s = s.substring(1);
                                v.setElementAt(s, 0);
                                startSlash = true;
-                       }
+                       } else startSlash = false;
                        element = (String) v.elementAt(0);
                        if (len > 1) {
                                unparsedAttrs = new String[len - 1];
                                for (int x = 1; x < len; x++)
                                        unparsedAttrs[x - 1] = (String) 
v.elementAt(x);
-                       }
+                       } else
+                               unparsedAttrs = new String[0];
                        Logger.minor(this, "Element = "+element);
                }


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-05-05 17:30:56 UTC (rev 
8607)
+++ trunk/freenet/src/freenet/node/Version.java 2006-05-05 17:52:51 UTC (rev 
8608)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 674;
+       private static final int buildNumber = 675;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 591;


Reply via email to