It's all about the answers!

Ask a question

RTC : checkout failure: Unable to serialize com.ibm.team.build.internal.hjplugin.RTCLoadTask@2fc19f4a


Raj Kumar (11) | asked May 14, 2:42 a.m.

below code is failing with error :
RTC : checkout failure: Unable to serialize com.ibm.team.build.internal.hjplugin.RTCLoadTask@2fc19f4a
               java.io.IOException: Unable to serialize com.ibm.team.build.internal.hjplugin.RTCLoadTask@2fc19f4a
(check the joined file for the complete error)


@Extension
public class LRService extends RtcExtensionProvider{

 private Run<?, ?> currentBuild = null;

@Override
  public String getPathToLoadRuleFile(String workspaceUUID, String workspaceName, String buildResultUUID,
      Map<String, String> componentInfo, String repoURL, String userId, String password, PrintStream logger)
      throws IOException {

 Map<String, String> envVarsMap = currentBuild.getEnvVars();

String ServiceUrl = repoURL+........+getExcludeFilterValueFromCurrentBuiltObject; // get the string parameter value from Jenkins UI
}

@Override
  public boolean isApplicable(Run<?, ?> build) {
    this.currentBuild = build;
    return true;
  }
}

I got to know the above code is not thread safe.As for storing any instance variables,  only one extension object exists, multiple threads could end up overwriting the instance variable values.

But my Question is how to handle this with above code. I want t access build objects values inside getPathToLoadRuleFile{} extension method 

One answer



permanent link
Sridevi Sangaiah (59179) | answered May 31, 4:00 a.m.
JAZZ DEVELOPER

Like it is being discussed in

478059: RTC bug : Two separated Jenkins pipeline jobs use same directory to generate loadrule files., if your dynamic load rules implementation requires additional information, which can't be stored in a ThreadLocal variable, then it might have to be passed from the TeamConcert plugin. I am not sure if instances of Run can be passed as is from Master to Slave, though. Need to check if it implements java.io.Serializable.

Your answer


Register or to post your answer.