Program: 171272
Project: 171272
Buggy source:
public AbstractClothingType(File clothingXMLFile){
  if (clothingXMLFile.exists()) {
    try {
      DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
      Document doc=dBuilder.parse(clothingXMLFile);
      doc.getDocumentElement().normalize();
      Element clothingElement=(Element)doc.getElementsByTagName("String_Node_Str").item(0);
      Element coreAttributes=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(0);
      List<ItemEffect> defaultEffects=new ArrayList<>();
      try {
        Element effectsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
        for (int i=0; i < effectsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)effectsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultEffects.add(ItemEffect.loadFromXML(e,doc));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<BlockedParts> defaultBlockedParts=new ArrayList<>();
      try {
        Element blockedPartsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
        for (int i=0; i < blockedPartsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)blockedPartsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultBlockedParts.add(BlockedParts.loadFromXML(e,doc));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<InventorySlot> defaultIncompatibleSlots=new ArrayList<>();
      Element incompatibleSlotsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
      try {
        for (int i=0; i < incompatibleSlotsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)incompatibleSlotsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultIncompatibleSlots.add(InventorySlot.valueOf(e.getTextContent()));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<ItemTag> defaultItemTags=new ArrayList<>();
      Element itemTagsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
      try {
        for (int i=0; i < itemTagsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)itemTagsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultItemTags.add(ItemTag.valueOf(e.getTextContent()));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      displacementDescriptionsPlayer=new HashMap<>();
      displacementDescriptionsNPC=new HashMap<>();
      if (clothingElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
        for (int i=0; i < clothingElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          try {
            Element equipTextElement=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(i);
            DisplacementType type=DisplacementType.valueOf(equipTextElement.getAttribute("String_Node_Str"));
            displacementDescriptionsPlayer.putIfAbsent(type,new HashMap<>());
            displacementDescriptionsNPC.putIfAbsent(type,new HashMap<>());
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
          }
 catch (          Exception ex) {
            System.err.println("String_Node_Str");
          }
        }
      }
      if (clothingElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
        for (int i=0; i < clothingElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          try {
            Element equipTextElement=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(i);
            DisplacementType type=DisplacementType.valueOf(equipTextElement.getAttribute("String_Node_Str"));
            displacementDescriptionsPlayer.putIfAbsent(type,new HashMap<>());
            displacementDescriptionsNPC.putIfAbsent(type,new HashMap<>());
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
          }
 catch (          Exception ex) {
            System.err.println("String_Node_Str");
          }
        }
      }
      this.isMod=true;
      this.baseValue=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.determiner=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.plural=Boolean.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      this.name=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.namePlural=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.description=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.physicalResistance=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      setUpFemininity(Femininity.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent()));
      this.slot=InventorySlot.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.rarity=Rarity.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      enchantmentLimit=-1;
      try {
        enchantmentLimit=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      }
 catch (      Exception ex) {
      }
      this.clothingSet=!coreAttributes.getElementsByTagName("String_Node_Str").item(0).hasChildNodes() ? null : ClothingSet.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.pathName=clothingXMLFile.getParentFile().getAbsolutePath() + "String_Node_Str" + coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.pathNameEquipped=!coreAttributes.getElementsByTagName("String_Node_Str").item(0).hasChildNodes() ? null : coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.effects=defaultEffects;
      this.blockedPartsList=defaultBlockedParts;
      this.incompatibleSlots=defaultIncompatibleSlots;
      List<Colour> importedPrimaryColours=new ArrayList<>();
      try {
        if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
          Element primaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
          if (primaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
            for (int i=0; i < primaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
              importedPrimaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getTextContent()));
            }
          }
        }
 else {
          importedPrimaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedPrimaryColoursDye=new ArrayList<>();
      try {
        if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
          Element primaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
          if (primaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
            for (int i=0; i < primaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
              importedPrimaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getTextContent()));
            }
          }
        }
 else {
          importedPrimaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedSecondaryColours=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element secondaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedSecondaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getTextContent()));
              }
            }
          }
 else {
            importedSecondaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedSecondaryColoursDye=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element secondaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedSecondaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getTextContent()));
              }
            }
          }
 else {
            importedSecondaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedTertiaryColours=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element tertiaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedTertiaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getTextContent()));
              }
            }
          }
 else {
            importedTertiaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedTertiaryColoursDye=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element tertiaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedTertiaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
              }
            }
          }
 else {
            importedTertiaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      setUpColours(importedPrimaryColours,importedPrimaryColoursDye,importedSecondaryColours,importedSecondaryColoursDye,importedTertiaryColours,importedTertiaryColoursDye);
      this.itemTags=defaultItemTags;
      finalSetUp();
    }
 catch (    Exception ex) {
      System.err.println("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
public AbstractClothingType(File clothingXMLFile){
  if (clothingXMLFile.exists()) {
    try {
      DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
      Document doc=dBuilder.parse(clothingXMLFile);
      doc.getDocumentElement().normalize();
      Element clothingElement=(Element)doc.getElementsByTagName("String_Node_Str").item(0);
      Element coreAttributes=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(0);
      List<ItemEffect> defaultEffects=new ArrayList<>();
      try {
        Element effectsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
        for (int i=0; i < effectsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)effectsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultEffects.add(ItemEffect.loadFromXML(e,doc));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<BlockedParts> defaultBlockedParts=new ArrayList<>();
      try {
        Element blockedPartsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
        for (int i=0; i < blockedPartsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)blockedPartsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultBlockedParts.add(BlockedParts.loadFromXML(e,doc));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<InventorySlot> defaultIncompatibleSlots=new ArrayList<>();
      Element incompatibleSlotsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
      try {
        for (int i=0; i < incompatibleSlotsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)incompatibleSlotsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultIncompatibleSlots.add(InventorySlot.valueOf(e.getTextContent()));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<ItemTag> defaultItemTags=new ArrayList<>();
      Element itemTagsElement=(Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0);
      try {
        for (int i=0; i < itemTagsElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)itemTagsElement.getElementsByTagName("String_Node_Str").item(i));
          defaultItemTags.add(ItemTag.valueOf(e.getTextContent()));
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      displacementDescriptionsPlayer=new HashMap<>();
      displacementDescriptionsNPC=new HashMap<>();
      if (clothingElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
        for (int i=0; i < clothingElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          try {
            Element equipTextElement=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(i);
            DisplacementType type=DisplacementType.valueOf(equipTextElement.getAttribute("String_Node_Str"));
            displacementDescriptionsPlayer.putIfAbsent(type,new HashMap<>());
            displacementDescriptionsNPC.putIfAbsent(type,new HashMap<>());
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.REPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.REPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_REPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_REPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
          }
 catch (          Exception ex) {
            System.err.println("String_Node_Str");
          }
        }
      }
      if (clothingElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
        for (int i=0; i < clothingElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
          try {
            Element equipTextElement=(Element)clothingElement.getElementsByTagName("String_Node_Str").item(i);
            DisplacementType type=DisplacementType.valueOf(equipTextElement.getAttribute("String_Node_Str"));
            displacementDescriptionsPlayer.putIfAbsent(type,new HashMap<>());
            displacementDescriptionsNPC.putIfAbsent(type,new HashMap<>());
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsPlayer.get(type).put(DisplacementDescriptionType.DISPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.DISPLACEMENT_SELF,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_DISPLACEMENT,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
            try {
              displacementDescriptionsNPC.get(type).put(DisplacementDescriptionType.NPC_ON_NPC_DISPLACEMENT_ROUGH,equipTextElement.getElementsByTagName("String_Node_Str").item(0).getTextContent());
            }
 catch (            Exception ex) {
            }
          }
 catch (          Exception ex) {
            System.err.println("String_Node_Str");
          }
        }
      }
      this.isMod=true;
      this.baseValue=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.determiner=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.plural=Boolean.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      this.name=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.namePlural=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.description=coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.physicalResistance=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      setUpFemininity(Femininity.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent()));
      this.slot=InventorySlot.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.rarity=Rarity.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      enchantmentLimit=-1;
      try {
        enchantmentLimit=Integer.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      }
 catch (      Exception ex) {
      }
      this.clothingSet=!coreAttributes.getElementsByTagName("String_Node_Str").item(0).hasChildNodes() ? null : ClothingSet.valueOf(coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent());
      this.pathName=clothingXMLFile.getParentFile().getAbsolutePath() + "String_Node_Str" + coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.pathNameEquipped=!coreAttributes.getElementsByTagName("String_Node_Str").item(0).hasChildNodes() ? null : coreAttributes.getElementsByTagName("String_Node_Str").item(0).getTextContent();
      this.effects=defaultEffects;
      this.blockedPartsList=defaultBlockedParts;
      this.incompatibleSlots=defaultIncompatibleSlots;
      List<Colour> importedPrimaryColours=new ArrayList<>();
      try {
        if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
          Element primaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
          if (primaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
            for (int i=0; i < primaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
              importedPrimaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
            }
          }
        }
 else {
          importedPrimaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedPrimaryColoursDye=new ArrayList<>();
      try {
        if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
          Element primaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
          if (primaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
            for (int i=0; i < primaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
              importedPrimaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
            }
          }
        }
 else {
          importedPrimaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedSecondaryColours=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element secondaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedSecondaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
              }
            }
          }
 else {
            importedSecondaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedSecondaryColoursDye=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element secondaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < secondaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedSecondaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
              }
            }
          }
 else {
            importedSecondaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedTertiaryColours=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element tertiaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedTertiaryColours.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
              }
            }
          }
 else {
            importedTertiaryColours=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      List<Colour> importedTertiaryColoursDye=new ArrayList<>();
      try {
        if ((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0) != null) {
          if (((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").isEmpty()) {
            Element tertiaryColoursElement=((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0));
            if (tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength() > 0) {
              for (int i=0; i < tertiaryColoursElement.getElementsByTagName("String_Node_Str").getLength(); i++) {
                importedTertiaryColoursDye.add(Colour.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(i)).getTextContent()));
              }
            }
          }
 else {
            importedTertiaryColoursDye=ColourListPresets.valueOf(((Element)coreAttributes.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")).getPresetColourList();
          }
        }
      }
 catch (      Exception ex) {
        System.err.println("String_Node_Str");
      }
      setUpColours(importedPrimaryColours,importedPrimaryColoursDye,importedSecondaryColours,importedSecondaryColoursDye,importedTertiaryColours,importedTertiaryColoursDye);
      this.itemTags=defaultItemTags;
      finalSetUp();
    }
 catch (    Exception ex) {
      System.err.println("String_Node_Str");
    }
  }
}