# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/mkleint/src/hg-working/main-main/ant.freeform/src/org/netbeans/modules/ant/freeform # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: FreeformEvaluator.java --- FreeformEvaluator.java Base (BASE) +++ FreeformEvaluator.java Locally Modified (Based On LOCAL) @@ -92,14 +92,15 @@ } private PropertyEvaluator initEval() throws IOException { + PropertyProvider preprovider = project.helper().getStockPropertyPreprovider(); + List defs = new ArrayList(); + synchronized (intermediateEvaluators) { // Stop listening to old intermediate evaluators. Iterator ieIt = intermediateEvaluators.iterator(); while (ieIt.hasNext()) { ieIt.next().removePropertyChangeListener(this); ieIt.remove(); } - PropertyProvider preprovider = project.helper().getStockPropertyPreprovider(); - List defs = new ArrayList(); Element genldata = project.getPrimaryConfigurationData(); Element properties = Util.findElement(genldata, "properties", FreeformProjectType.NS_GENERAL); // NOI18N if (properties != null) { @@ -125,6 +126,7 @@ } } } + } return PropertyUtils.sequentialPropertyEvaluator(preprovider, defs.toArray(new PropertyProvider[defs.size()])); } @@ -173,7 +175,11 @@ public void propertyChange(PropertyChangeEvent propertyChangeEvent) { Object source = propertyChangeEvent.getSource(); assert source instanceof PropertyEvaluator : source; - if (intermediateEvaluators.contains(source)) { + boolean contains; + synchronized (intermediateEvaluators) { + contains = intermediateEvaluators.contains(source); + } + if (contains) { // A may have changed location. Generally need to rebuild the list of definers. fireAnyChange(); } else {