private Object createUsingReflection(Class<?> type) {
    setThreadCallbacks(type, callbacks);
    try{

      if (argumentTypes != null) {

        return ReflectUtils.newInstance(type, argumentTypes, arguments);

      } else {

        return ReflectUtils.newInstance(type);

      }
    }finally{
      // clear thread callbacks to allow them to be gc'd
      setThreadCallbacks(type, null);
    }
  }
private Object createUsingReflection(Class<?> type)