-
Bug
-
Resolution: Cannot Reproduce
-
Minor
-
None
I get java.io.NotSerializableException: java.util.regex.Matcher on:
@NonCPS def extractLatency(linesArr) { latency = [:] println "extractLatency" for (int j = 0; j < linesArr.size(); j++) { line = linesArr[j] println("looping over line: $line") // Matches lines like: Connect: 0 1 0.1 1 1 abPattern = /(\w+)\:\s+(\d+\.?\d*)\s+(\d+\.?\d*)\s+(\d+\.?\d*)\s+(\d+\.?\d*)\s+(\d+\.?\d*)/ def matcher = { (line =~ abPattern) } if (matcher().size > 1) { println("matched") } matcher = null abPattern = null } return latency }
If I throw a @NonCPS on the inner def matcher it fixes it.
- is related to
-
JENKINS-38199 Allow native as an alias for @NonCPS
-
- Open
-
I assume this was a prototype on the way to a working function, since latency seems to be left empty, and matcher could simply be inlined.
Probably the issue is just that @NonCPS is not inherited lexically.