Program: 101993
Project: 101993
Buggy source:
@Override public String getSignature(Object eObject,int showMask){
  Column col=assertColumn(eObject);
  StringBuffer result=new StringBuffer();
  final String tmpName=col.getType() != null ? ModelerCore.getDatatypeManager(col,true).getName(col.getType()) : null;
  final String dtName=(tmpName == null ? CoreStringUtil.Constants.EMPTY_STRING : tmpName);
  final boolean isStringType=col.getType() != null ? ModelerCore.getDatatypeManager(col,true).isCharacter(col.getType()) : false;
switch (showMask) {
case 1:
case 17:
    result.append(col.getName());
  break;
case 2:
case 18:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
break;
case 3:
case 19:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
break;
case 4:
case 20:
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 5:
case 21:
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 6:
case 22:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 7:
case 23:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 8:
case 24:
result.append("String_Node_Str");
break;
case 9:
case 25:
result.append(col.getName());
break;
case 10:
case 26:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
break;
case 11:
case 27:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
break;
case 12:
case 28:
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 13:
case 29:
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 14:
case 30:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 15:
case 31:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && isStringType) {
result.append("String_Node_Str" + length + "String_Node_Str");
}
}
break;
case 16:
return ("String_Node_Str");
default :
throw new TeiidDesignerRuntimeException(RelationalPlugin.Util.getString("String_Node_Str",showMask));
}
return result.toString();
}

Fixed version (ground truth):
@Override public String getSignature(Object eObject,int showMask){
  Column col=assertColumn(eObject);
  StringBuffer result=new StringBuffer();
  final String tmpName=col.getType() != null ? ModelerCore.getDatatypeManager(col,true).getName(col.getType()) : null;
  final String dtName=(tmpName == null ? CoreStringUtil.Constants.EMPTY_STRING : tmpName);
  final boolean isLengthType=ModelerCore.getTeiidDataTypeManagerService().isLengthDataType(dtName);
  final boolean isStringType=col.getType() != null ? ModelerCore.getDatatypeManager(col,true).isCharacter(col.getType()) : false;
  final boolean addLength=isStringType || isLengthType;
switch (showMask) {
case 1:
case 17:
    result.append(col.getName());
  break;
case 2:
case 18:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
break;
case 3:
case 19:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
break;
case 4:
case 20:
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 5:
case 21:
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 6:
case 22:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 7:
case 23:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 8:
case 24:
result.append("String_Node_Str");
break;
case 9:
case 25:
result.append(col.getName());
break;
case 10:
case 26:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
break;
case 11:
case 27:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
break;
case 12:
case 28:
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 13:
case 29:
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 14:
case 30:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 15:
case 31:
result.append("String_Node_Str");
result.append(getStereotype(col));
result.append("String_Node_Str");
result.append(col.getName());
result.append("String_Node_Str");
if (col.getType() != null) {
result.append(dtName);
final int length=col.getLength();
if (length != 0 && addLength) {
result.append(OPEN_BRACKET + length + CLOSE_BRACKET);
}
}
break;
case 16:
return ("String_Node_Str");
default :
throw new TeiidDesignerRuntimeException(RelationalPlugin.Util.getString("String_Node_Str",showMask));
}
return result.toString();
}