Author: toad
Date: 2007-04-24 11:47:22 +0000 (Tue, 24 Apr 2007)
New Revision: 12916

Modified:
   trunk/freenet/src/freenet/support/SimpleFieldSet.java
Log:
More KeyIterator logic fixes

Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-04-24 
11:40:56 UTC (rev 12915)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-04-24 
11:47:22 UTC (rev 12916)
@@ -481,6 +481,7 @@
                                while(true) {
                                        // Iterate subsets.
                                        if(subIterator != null && 
subIterator.hasNext()) {
+                                               if(ret != null) return ret;
                                                ret = (String) 
subIterator.next();
                                                if(subIterator.hasNext())
                                                        if(ret != null) return 
ret;
@@ -491,6 +492,10 @@
                                                SimpleFieldSet fs = 
(SimpleFieldSet) subsets.get(key);
                                                String newPrefix = prefix + key 
+ MULTI_LEVEL_CHAR;
                                                subIterator = 
fs.keyIterator(newPrefix);
+                                       } else {
+                                               if(ret == null)
+                                                       Logger.error(this, 
"Returning null from KeyIterator.nextKey() - should never happen!");
+                                               return ret;
                                        }
                                }
                        }


Reply via email to