code: protected Object getNIOInstance(Constructor<?> constructor, Object... args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
  		final String method = "getInstance"; //$NON-NLS-1$
  
  		Object ret = null;
  		if (tryNIO) {
  			if (constructor != null) {
  				try {
  					ret = (IResource)constructor.newInstance(args);
  				} catch (NoClassDefFoundError e) {
  					if (log.isLoggable(Level.WARNING)) {
  						log.logp(Level.WARNING, CLAZZ, method, e.getMessage());
  						log.logp(Level.WARNING, CLAZZ, method, WARN_MESSAGE);
  					}
  					tryNIO = false;
  				} catch (UnsupportedClassVersionError e) {
  					if (log.isLoggable(Level.WARNING)) {
  						log.logp(Level.WARNING, CLAZZ, method, e.getMessage());
  						log.logp(Level.WARNING, CLAZZ, method, WARN_MESSAGE);
  					}
  					tryNIO = false;
  				}
  			}
  		}
  		return ret;
  	}
docs: Utility method to catch class loading issues and prevent repeated attempts to use reflection.
  
  @param constructor The constructor to invoke
  @param args The args to pass the constructor
  @return The instance.
  
  @throws InstantiationException
  @throws IllegalAccessException
  @throws IllegalArgumentException
  @throws InvocationTargetException