Update the conditioned variables - we need to resolve the conditions when additional
variables are set.
This is a fix of issue #48667.
1.1 --- a/vcs.advanced/src/org/netbeans/modules/vcs/advanced/recognizer/CommandLineVcsFileSystemInfo.java Thu Sep 09 16:41:37 2004 +0000
1.2 +++ b/vcs.advanced/src/org/netbeans/modules/vcs/advanced/recognizer/CommandLineVcsFileSystemInfo.java Thu Sep 09 16:43:50 2004 +0000
1.3 @@ -40,6 +40,8 @@
1.4 import org.netbeans.modules.vcs.advanced.CommandLineVcsFileSystem;
1.5 import org.netbeans.modules.vcs.advanced.Profile;
1.6 import org.netbeans.modules.vcs.advanced.ProfilesFactory;
1.7 +import org.netbeans.modules.vcs.advanced.variables.ConditionedVariables;
1.8 +import org.netbeans.modules.vcs.advanced.variables.ConditionedVariablesUpdater;
1.9 import org.netbeans.modules.vcscore.VcsFileSystem;
1.10 import org.netbeans.modules.vcscore.registry.FSRegistry;
1.11 import org.openide.cookies.InstanceCookie;
1.12 @@ -205,11 +207,15 @@
1.13 ErrorManager.getDefault().notify(ioExc);
1.14 }
1.15 if (additionalVars != null) {
1.16 + ConditionedVariables cVars = profile.getVariables();
1.17 + ConditionedVariablesUpdater cVarsUpdater = new ConditionedVariablesUpdater(cVars, fs.getVariablesAsHashtable());
1.18 Vector vars = fs.getVariables();
1.19 HashMap varsByName = new HashMap();
1.20 + HashMap varValues = new HashMap();
1.21 for (int i = 0, n = vars.size (); i < n; i++) {
1.22 VcsConfigVariable var = (VcsConfigVariable) vars.get (i);
1.23 varsByName.put (var.getName (), var);
1.24 + varValues.put (var.getName (), var.getValue());
1.25 }
1.26 for (Iterator addVarIt = additionalVars.keySet().iterator(); addVarIt.hasNext(); ) {
1.27 String name = (String) addVarIt.next();
1.28 @@ -222,8 +228,11 @@
1.29 } else {
1.30 var.setValue(value);
1.31 }
1.32 + varValues.put (var.getName (), value);
1.33 }
1.34 - fs.setVariables(vars);
1.35 + Vector variables = cVarsUpdater.updateConditionalValues(cVars, varValues,
1.36 + varsByName, vars);
1.37 + fs.setVariables(variables);
1.38 }
1.39 }
1.40 return fs;