Program: 131892
Project: 131892
Buggy source:
@Override public Object executeTransform(final Object input){
  if (graph == null)   throw new OETLProcessHaltedException("String_Node_Str");
  final OrientVertex vertex;
  if (input instanceof OIdentifiable)   vertex=graph.getVertex(input);
 else   if (input instanceof OrientVertex)   vertex=(OrientVertex)input;
 else   throw new OTransformException(getName() + "String_Node_Str" + input+ "String_Node_Str");
  Object joinValue=vertex.getProperty(joinFieldName);
  Object result=lookup(joinValue,false);
  log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",joinValue,result);
  if (result == null) {
switch (unresolvedLinkAction) {
case CREATE:
      if (lookup != null) {
        final String[] lookupParts=lookup.split("String_Node_Str");
        final OrientVertex linkedV=graph.addTemporaryVertex(lookupParts[0]);
        linkedV.setProperty(lookupParts[1],joinValue);
        linkedV.save();
        log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",linkedV.getRecord());
        result=linkedV;
      }
 else       throw new OConfigurationException("String_Node_Str");
    break;
case ERROR:
  processor.getStats().incrementErrors();
log(OETLProcessor.LOG_LEVELS.ERROR,"String_Node_Str",getName(),joinValue);
break;
case WARNING:
processor.getStats().incrementWarnings();
log(OETLProcessor.LOG_LEVELS.INFO,"String_Node_Str",getName(),joinValue);
break;
case SKIP:
return null;
case HALT:
throw new OETLProcessHaltedException("String_Node_Str" + joinValue + "String_Node_Str");
}
}
if (result != null) {
final OrientVertex targetVertex=graph.getVertex(result);
final OrientEdge edge;
if (directionOut) edge=(OrientEdge)vertex.addEdge(edgeClass,targetVertex);
 else edge=(OrientEdge)targetVertex.addEdge(edgeClass,vertex);
log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",edge);
}
return input;
}

Fixed version (ground truth):
@Override public Object executeTransform(final Object input){
  if (graph == null)   throw new OETLProcessHaltedException("String_Node_Str");
  final OrientVertex vertex;
  if (input instanceof OIdentifiable)   vertex=graph.getVertex(input);
 else   if (input instanceof OrientVertex)   vertex=(OrientVertex)input;
 else   throw new OTransformException(getName() + "String_Node_Str" + input+ "String_Node_Str");
  final Object joinCurrentValue=joinValue != null ? joinValue : vertex.getProperty(joinFieldName);
  Object result=lookup(joinCurrentValue,false);
  log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",joinCurrentValue,result);
  if (result == null) {
switch (unresolvedLinkAction) {
case CREATE:
      if (lookup != null) {
        final String[] lookupParts=lookup.split("String_Node_Str");
        final OrientVertex linkedV=graph.addTemporaryVertex(lookupParts[0]);
        linkedV.setProperty(lookupParts[1],joinCurrentValue);
        linkedV.save();
        log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",linkedV.getRecord());
        result=linkedV;
      }
 else       throw new OConfigurationException("String_Node_Str");
    break;
case ERROR:
  processor.getStats().incrementErrors();
log(OETLProcessor.LOG_LEVELS.ERROR,"String_Node_Str",getName(),joinCurrentValue);
break;
case WARNING:
processor.getStats().incrementWarnings();
log(OETLProcessor.LOG_LEVELS.INFO,"String_Node_Str",getName(),joinCurrentValue);
break;
case SKIP:
return null;
case HALT:
throw new OETLProcessHaltedException("String_Node_Str" + joinCurrentValue + "String_Node_Str");
}
}
if (result != null) {
final OrientVertex targetVertex=graph.getVertex(result);
final OrientEdge edge;
if (directionOut) edge=(OrientEdge)vertex.addEdge(edgeClass,targetVertex);
 else edge=(OrientEdge)targetVertex.addEdge(edgeClass,vertex);
log(OETLProcessor.LOG_LEVELS.DEBUG,"String_Node_Str",edge);
}
return input;
}