When a Runnable is submitted via JPPFExecutorService.submit(Runnable), it is not possible to get the corresponding class loader on the node side using a public API. For instance, this happens from a NodeLifeCycleListener implementation.

When the Runnable is submmitted, it is wrapped into a RunnableWrapper. When the NodeListener attempts to print JPPFTask.getObject(), this will show the RunnableWrapper<T> instance. The problem is that RunnableWrapper doesn't have a public method to get the underlying Runnable, which is the real task submitted by the user.