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);