Program: 74644
Project: 74644
Buggy source:
/** 
 * Copies all values from element to newElement. Structure, element reference values, etc. are dumped as a new copy.
 * @param element the source element
 * @param newElement the target element
 */
private void localizePropertyValues(DesignElement element,DesignElement newElement){
  localizeUserPropDefn(element,newElement);
  Module root=element.getRoot();
  if (element instanceof IExtendableElement)   ModelUtil.duplicateExtensionIdentifier(element,newElement,root);
  Iterator iter=element.getPropertyDefns().iterator();
  while (iter.hasNext()) {
    ElementPropertyDefn propDefn=(ElementPropertyDefn)iter.next();
    String propName=propDefn.getName();
    if (IDesignElementModel.EXTENDS_PROP.equals(propName) || IDesignElementModel.USER_PROPERTIES_PROP.equals(propName) || IModuleModel.THEME_PROP.equals(propName)|| IModuleModel.LIBRARIES_PROP.equals(propName)|| IModuleModel.PROPERTY_BINDINGS_PROP.equals(propName))     continue;
    if ((propDefn.isStyleProperty() && !(element instanceof Style)) || IStyledElementModel.STYLE_PROP.equals(propName))     continue;
    Object value=element.getStrategy().getPropertyFromElement(root,element,propDefn);
    if (value == null)     continue;
switch (propDefn.getTypeCode()) {
case IPropertyType.ELEMENT_REF_TYPE:
      handleElementRefValue(newElement,propDefn,(ElementRefValue)value);
    break;
case IPropertyType.STRUCT_REF_TYPE:
  handleStructureRefValue(newElement,propDefn,(StructRefValue)value);
break;
case IPropertyType.LIST_TYPE:
if (propDefn.getSubTypeCode() == IPropertyType.ELEMENT_REF_TYPE) {
handleElementRefValueList(newElement,propDefn,(List)value);
}
 else if (newElement.getLocalProperty(null,propDefn) == null) newElement.setProperty(propDefn,ModelUtil.copyValue(propDefn,value));
break;
case IPropertyType.STRUCT_TYPE:
if (newElement instanceof Cube && ITabularCubeModel.DIMENSION_CONDITIONS_PROP.equals(propDefn.getName()) && element.getRoot() == sourceDesign) handleDimensionConditions((Cube)newElement,(Cube)element);
 else handleStructureValue(newElement,propDefn,value);
break;
case IPropertyType.ELEMENT_TYPE:
break;
case IPropertyType.CONTENT_ELEMENT_TYPE:
handleContentElementValue(newElement,propDefn,value);
break;
default :
if (newElement.getLocalProperty(null,propDefn) == null) newElement.setProperty(propDefn,value);
}
}
}

Fixed version (ground truth):
/** 
 * Copies all values from element to newElement. Structure, element reference values, etc. are dumped as a new copy.
 * @param element the source element
 * @param newElement the target element
 */
private void localizePropertyValues(DesignElement element,DesignElement newElement){
  localizeUserPropDefn(element,newElement);
  Module root=element.getRoot();
  if (element instanceof IExtendableElement)   ModelUtil.duplicateExtensionIdentifier(element,newElement,root);
  Iterator iter=element.getPropertyDefns().iterator();
  while (iter.hasNext()) {
    ElementPropertyDefn propDefn=(ElementPropertyDefn)iter.next();
    String propName=propDefn.getName();
    if (IDesignElementModel.EXTENDS_PROP.equals(propName) || IDesignElementModel.USER_PROPERTIES_PROP.equals(propName) || IModuleModel.THEME_PROP.equals(propName)|| IModuleModel.LIBRARIES_PROP.equals(propName)|| IModuleModel.PROPERTY_BINDINGS_PROP.equals(propName))     continue;
    if ((propDefn.isStyleProperty() && !(element instanceof Style)) || IStyledElementModel.STYLE_PROP.equals(propName))     continue;
    Object value=element.getStrategy().getPropertyFromElement(root,element,propDefn);
    if (value == null)     continue;
switch (propDefn.getTypeCode()) {
case IPropertyType.ELEMENT_REF_TYPE:
      handleElementRefValue(newElement,propDefn,(ElementRefValue)value);
    break;
case IPropertyType.STRUCT_REF_TYPE:
  handleStructureRefValue(newElement,propDefn,(StructRefValue)value);
break;
case IPropertyType.LIST_TYPE:
if (propDefn.getSubTypeCode() == IPropertyType.ELEMENT_REF_TYPE) {
handleElementRefValueList(newElement,propDefn,(List)value);
}
 else if (newElement.getLocalProperty(null,propDefn) == null) newElement.setProperty(propDefn,ModelUtil.copyValue(propDefn,value));
break;
case IPropertyType.STRUCT_TYPE:
if (newElement instanceof Cube && ITabularCubeModel.DIMENSION_CONDITIONS_PROP.equals(propDefn.getName()) && element.getRoot() == sourceDesign) handleDimensionConditions((Cube)newElement,(Cube)element);
 else handleStructureValue(newElement,propDefn,value);
break;
case IPropertyType.ELEMENT_TYPE:
break;
case IPropertyType.CONTENT_ELEMENT_TYPE:
handleContentElementValue(newElement,propDefn,value);
break;
default :
if (newElement.getLocalProperty(null,propDefn) == null) {
if (propDefn.isEncryptable()) {
String encryption=element.getEncryptionID(propDefn);
newElement.setEncryptionHelper(propDefn,encryption);
value=ModelUtil.encryptProperty(newElement,propDefn,encryption,value);
newElement.setProperty(propDefn,value);
}
 else newElement.setProperty(propDefn,value);
}
}
}
}