This commit was manufactured by cvs2svn to create tag
'R1_01_N20061009-1755'.
diff --git a/plugins/org.eclipse.epf.authoring.ui/icons/shape/outcome.gif b/plugins/org.eclipse.epf.authoring.ui/icons/shape/outcome.gif
index c673882..e703518 100755
--- a/plugins/org.eclipse.epf.authoring.ui/icons/shape/outcome.gif
+++ b/plugins/org.eclipse.epf.authoring.ui/icons/shape/outcome.gif
Binary files differ
diff --git a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/Resources.properties b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/Resources.properties
index 395523e..48b05f7 100755
--- a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/Resources.properties
+++ b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/Resources.properties
@@ -35,8 +35,8 @@
 
 # Error Messages
 invalidXMLFile_error=The specified XML file is not valid.
-versionMismatch_oldData=IUPM0010E: The specified XML file was exported by a previous version ({0}) of {1}. You must export files using the current version of {1}.
-versionMismatch_oldData_unknown=IUPM0011E: The specified XML file was exported by a previous version of {0}. You must export files using the current version of {0}.
+versionMismatch_oldData=IUPM0010E: The specified XML file was exported by a previous version ({0}) of {1}. The files must be exported using the current version of {1}.
+versionMismatch_oldData_unknown=IUPM0011E: The specified XML file was exported by a previous version of {0}. The files must be exported using the current version of {0}.
 versionMismatch_oldTool=IUPM0012E: The specified XML file was exported by a newer version ({0}) of {1}. You must upgrade {1} in order to import the file.  
 versionMismatch_oldTool_unknown=IUPM0013E: The specified XML file cannot be opened. You must upgrade {0} in order to import the file.  
 
diff --git a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
index a0a9044..b017c2a 100755
--- a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
+++ b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
@@ -216,8 +216,8 @@
 				});
 			}	
 						
-			ResourceUtil.refreshResources(LibraryService.getInstance()
-					.getCurrentMethodLibrary(), monitor);
+			//ResourceUtil.refreshResources(LibraryService.getInstance()
+			//		.getCurrentMethodLibrary(), monitor);
 
 		} catch (Exception e) {
 			logger.logError(NLS.bind(ImportXMLResources.importXMLService_import_failed, e.getMessage()), e);
diff --git a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/wizards/ImportXMLWizard.java b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/wizards/ImportXMLWizard.java
index f7ea4f3..718a95a 100755
--- a/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/wizards/ImportXMLWizard.java
+++ b/plugins/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/wizards/ImportXMLWizard.java
@@ -14,6 +14,8 @@
 import java.lang.reflect.InvocationTargetException;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.epf.authoring.ui.actions.LibraryLockingOperationRunner;
 import org.eclipse.epf.authoring.ui.wizards.SaveAllEditorsPage;
 import org.eclipse.epf.common.serviceability.MsgBox;
 import org.eclipse.epf.export.xml.ExportXMLPlugin;
@@ -24,6 +26,7 @@
 import org.eclipse.epf.library.ILibraryManager;
 import org.eclipse.epf.library.LibraryService;
 import org.eclipse.epf.library.ui.wizards.LibraryBackupUtil;
+import org.eclipse.epf.library.util.ResourceUtil;
 import org.eclipse.epf.persistence.MultiFileSaveUtil;
 import org.eclipse.epf.uma.util.ContentDescriptionFactory;
 import org.eclipse.epf.uma.util.IFileManager;
@@ -115,6 +118,33 @@
 	 * @see org.eclipse.jface.wizard.IWizard#performFinish()
 	 */
 	public boolean performFinish() {
+		final boolean ret[] = new boolean[1];		
+		LibraryLockingOperationRunner runner = new LibraryLockingOperationRunner();
+		runner.run(new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+				ret[0] = performFinish_();
+			}			
+		});
+		
+		runner = new LibraryLockingOperationRunner();
+		runner.run(new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+				String msg = NLS.bind(ImportXMLResources.review_log_files,
+						service.getLogPath());
+					MsgBox.prompt(msg, SWT.OK);
+			}			
+		});		
+		
+		ResourceUtil.refreshResources(LibraryService.getInstance()
+				.getCurrentMethodLibrary(), new NullProgressMonitor());
+		
+		return ret[0];
+	}
+	
+	/**
+	 * @see org.eclipse.jface.wizard.IWizard#performFinish()
+	 */
+	private boolean performFinish_() {
 		LibraryBackupUtil.promptBackupLibrary(null, new File(LibraryService
 				.getInstance().getCurrentMethodLibraryPath()));
 
@@ -158,9 +188,9 @@
 		if (!succeed) {
 			return false;
 		}
-		String msg = NLS.bind(ImportXMLResources.review_log_files,
-				service.getLogPath());
-		MsgBox.prompt(msg, SWT.OK);
+		//String msg = NLS.bind(ImportXMLResources.review_log_files,
+		//	service.getLogPath());
+		//MsgBox.prompt(msg, SWT.OK);
 
 		return true;
 	}
diff --git a/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/Resources.properties b/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/Resources.properties
index d00595c..e5460b5 100755
--- a/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/Resources.properties
+++ b/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/Resources.properties
@@ -88,7 +88,7 @@
 SelectPluginsToImport_pluginDataLabel=Selected plug-in in the import directory
 DiffReportViewer_type=Content Type
 SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=Selected configuration not found in the current library.
-versionMismatch_oldData=IUPE0204E: The specified files were exported by a previous version ({0}) of {1}. You must export files using the current version of {1}.
-versionMismatch_oldData_unknown=IUPE0205E: The specified files were exported by a previous version of {0}. You must export files using the current version of {0}.
+versionMismatch_oldData=IUPE0204E: The specified files were exported by a previous version ({0}) of {1}. The files must be exported using the current version of {1}.
+versionMismatch_oldData_unknown=IUPE0205E: The specified files were exported by a previous version of {0}. The files must be exported using the current version of {0}.
 versionMismatch_oldTool=IUPE0206E: The specified files were exported by a newer version ({0}) of {1}. You must upgrade {1} in order to import the files.  
 versionMismatch_oldTool_unknown=IUPE0207E: The specified files cannot be opened. You must upgrade {0} in order to import the files.  
diff --git a/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/TngUtil.java b/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/TngUtil.java
index 0b6e772..917e028 100755
--- a/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/TngUtil.java
+++ b/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/TngUtil.java
@@ -2517,6 +2517,9 @@
 			targetPackage = (ProcessPackage)process.eContainer().eContainer();
 		}
 		
+		//		new deep-copied process's reference
+		org.eclipse.epf.uma.Process newProcess = null;
+
 		CopyHelper helper = new CopyHelper();	
 		try {
 			if(monitor == null) {
@@ -2529,6 +2532,7 @@
 				Collection result = cmd.getResult();
 				if(!result.isEmpty()) {
 					cmd.copySuppressionStates();
+					newProcess = (org.eclipse.epf.uma.Process) result.toArray()[0];
 				}
 			}
 			finally {
@@ -2541,9 +2545,10 @@
 		
 		// fix breakdown element order of all activities
 		//
-		ProcessUtil.fixBreakdonwElementOrderRecursively(process);	
-		
-		return process;
+		if ( newProcess != null ) {
+			ProcessUtil.fixBreakdonwElementOrderRecursively(newProcess);	
+		}
+		return newProcess;
 	}
 	
 	public static Object getAdapterByType(Notifier notifier, Object type) {
diff --git a/plugins/org.eclipse.epf.library/layout/xsl/activity.xsl b/plugins/org.eclipse.epf.library/layout/xsl/activity.xsl
index 561d1c3..95fe083 100755
--- a/plugins/org.eclipse.epf.library/layout/xsl/activity.xsl
+++ b/plugins/org.eclipse.epf.library/layout/xsl/activity.xsl
@@ -380,7 +380,7 @@
 	
 	<xsl:template name="moreInformationSection">
 		<xsl:param name="contentDescription"/>
-		<xsl:if test="$contentDescription/attribute[@name='estimatingTechnique'] != '' or count(referenceList[@name='concepts']/Element) + count(referenceList[@name='checklists']/Element) + count(referenceList[@name='communicationsMaterials']/Element) + count(referenceList[@name='guidelines']/Element) + count(referenceList[@name='supportingMaterials']/Element) + count(referenceList[@name='reusableAssets']/Element) + count(referenceList[@name='examples']/Element) > 0">
+		<xsl:if test="$contentDescription/attribute[@name='estimatingTechnique'] != '' or count(referenceList[@name='concepts']/Element) + count(referenceList[@name='checklists']/Element) + count(referenceList[@name='communicationsMaterials']/Element) + count(referenceList[@name='guidelines']/Element) + count(referenceList[@name='supportingMaterials']/Element) + count(referenceList[@name='reusableAssets']/Element) > 0">
 		<div class="sectionHeading"><xsl:value-of select="$moreInfoText"/></div>
 		<div class="sectionContent">
 			<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
@@ -418,10 +418,7 @@
 				</xsl:call-template>
 				<xsl:call-template name="addWhitePapers">					
 					<xsl:with-param name="whitePapers" select="referenceList/Element[@Type='Whitepaper']"/>					
-				</xsl:call-template>
-				<xsl:call-template name="addExamples">					
-					<xsl:with-param name="examples" select="referenceList[@name='examples']/Element"/>					
-				</xsl:call-template>
+				</xsl:call-template>				
 			</table>
 		</div>
 		</xsl:if>
diff --git a/plugins/org.eclipse.epf.library/layout/xsl/contentcategory.xsl b/plugins/org.eclipse.epf.library/layout/xsl/contentcategory.xsl
index fb1bdbf..53922f7 100755
--- a/plugins/org.eclipse.epf.library/layout/xsl/contentcategory.xsl
+++ b/plugins/org.eclipse.epf.library/layout/xsl/contentcategory.xsl
@@ -192,9 +192,9 @@
 	
     <xsl:template name="showDisciple">
 		<xsl:variable name="referenceWorkflows" select="referenceList[@name='referenceWorkflows']/Element"/>
-		<xsl:variable name="tasks" select="referenceList[@name='tasks']/Element"/>	
-				
-		<xsl:if test="count($referenceWorkflows) + count($tasks) > 0">
+		<xsl:variable name="tasks" select="referenceList[@name='tasks']/Element"/>
+		<xsl:variable name="subdisciplines" select="referenceList[@name='subdiscipline']/Element"/>
+		<xsl:if test="count($referenceWorkflows) + count($tasks) + count($subdisciplines)> 0">
 			<div class="sectionHeading"><xsl:value-of select="$relationshipsText"/></div>
 			<div class="sectionContent">
 				<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
@@ -233,6 +233,24 @@
 								</ul>
 							</td>
 						</tr>
+					</xsl:if>
+					<xsl:if test="count($subdisciplines) > 0">
+						<tr valign="top">
+							<th class="sectionTableHeading" scope="row"><xsl:value-of select="$subdisciplinesText"/></th>
+							<td class="sectionTableCell">
+								<ul>
+									<xsl:for-each select="$subdisciplines">
+										<xsl:sort data-type="text" select="@DisplayName" order="ascending" />
+										<li>
+											<a>
+												<xsl:attribute name="href"><xsl:value-of select="/Element/@BackPath"/><xsl:value-of select="@Url"/></xsl:attribute>
+												<xsl:value-of select="@DisplayName"/>
+											</a>
+										</li>
+									</xsl:for-each>
+								</ul>
+							</td>
+						</tr>
 					</xsl:if>										
 				</table>
 			</div>
diff --git a/plugins/org.eclipse.epf.library/layout/xsl/helper.xsl b/plugins/org.eclipse.epf.library/layout/xsl/helper.xsl
index 6bff3d7..fe3f519 100755
--- a/plugins/org.eclipse.epf.library/layout/xsl/helper.xsl
+++ b/plugins/org.eclipse.epf.library/layout/xsl/helper.xsl
@@ -169,6 +169,7 @@
 	<xsl:param name="estimationConsiderationsText"/>
 	<xsl:param name="activityReferencesText"/>
 	<xsl:param name="colon_with_space"/>
+	<xsl:param name="subdisciplinesText"/>
 	<xsl:template name="umaMetaTags">
 		<xsl:param name="elementType"/>
 		<xsl:param name="elementName"/>
diff --git a/plugins/org.eclipse.epf.library/layout/xsl/resources.properties b/plugins/org.eclipse.epf.library/layout/xsl/resources.properties
index e2cd0cf..ac23d9b 100755
--- a/plugins/org.eclipse.epf.library/layout/xsl/resources.properties
+++ b/plugins/org.eclipse.epf.library/layout/xsl/resources.properties
@@ -39,6 +39,7 @@
 descriptionText=Description
 disciplineText=Discipline
 disciplinesText=Disciplines
+subdisciplinesText=Subdisciplines
 domainText=Domain
 domainsText=Domains
 examplesText=Examples
diff --git a/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java b/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
index 99c46ae..2ce0dc4 100755
--- a/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
+++ b/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
@@ -26,6 +26,7 @@
 import org.eclipse.epf.common.utils.Timer;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.LibraryResources;
+import org.eclipse.epf.library.LibraryService;
 import org.eclipse.epf.library.configuration.ConfigurationHelper;
 import org.eclipse.epf.library.edit.IFilter;
 import org.eclipse.epf.library.edit.process.IBSItemProvider;
@@ -47,6 +48,7 @@
 import org.eclipse.epf.uma.BreakdownElement;
 import org.eclipse.epf.uma.CompositeRole;
 import org.eclipse.epf.uma.MethodElement;
+import org.eclipse.epf.uma.MethodPlugin;
 import org.eclipse.epf.uma.Process;
 import org.eclipse.epf.uma.Role;
 import org.eclipse.epf.uma.RoleDescriptor;
@@ -83,6 +85,16 @@
 	}
 
 	public void init(ElementLayoutManager layoutManager, MethodElement element) {
+		
+		// make sure the process is loaded
+		// otherwise the process or process elements may not have a valid container
+		// and thus the element content path can't be determined
+		// this is just a workaround. should we have a better way to make sure the elements are loaded correctly???????????
+		MethodPlugin plugin = LibraryUtil.getMethodPlugin(element);
+		if ( plugin == null ) {
+			LibraryUtil.loadAllProcesses(LibraryService.getInstance().getCurrentMethodLibrary());
+		}
+		
 		super.__init(layoutManager, element);
 
 		userDiagramInfo = new org.eclipse.epf.diagram.model.util.DiagramInfo((Activity)element);
@@ -862,17 +874,32 @@
 				LibraryResources.ActivityLayout_additionalTasks_text); 
 
 	}
-
+	
 	private void createRoleRollupNodes(XmlElement parentXml, List items,
 			String info) {
+		
+		// 160188 - Published Team Allocation tab shows redundant information
+		// only show one descriptor if more than one are linked to the same task or wp.
+		// so keep the processed task and wp instead of the descriptors
 		List processed = new ArrayList();
+		MethodElement linked = null;
 		for (Iterator it = items.iterator(); it.hasNext();) {
 			MethodElement e = (MethodElement) it.next();
-			if ( processed.contains(e) ) {
+			linked = null;
+			if ( e instanceof TaskDescriptor ) {
+				linked = ((TaskDescriptor)e).getTask();
+			} else if ( e instanceof WorkProductDescriptor ) {
+				linked = ((WorkProductDescriptor)e).getWorkProduct();
+			}
+			if ( linked == null ) {
+				linked = e;
+			}
+			
+			if ( processed.contains(linked) ) {
 				continue;
 			}
 			
-			processed.add(e);
+			processed.add(linked);
 			
 			IElementLayout l = layoutManager.getLayout(e, true);
 			XmlElement child = l.getXmlElement(false);
diff --git a/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/LibraryUtil.java b/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/LibraryUtil.java
index 4e9df7d..81a1c7a 100755
--- a/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/LibraryUtil.java
+++ b/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/LibraryUtil.java
@@ -294,6 +294,19 @@
 		}
 	}
 
+	public static void loadAllProcesses(MethodLibrary lib) {
+
+		for (Iterator iter = lib.getMethodPlugins().iterator(); iter.hasNext();) {
+			try {
+				MethodPlugin plugin = (MethodPlugin) iter.next();
+				TngUtil.getAllProcesses(plugin);
+			} catch (Exception e) {
+				LibraryEditPlugin.INSTANCE.log(e);
+			}
+
+		}
+	}
+	
 	public static void saveAll(MethodLibrary lib) throws Exception {
 		saveLibrary(lib, true, false);
 	}
diff --git a/plugins/org.eclipse.epf.richtext/src/org/eclipse/epf/richtext/RichText.java b/plugins/org.eclipse.epf.richtext/src/org/eclipse/epf/richtext/RichText.java
index 24bb40d..af5c2f9 100755
--- a/plugins/org.eclipse.epf.richtext/src/org/eclipse/epf/richtext/RichText.java
+++ b/plugins/org.eclipse.epf.richtext/src/org/eclipse/epf/richtext/RichText.java
@@ -434,7 +434,7 @@
 	 * @return the rich text content formatted in a markup language
 	 */
 	public String getText() {
-		if (editor != null) {
+		if (editor != null && initialized) {
 			try {
 				executeCommand(RichTextCommand.GET_TEXT);
 				if (currentText != null && currentText.length() > 0) {