Index: AbstractClearCaseScm.java =================================================================== --- AbstractClearCaseScm.java (revision 25476) +++ AbstractClearCaseScm.java (working copy) @@ -79,7 +79,7 @@ private final String viewName; private final String mkviewOptionalParam; private final boolean filteringOutDestroySubBranchEvent; - private transient String normalizedViewName; + private transient ThreadLocal normalizedViewName; private final boolean useUpdate; private final boolean removeViewOnRename; private String excludedRegions; @@ -91,12 +91,19 @@ private String winDynStorageDir; private String unixDynStorageDir; + private synchronized ThreadLocal getNormalizedViewNameThreadLocalWrapper() { + if (null == this.normalizedViewName) { + this.normalizedViewName = new ThreadLocal(); + } + + return this.normalizedViewName; + } protected void setNormalizedViewName(String normalizedViewName) { - this.normalizedViewName = normalizedViewName; + getNormalizedViewNameThreadLocalWrapper().set(normalizedViewName); } protected String getNormalizedViewName() { - return normalizedViewName; + return getNormalizedViewNameThreadLocalWrapper().get(); } public AbstractClearCaseScm(final String viewName, @@ -342,7 +349,7 @@ generatedNormalizedViewName = generatedNormalizedViewName.replaceAll( "[\\s\\\\\\/:\\?\\*\\|]+", "_"); - this.normalizedViewName = generatedNormalizedViewName; + setNormalizedViewName(generatedNormalizedViewName); return generatedNormalizedViewName; } @@ -405,7 +412,7 @@ SaveChangeLogAction saveChangeLogAction = createSaveChangeLogAction(clearToolLauncher); // Checkout code - String normalizedViewName = generateNormalizedViewName(build); + String normalizedViewName = generateNormalizedViewName((BuildVariableResolver)variableResolver); if (checkoutAction.checkout(launcher, workspace, normalizedViewName)) {