Author: toad
Date: 2006-12-13 15:59:42 +0000 (Wed, 13 Dec 2006)
New Revision: 11372

Modified:
   trunk/freenet/src/freenet/keys/FreenetURI.java
Log:
Fix major bug in FreenetURI.pushMetaString - it was always pushing null!
Broke page 2 of Entry Point, probably broke lots of other things too.
Also put in some debugging paranoia; throw if we try to add null's, generally.

Modified: trunk/freenet/src/freenet/keys/FreenetURI.java
===================================================================
--- trunk/freenet/src/freenet/keys/FreenetURI.java      2006-12-13 14:05:05 UTC 
(rev 11371)
+++ trunk/freenet/src/freenet/keys/FreenetURI.java      2006-12-13 15:59:42 UTC 
(rev 11372)
@@ -298,8 +298,10 @@

                if (!sv.isEmpty()) {
                        metaStr = new String[sv.size()];
-                       for (int i = 0; i < metaStr.length; i++)
+                       for (int i = 0; i < metaStr.length; i++) {
                                metaStr[i] = (String) 
sv.elementAt(metaStr.length - 1 - i);
+                               if(metaStr[i] == null) throw new 
NullPointerException();
+                       }
                } else {
                        metaStr = null;
                }
@@ -442,11 +444,13 @@
         */
        public FreenetURI pushMetaString(String name) {
                String[] newMetaStr;
+               if(name == null) throw new NullPointerException();
                if(metaStr == null)
                        newMetaStr = new String[] { name };
                else {
                        newMetaStr = new String[metaStr.length+1];
                        System.arraycopy(metaStr, 0, newMetaStr, 0, 
metaStr.length);
+                       newMetaStr[metaStr.length] = name;
                }
                return setMetaString(newMetaStr);
        }
@@ -457,6 +461,7 @@
        public FreenetURI addMetaStrings(String[] strs) {
                if (strs == null)
                        return this; // legal noop, since getMetaStrings can 
return null
+               for(int i=0;i<strs.length;i++) if(strs[i] == null) throw new 
NullPointerException("element "+i+" of "+strs.length+" is null");
                String[] newMetaStr;
                if (metaStr == null)
                        return setMetaString(strs);


Reply via email to