code: public Invocable invokeScript(ScriptWrapper script) throws ScriptException {
  		logger.debug("invokeScript " + script.getName());
  		preInvokeScript(script);
  
  		ClassLoader previousContextClassLoader = Thread.currentThread().getContextClassLoader();
  		Thread.currentThread().setContextClassLoader(ExtensionFactory.getAddOnLoader());
  		try {
  			return invokeScriptImpl(script);
  		} finally {
  			Thread.currentThread().setContextClassLoader(previousContextClassLoader);
  		}
  	}
docs: Invokes the given {@code script}, synchronously, handling any {@code Exception} thrown during the invocation.
  <p>
  The context class loader of caller thread is replaced with the class loader {@code AddOnLoader} to allow the script to
  access classes of add-ons. If this behaviour is not desired call the method {@code invokeScriptWithOutAddOnLoader}
  instead.
  
  @param script the script that will be invoked
  @return an {@code Invocable} for the {@code script}, or {@code null} if none.
  @throws ScriptException if the engine of the given {@code script} was not found.
  @see #invokeScriptWithOutAddOnLoader(ScriptWrapper)
  @see Invocable