Program: 126544
Project: 126544
Buggy source:
private void init(){
  if (hiveObject == null) {
    ClassLoader currCL=Thread.currentThread().getContextClassLoader();
    Thread.currentThread().setContextClassLoader(classLoader);
    try {
      Class calss=Class.forName("String_Node_Str",true,classLoader);
      Method closeCurrentMethod=calss.getDeclaredMethod("String_Node_Str");
      closeCurrentMethod.invoke(null);
      Method hiveGetMethod=calss.getDeclaredMethod("String_Node_Str");
      hiveObject=hiveGetMethod.invoke(null);
      boolean useKerberos=Boolean.valueOf((String)metadataConn.getParameter(ConnParameterKeys.CONN_PARA_KEY_USE_KRB));
      boolean useKeytab=Boolean.valueOf((String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_USEKEYTAB));
      if (useKerberos) {
        Object conf=Class.forName("String_Node_Str",true,classLoader).newInstance();
        ReflectionUtils.invokeMethod(conf,"String_Node_Str",new Object[]{"String_Node_Str","String_Node_Str"});
        ReflectionUtils.invokeStaticMethod("String_Node_Str",classLoader,"String_Node_Str",new Object[]{conf});
        if (useKeytab) {
          String principal=(String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_PRINCIPLA);
          String keytabPath=(String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_KEYTAB);
          ReflectionUtils.invokeStaticMethod("String_Node_Str",classLoader,"String_Node_Str",new String[]{principal,keytabPath});
        }
      }
    }
 catch (    Exception e) {
      ExceptionHandler.process(e);
    }
 finally {
      Thread.currentThread().setContextClassLoader(currCL);
    }
  }
}

Fixed version (ground truth):
private void init(){
  if (hiveObject == null) {
    ClassLoader currCL=Thread.currentThread().getContextClassLoader();
    Thread.currentThread().setContextClassLoader(classLoader);
    try {
      Class calss=Class.forName("String_Node_Str",true,classLoader);
      Method closeCurrentMethod=calss.getDeclaredMethod("String_Node_Str");
      closeCurrentMethod.invoke(null);
      Method hiveGetMethod=calss.getDeclaredMethod("String_Node_Str");
      hiveObject=hiveGetMethod.invoke(null);
      boolean useKerberos=Boolean.valueOf((String)metadataConn.getParameter(ConnParameterKeys.CONN_PARA_KEY_USE_KRB));
      boolean useKeytab=Boolean.valueOf((String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_USEKEYTAB));
      if (useKerberos) {
        Object conf=Class.forName("String_Node_Str",true,classLoader).newInstance();
        ReflectionUtils.invokeMethod(conf,"String_Node_Str",new Object[]{"String_Node_Str","String_Node_Str"});
        ReflectionUtils.invokeStaticMethod("String_Node_Str",classLoader,"String_Node_Str",new Object[]{conf});
        if (useKeytab) {
          String principal=(String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_PRINCIPLA);
          String keytabPath=(String)metadataConn.getParameter(ConnParameterKeys.HIVE_AUTHENTICATION_KEYTAB);
          ReflectionUtils.invokeStaticMethod("String_Node_Str",classLoader,"String_Node_Str",new String[]{principal,keytabPath});
        }
      }
    }
 catch (    UnsupportedClassVersionError e) {
      isSupportJRE=false;
    }
catch (    Exception e) {
      ExceptionHandler.process(e);
    }
 finally {
      Thread.currentThread().setContextClassLoader(currCL);
    }
  }
}