Program: 60777
Project: 60777
Buggy source:
/** 
 * Get remote object used by the propagation manager in order to choose for a create (object doesn't exist) or an update (object exists).
 * @param propagationMode propagation mode (SYNC / ASYNC)
 * @param operationType resource operation type
 * @param objectClass ConnId's object class
 * @param uid ConnId's Uid
 * @param options ConnId's OperationOptions
 * @return ConnId's connector object for given uid
 */
public ConnectorObject getObject(final PropagationMode propagationMode,final PropagationOperation operationType,final ObjectClass objectClass,final Uid uid,final OperationOptions options){
  ConnectorObject result=null;
  if (capabitilies.contains(ConnectorCapability.SEARCH)) {
    if (operationType == null) {
      result=connector.getObject(objectClass,uid,options);
    }
 else {
switch (operationType) {
case CREATE:
        if (propagationMode == null || (propagationMode == PropagationMode.SYNC ? capabitilies.contains(ConnectorCapability.SYNC_CREATE) : capabitilies.contains(ConnectorCapability.ASYNC_CREATE))) {
          result=connector.getObject(objectClass,uid,options);
        }
      break;
case UPDATE:
    if (propagationMode == null || (propagationMode == PropagationMode.SYNC ? capabitilies.contains(ConnectorCapability.SYNC_UPDATE) : capabitilies.contains(ConnectorCapability.ASYNC_UPDATE))) {
      result=connector.getObject(objectClass,uid,options);
    }
  break;
default :
result=connector.getObject(objectClass,uid,options);
}
}
}
 else {
LOG.info("String_Node_Str" + "String_Node_Str",capabitilies);
}
return result;
}

Fixed version (ground truth):
/** 
 * Get remote object used by the propagation manager in order to choose for a create (object doesn't exist) or an update (object exists).
 * @param propagationMode propagation mode
 * @param operationType resource operation type
 * @param objectClass ConnId's object class
 * @param uid ConnId's Uid
 * @param options ConnId's OperationOptions
 * @return ConnId's connector object for given uid
 */
public ConnectorObject getObject(final PropagationMode propagationMode,final PropagationOperation operationType,final ObjectClass objectClass,final Uid uid,final OperationOptions options){
  ConnectorObject result=null;
  if (capabitilies.contains(ConnectorCapability.SEARCH)) {
    if (operationType == null) {
      result=connector.getObject(objectClass,uid,options);
    }
 else {
switch (operationType) {
case CREATE:
        if (propagationMode == null || (propagationMode == PropagationMode.ONE_PHASE ? capabitilies.contains(ConnectorCapability.ONE_PHASE_CREATE) : capabitilies.contains(ConnectorCapability.TWO_PHASES_CREATE))) {
          result=connector.getObject(objectClass,uid,options);
        }
      break;
case UPDATE:
    if (propagationMode == null || (propagationMode == PropagationMode.ONE_PHASE ? capabitilies.contains(ConnectorCapability.ONE_PHASE_UPDATE) : capabitilies.contains(ConnectorCapability.TWO_PHASES_UPDATE))) {
      result=connector.getObject(objectClass,uid,options);
    }
  break;
default :
result=connector.getObject(objectClass,uid,options);
}
}
}
 else {
LOG.info("String_Node_Str" + "String_Node_Str",capabitilies);
}
return result;
}