Program: 125988
Project: 125988
Buggy source:
public static ERepositoryObjectType getItemType(Item item){
  ERepositoryObjectType repObjType=getTDQRepObjType(item);
  if (repObjType != null) {
    return repObjType;
  }
  repObjType=getRepositoryObjectType(item);
  if (repObjType != null) {
    return repObjType;
  }
  return (ERepositoryObjectType)new PropertiesSwitch(){
    @Override public Object caseFolderItem(    FolderItem object){
      return FOLDER;
    }
    @Override public Object caseDocumentationItem(    DocumentationItem object){
      return DOCUMENTATION;
    }
    @Override public Object caseLinkDocumentationItem(    LinkDocumentationItem object){
      return DOCUMENTATION;
    }
    @Override public Object caseRulesItem(    RulesItem object){
      return METADATA_FILE_RULES;
    }
    @Override public Object caseLinkRulesItem(    LinkRulesItem object){
      return METADATA_FILE_LINKRULES;
    }
    @Override public Object caseJobDocumentationItem(    JobDocumentationItem object){
      return JOB_DOC;
    }
    @Override public Object caseJobletDocumentationItem(    JobletDocumentationItem object){
      return JOBLET_DOC;
    }
    @Override public Object casePigudfItem(    PigudfItem object){
      return PIG_UDF;
    }
    @Override public Object caseRoutineItem(    RoutineItem object){
      return ROUTINES;
    }
    @Override public Object caseJobScriptItem(    JobScriptItem object){
      return JOB_SCRIPT;
    }
    @Override public Object caseSQLPatternItem(    SQLPatternItem object){
      return SQLPATTERNS;
    }
    @Override public Object caseProcessItem(    ProcessItem object){
      return PROCESS;
    }
    @Override public Object caseJobletProcessItem(    JobletProcessItem object){
      return JOBLET;
    }
    @Override public Object caseContextItem(    ContextItem object){
      return CONTEXT;
    }
    @Override public Object caseSnippetItem(    SnippetItem object){
      return SNIPPETS;
    }
    @Override public Object caseSnippetVariable(    SnippetVariable object){
      return SNIPPETS;
    }
    @Override public Object caseBusinessProcessItem(    BusinessProcessItem object){
      return BUSINESS_PROCESS;
    }
    @Override public Object caseCSVFileConnectionItem(    CSVFileConnectionItem object){
      throw new IllegalStateException(Messages.getString("String_Node_Str"));
    }
    @Override public Object caseDatabaseConnectionItem(    DatabaseConnectionItem object){
      return METADATA_CONNECTIONS;
    }
    @Override public Object caseSAPConnectionItem(    SAPConnectionItem object){
      return METADATA_SAPCONNECTIONS;
    }
    @Override public Object caseDelimitedFileConnectionItem(    DelimitedFileConnectionItem object){
      return METADATA_FILE_DELIMITED;
    }
    @Override public Object casePositionalFileConnectionItem(    PositionalFileConnectionItem object){
      return METADATA_FILE_POSITIONAL;
    }
    @Override public Object caseRegExFileConnectionItem(    RegExFileConnectionItem object){
      return METADATA_FILE_REGEXP;
    }
    @Override public Object caseXmlFileConnectionItem(    XmlFileConnectionItem object){
      return METADATA_FILE_XML;
    }
    @Override public Object caseExcelFileConnectionItem(    ExcelFileConnectionItem object){
      return METADATA_FILE_EXCEL;
    }
    @Override public Object caseLdifFileConnectionItem(    LdifFileConnectionItem object){
      return METADATA_FILE_LDIF;
    }
    @Override public Object caseLDAPSchemaConnectionItem(    LDAPSchemaConnectionItem object){
      return METADATA_LDAP_SCHEMA;
    }
    @Override public Object caseGenericSchemaConnectionItem(    GenericSchemaConnectionItem object){
      return METADATA_GENERIC_SCHEMA;
    }
    @Override public Object caseSalesforceSchemaConnectionItem(    SalesforceSchemaConnectionItem object){
      return METADATA_SALESFORCE_SCHEMA;
    }
    @Override public Object caseWSDLSchemaConnectionItem(    WSDLSchemaConnectionItem object){
      return METADATA_WSDL_SCHEMA;
    }
    @Override public Object caseEDIFACTConnectionItem(    EDIFACTConnectionItem object){
      return METADATA_EDIFACT;
    }
    @Override public Object caseEbcdicConnectionItem(    EbcdicConnectionItem object){
      return METADATA_FILE_EBCDIC;
    }
    @Override public Object caseHL7ConnectionItem(    HL7ConnectionItem object){
      return METADATA_FILE_HL7;
    }
    @Override public Object caseFTPConnectionItem(    FTPConnectionItem object){
      return METADATA_FILE_FTP;
    }
    @Override public Object caseBRMSConnectionItem(    BRMSConnectionItem object){
      return METADATA_FILE_BRMS;
    }
    @Override public Object caseMDMConnectionItem(    MDMConnectionItem object){
      return METADATA_MDMCONNECTION;
    }
    @Override public Object caseSVGBusinessProcessItem(    SVGBusinessProcessItem object){
      return SVG_BUSINESS_PROCESS;
    }
    @Override public Object caseHeaderFooterConnectionItem(    HeaderFooterConnectionItem object){
      return METADATA_HEADER_FOOTER;
    }
    @Override public Object caseTDQItem(    TDQItem object){
      return TDQ_ELEMENT;
    }
    @Override public Object caseValidationRulesConnectionItem(    ValidationRulesConnectionItem object){
      return METADATA_VALIDATION_RULES;
    }
    @Override public Object defaultCase(    EObject object){
      return null;
    }
  }
.doSwitch(item);
}

Fixed version (ground truth):
/** 
 * Please use instead the method : public static ERepositoryObjectType getType(Property property)<br> This method might change to private in the future, since many calls will have low performance.
 * @param item
 * @return
 */
public static ERepositoryObjectType getItemType(Item item){
  ERepositoryObjectType repObjType=getTDQRepObjType(item);
  if (repObjType != null) {
    return repObjType;
  }
  repObjType=getRepositoryObjectType(item);
  if (repObjType != null) {
    return repObjType;
  }
  return (ERepositoryObjectType)new PropertiesSwitch(){
    @Override public Object caseFolderItem(    FolderItem object){
      return FOLDER;
    }
    @Override public Object caseDocumentationItem(    DocumentationItem object){
      return DOCUMENTATION;
    }
    @Override public Object caseLinkDocumentationItem(    LinkDocumentationItem object){
      return DOCUMENTATION;
    }
    @Override public Object caseRulesItem(    RulesItem object){
      return METADATA_FILE_RULES;
    }
    @Override public Object caseLinkRulesItem(    LinkRulesItem object){
      return METADATA_FILE_LINKRULES;
    }
    @Override public Object caseJobDocumentationItem(    JobDocumentationItem object){
      return JOB_DOC;
    }
    @Override public Object caseJobletDocumentationItem(    JobletDocumentationItem object){
      return JOBLET_DOC;
    }
    @Override public Object casePigudfItem(    PigudfItem object){
      return PIG_UDF;
    }
    @Override public Object caseRoutineItem(    RoutineItem object){
      return ROUTINES;
    }
    @Override public Object caseJobScriptItem(    JobScriptItem object){
      return JOB_SCRIPT;
    }
    @Override public Object caseSQLPatternItem(    SQLPatternItem object){
      return SQLPATTERNS;
    }
    @Override public Object caseProcessItem(    ProcessItem object){
      return PROCESS;
    }
    @Override public Object caseJobletProcessItem(    JobletProcessItem object){
      return JOBLET;
    }
    @Override public Object caseContextItem(    ContextItem object){
      return CONTEXT;
    }
    @Override public Object caseSnippetItem(    SnippetItem object){
      return SNIPPETS;
    }
    @Override public Object caseSnippetVariable(    SnippetVariable object){
      return SNIPPETS;
    }
    @Override public Object caseBusinessProcessItem(    BusinessProcessItem object){
      return BUSINESS_PROCESS;
    }
    @Override public Object caseCSVFileConnectionItem(    CSVFileConnectionItem object){
      throw new IllegalStateException(Messages.getString("String_Node_Str"));
    }
    @Override public Object caseDatabaseConnectionItem(    DatabaseConnectionItem object){
      return METADATA_CONNECTIONS;
    }
    @Override public Object caseSAPConnectionItem(    SAPConnectionItem object){
      return METADATA_SAPCONNECTIONS;
    }
    @Override public Object caseDelimitedFileConnectionItem(    DelimitedFileConnectionItem object){
      return METADATA_FILE_DELIMITED;
    }
    @Override public Object casePositionalFileConnectionItem(    PositionalFileConnectionItem object){
      return METADATA_FILE_POSITIONAL;
    }
    @Override public Object caseRegExFileConnectionItem(    RegExFileConnectionItem object){
      return METADATA_FILE_REGEXP;
    }
    @Override public Object caseXmlFileConnectionItem(    XmlFileConnectionItem object){
      return METADATA_FILE_XML;
    }
    @Override public Object caseExcelFileConnectionItem(    ExcelFileConnectionItem object){
      return METADATA_FILE_EXCEL;
    }
    @Override public Object caseLdifFileConnectionItem(    LdifFileConnectionItem object){
      return METADATA_FILE_LDIF;
    }
    @Override public Object caseLDAPSchemaConnectionItem(    LDAPSchemaConnectionItem object){
      return METADATA_LDAP_SCHEMA;
    }
    @Override public Object caseGenericSchemaConnectionItem(    GenericSchemaConnectionItem object){
      return METADATA_GENERIC_SCHEMA;
    }
    @Override public Object caseSalesforceSchemaConnectionItem(    SalesforceSchemaConnectionItem object){
      return METADATA_SALESFORCE_SCHEMA;
    }
    @Override public Object caseWSDLSchemaConnectionItem(    WSDLSchemaConnectionItem object){
      return METADATA_WSDL_SCHEMA;
    }
    @Override public Object caseEDIFACTConnectionItem(    EDIFACTConnectionItem object){
      return METADATA_EDIFACT;
    }
    @Override public Object caseEbcdicConnectionItem(    EbcdicConnectionItem object){
      return METADATA_FILE_EBCDIC;
    }
    @Override public Object caseHL7ConnectionItem(    HL7ConnectionItem object){
      return METADATA_FILE_HL7;
    }
    @Override public Object caseFTPConnectionItem(    FTPConnectionItem object){
      return METADATA_FILE_FTP;
    }
    @Override public Object caseBRMSConnectionItem(    BRMSConnectionItem object){
      return METADATA_FILE_BRMS;
    }
    @Override public Object caseMDMConnectionItem(    MDMConnectionItem object){
      return METADATA_MDMCONNECTION;
    }
    @Override public Object caseSVGBusinessProcessItem(    SVGBusinessProcessItem object){
      return SVG_BUSINESS_PROCESS;
    }
    @Override public Object caseHeaderFooterConnectionItem(    HeaderFooterConnectionItem object){
      return METADATA_HEADER_FOOTER;
    }
    @Override public Object caseTDQItem(    TDQItem object){
      return TDQ_ELEMENT;
    }
    @Override public Object caseValidationRulesConnectionItem(    ValidationRulesConnectionItem object){
      return METADATA_VALIDATION_RULES;
    }
    @Override public Object defaultCase(    EObject object){
      return null;
    }
  }
.doSwitch(item);
}