title: How to fix java.io.NotSerializable exception when pushing each stage data from jenkins pipeline to influx db?
body: <p>I’m trying to push stage data from Jenkins pipeline to influx db and I get issue as below</p>
  
  <p>Issue: In jenkin builds console output, after each stage, I see : java.io.NotSerializableException: sun.net.www.protocol.http.HttpURLConnection</p>
  
  <p>Jenkins pipeline 2.150.2
  InfluxDB 1.6.2</p>
  
  <p>Any suggestions would be helpful. I'm new to this topic. </p>
  
  <p>Note: I have commented @NonCPS annotation. If I uncomment then it sends only first stage data and exits and fails to iterate for loop which has 20 stages data.</p>
  
  <pre><code>//Maps for Field type columns
  myDataField1 = [:]
  myDataField2 = [:]
  myDataField3 = [:]
  
  //Maps for Custom Field measurements
  myCustomDataFields1 = [:]
  myCustomDataFields2 = [:]
  myCustomDataFields3 = [:]
  
  //Maps for Tag type columns
   myDataTag1 = [:]
   myDataTag2 = [:]
   myDataTag3 = [:]
  
  //Maps for Custom Tag measurements
  myCustomDataTags1 = [:]
  myCustomDataTags2 = [:]
  myCustomDataTags3 = [:]
  
  //@NonCPS
  def pushStageData() {
  
  def url_string = "${JENKINS_URL}job/ENO_ENG_TP/job/R421/13/wfapi/describe"
  def get = new URL(url_string).openConnection();
  
  get.addRequestProperty ("User-Agent","Mozilla/4.0");
  get.addRequestProperty("Authorization", "Basic dZXZvceDIwMTk=");
  
  //fetching the contents of the endpoint URL
  def jsonText = get.getInputStream().getText();
  //converting the text into JSON object using 
  JsonSlurperClassic 
  def jsonObject = new JsonSlurperClassic().parseText(jsonText)
  
  // Extracting the details of all the stages present in that particular build number
  for (int i=0; i&lt;jsonObject.stages.size()-1; i++){ //size-1 to ignore the post stage
  //populating the field type columns of InfluxDB measurements and pushing them to the map called myDataField1
  def size = jsonObject.stages.size()-1
  myDataField1['result'] = jsonObject.stages[i].status
  myDataField1['duration'] = 
  jsonObject.stages[i].durationMillis
  myDataField1['stage_name'] = jsonObject.stages[i].name
  
  //populating the tag type columns of InfluxDB 
  measurements and pushing them to the map called 
  myDataTag1
  myDataTag1['result_tag'] = jsonObject.stages[i].status
  myDataTag1['stage_name_tag'] = jsonObject.stages[i].name
  
  //assigning field type columns to the measurement called CustomData
  myCustomDataFields1['CustomData'] = myDataField1
  //assigning tag type columns to the measurement called CustomData
  myCustomDataTags1['CustomData'] = myDataTag1
  
  //Push the data into influx instance
  try
  { step([$class: 'InfluxDbPublisher', target: 'jenkins_data', customPrefix: null, customDataMapTags: myCustomDataTags1]) }
  
  catch (err)
  { println ("pushStagData exception: " + err) }
  }
  }
  </code></pre>
  
  <p>Expected: I want to push each stages of jenkins pipeline data to influx db.</p>