I am writing an jenkins SCM plugin and using a 3rd party Com4j.jar. While calling the workspace.act(new CheckoutTask()) I am getting Serialization exception on Com4j.Wrapper class. How can I fix this?
My code:
public class TestWorkspaceCheckout extends SCM implements Serializable{
@Override
public boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile)
throws IOException, InterruptedException
{
String status = workspace.act(new CheckoutTask(con,version,checkoutConfiguration,listener));
}
private static class CheckoutTask implements FileCallable<String> {
private static final long serialVersionUID = 1L;
private final EASEECom4jConnector con;
private final IEASEEVersion version;
private final IEASEECheckoutConfiguration checkoutConfiguration;
private final BuildListener listener;
public CheckoutTask(EASEECom4jConnector con,IEASEEVersion version,IEASEECheckoutConfiguration checkoutConfiguration,BuildListener listener) {
this.con=con;
this.version=version;
this.checkoutConfiguration=checkoutConfiguration;
this.listener=listener;
}
public void checkRoles(RoleChecker arg0) throws SecurityException {
}
public String invoke(File arg0, VirtualChannel arg1) throws IOException, InterruptedException {
// TODO Auto-generated method stub
try {
con.checkout(version, checkoutConfiguration);
} catch (EASEEException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "Checkout Failed";
}
return "Checkout Completed";
}
}
}
Error Log:
ileCallableWrapper@8394ff
at hudson.FilePath.act(FilePath.java:987)
at hudson.FilePath.act(FilePath.java:969)
at com.bosch.ci.eASEE.TestWorkspaceCheckout.checkout(TestWorkspaceCheckout.java:157)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1276)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
at hudson.model.Run.execute(Run.java:1744)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@8394ff
at hudson.remoting.UserRequest.serialize(UserRequest.java:169)
at hudson.remoting.UserRequest.<init>(UserRequest.java:63)
at hudson.remoting.Channel.call(Channel.java:751)
at hudson.FilePath.act(FilePath.java:980)
... 10 more
Caused by: java.io.NotSerializableException: com4j.Wrapper
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at hudson.remoting.UserRequest._serialize(UserRequest.java:158)
at hudson.remoting.UserRequest.serialize(UserRequest.java:167)
... 13 more