cglib/src/main/java/net/sf/cglib/proxy/Enhancer.java
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) {
        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 ) { 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 ) ; } }
Instantiates a proxy instance and assigns callback values.
Implementation detail: java.lang.reflect instances are not cached, so this method should not
be used on a hot path.
This method is used when {@link #setUseCache(boolean)} is set to {@code false}.

@param type class to instantiate
@return newly created instance
Instantiates a proxy instance and assigns callback values . Implementation detail : java . lang . reflect instances are not cached so this method should not be used on a hot path . This method is used when { @link #setUseCache ( boolean ) } is set to { @code false } .