Author: toad
Date: 2007-04-24 11:40:56 +0000 (Tue, 24 Apr 2007)
New Revision: 12915
Modified:
trunk/freenet/src/freenet/support/SimpleFieldSet.java
Log:
synchronization
Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java 2007-04-24
11:39:40 UTC (rev 12914)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java 2007-04-24
11:40:56 UTC (rev 12915)
@@ -437,24 +437,26 @@
String prefix;
public KeyIterator(String prefix) {
- valuesIterator = values.keySet().iterator();
- if(subsets != null)
- subsetIterator = subsets.keySet().iterator();
- else
- subsetIterator = null;
- while(true) {
- if(valuesIterator.hasNext()) break;
- if(!subsetIterator.hasNext()) break;
- String name = (String) subsetIterator.next();
- if(name == null) continue;
- SimpleFieldSet fs = (SimpleFieldSet) subsets.get(name);
- if(fs == null) continue;
- String newPrefix = prefix + name + MULTI_LEVEL_CHAR;
- subIterator = fs.keyIterator(newPrefix);
- if(subIterator.hasNext()) break;
- subIterator = null;
+ synchronized(SimpleFieldSet.this) {
+ valuesIterator = values.keySet().iterator();
+ if(subsets != null)
+ subsetIterator = subsets.keySet().iterator();
+ else
+ subsetIterator = null;
+ while(true) {
+ if(valuesIterator.hasNext()) break;
+ if(!subsetIterator.hasNext()) break;
+ String name = (String) subsetIterator.next();
+ if(name == null) continue;
+ SimpleFieldSet fs = (SimpleFieldSet)
subsets.get(name);
+ if(fs == null) continue;
+ String newPrefix = prefix + name +
MULTI_LEVEL_CHAR;
+ subIterator = fs.keyIterator(newPrefix);
+ if(subIterator.hasNext()) break;
+ subIterator = null;
+ }
+ this.prefix = prefix;
}
- this.prefix = prefix;
}
public boolean hasNext() {