Package hudson.remoting
Interface DelegatingCallable<V,T extends Throwable>
- All Superinterfaces:
Callable<V,,T> RoleSensitive,Serializable
Callable that nominates another classloader for serialization.
For various reasons, one Callable object (and all the objects reachable from it) is
serialized by one classloader.
By default, the classloader that loaded Callable object itself is used,
but when Callable object refers to other objects that are loaded by other classloaders,
this will fail to deserialize on the remote end.
In such a case, implement this interface, instead of plain Callable and
return a classloader that can see all the classes.
In case of Jenkins, PluginManager.uberClassLoader is a good candidate.
- Author:
- Kohsuke Kawaguchi
-
Method Summary
Modifier and TypeMethodDescriptionReturns the class loader to be used for the callable.Methods inherited from interface hudson.remoting.Callable
call, getChannelOrFail, getOpenChannelOrFailMethods inherited from interface org.jenkinsci.remoting.RoleSensitive
checkRoles
-
Method Details
-
getClassLoader
Returns the class loader to be used for the callable.- Returns:
ClassLoaderto be used. The value may benullif the classloader is not being propagated to the remote side. If all classes in the call are primitives orVoid, the value may be alsonull. In such cased the handling code should try other possible classloaders.
-