Program: 3200
Project: 3200
Buggy source:
public <T>void objectToNode(T object,javax.jcr.Node node) throws RepositoryException {
  Class<?> nodeType=object.getClass();
  OCMMapping mapping=ocmExtension.getOCMMappingStore().findMapping(nodeType);
  Set<String> jcrProperties=mapping.getPropertiesToFields().keySet();
  for (  String jcrProperty : jcrProperties) {
    Field field=mapping.getPropertiesToFields().get(jcrProperty);
    String getterMethodName="String_Node_Str" + field.getName().substring(0,1).toUpperCase() + field.getName().substring(1);
    Method method=Reflections.findDeclaredMethod(nodeType,getterMethodName);
    Object value=Reflections.invokeMethod(method,object);
    if (field != null && jcrProperty.equalsIgnoreCase("String_Node_Str")) {
    }
 else {
      if (field != null) {
        Class<?> fieldType=field.getType();
        if (fieldType.equals(java.util.Calendar.class)) {
          node.setProperty(jcrProperty,(Calendar)value);
        }
 else         if (fieldType.equals(boolean.class) || fieldType.equals(Boolean.class)) {
          node.setProperty(jcrProperty,(Boolean)value);
        }
 else         if (fieldType.equals(double.class) || fieldType.equals(Double.class)) {
          node.setProperty(jcrProperty,(Double)value);
        }
 else         if (fieldType.equals(BigDecimal.class)) {
          node.setProperty(jcrProperty,(BigDecimal)value);
        }
 else         if (fieldType.equals(Long.class) || fieldType.equals(long.class)) {
          node.setProperty(jcrProperty,(Long)value);
        }
 else         if (fieldType.equals(String.class)) {
          node.setProperty(jcrProperty,value.toString());
        }
 else {
          logger.warnf("String_Node_Str",field);
        }
      }
    }
  }
}

Fixed version (ground truth):
public <T>void objectToNode(T object,javax.jcr.Node node) throws RepositoryException {
  Class<?> nodeType=object.getClass();
  OCMMapping mapping=ocmExtension.getOCMMappingStore().findMapping(nodeType);
  Set<String> jcrProperties=mapping.getPropertiesToFields().keySet();
  logger.debug("String_Node_Str" + jcrProperties);
  for (  String jcrProperty : jcrProperties) {
    Field field=mapping.getPropertiesToFields().get(jcrProperty);
    logger.debugf("String_Node_Str",jcrProperty,field);
    String getterMethodName="String_Node_Str" + field.getName().substring(0,1).toUpperCase() + field.getName().substring(1);
    Method method=Reflections.findDeclaredMethod(nodeType,getterMethodName);
    logger.debug("String_Node_Str" + method);
    Object value=Reflections.invokeMethod(method,object);
    if (field != null && jcrProperty.equalsIgnoreCase("String_Node_Str")) {
    }
 else {
      if (field != null) {
        Class<?> fieldType=field.getType();
        if (fieldType.equals(java.util.Calendar.class)) {
          node.setProperty(jcrProperty,(Calendar)value);
        }
 else         if (fieldType.equals(boolean.class) || fieldType.equals(Boolean.class)) {
          node.setProperty(jcrProperty,(Boolean)value);
        }
 else         if (fieldType.equals(double.class) || fieldType.equals(Double.class)) {
          node.setProperty(jcrProperty,(Double)value);
        }
 else         if (fieldType.equals(BigDecimal.class)) {
          node.setProperty(jcrProperty,(BigDecimal)value);
        }
 else         if (fieldType.equals(Long.class) || fieldType.equals(long.class)) {
          node.setProperty(jcrProperty,(Long)value);
        }
 else         if (fieldType.equals(String.class)) {
          node.setProperty(jcrProperty,(String)value);
        }
 else {
          logger.warnf("String_Node_Str",field);
        }
      }
    }
  }
}