Defect 41175 Ensure that published URLs stay the same for the same
configuration when using free configuration process
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
index 9f8740f..6229cba 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
@@ -24,17 +24,19 @@
 import org.eclipse.epf.library.edit.util.PracticePropUtil;
 import org.eclipse.epf.library.edit.util.ProcessUtil;
 import org.eclipse.epf.uma.Activity;
+import org.eclipse.epf.uma.Process;
 import org.eclipse.epf.uma.ContentElement;
 import org.eclipse.epf.uma.Descriptor;
 import org.eclipse.epf.uma.Guidance;
 import org.eclipse.epf.uma.MethodConfiguration;
 import org.eclipse.epf.uma.MethodElement;
+import org.eclipse.epf.uma.Role;
 import org.eclipse.epf.uma.RoleDescriptor;
 import org.eclipse.epf.uma.TaskDescriptor;
 import org.eclipse.epf.uma.UmaPackage;
+import org.eclipse.epf.uma.WorkProduct;
 import org.eclipse.epf.uma.WorkProductDescriptor;
 import org.eclipse.epf.uma.ecore.util.OppositeFeature;
-import org.eclipse.epf.uma.util.ContentDescriptionFactory;
 import org.eclipse.epf.uma.util.UmaUtil;
 
 public class RealizedDescriptor extends RealizedBreakdownElement implements
@@ -262,10 +264,22 @@
 		if (parentAct == null) {
 			return processResultDescriptorList(resultDescriptorList, dFeature);
 		}
-
+		Descriptor referencingDes = getDescriptor();//shijin 41175
 		for (MethodElement me : elementSet) {
 			Descriptor des = (Descriptor) getMgr().getDescriptor(
-					getDescriptor(), parentAct, me, dFeature);
+					referencingDes, parentAct, me, dFeature);
+			
+			//shijin<Defect 41175 Ensure that published URLs stay the same for the same configuration when using free configuration process
+			Activity checkParentAct = parentAct;
+			while(!(checkParentAct instanceof Process)) {
+				checkParentAct = checkParentAct.getSuperActivities();
+			}
+			Process p = (Process)checkParentAct;
+			if(p.getDefaultContext() == null && (me instanceof Role || me instanceof WorkProduct)) {
+				des.setGuid(referencingDes.getGuid() + me.getGuid());
+			}
+			//>shijin 41175
+			
 			resultDescriptorList.add(des);
 		}