Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View Warnings on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin generates the trend report for compiler warnings in the console log or in log files.

This plugin reached end-of-life. All functionality has been integrated into the Warnings Next Generation Plugin.


  1. Unknown User (fr4ncois)


    How could I use this plug-in with Matrix Jobs? Because when building a matrix job, builder output are not visible in the main log while the plug-in only parse this main log.


    1. Unknown User (drulli)

      This is not supported yet, see JENKINS-6772.

  2. Unknown User (mandeepr)

    Is it possible in the groovy script to reference build-specific or job-specific variables? I specifically would like to be able to have access to the workspace directory variable

  3. Unknown User (kmart216)

    Is there a way to disable certain types of warning parsers?  I'm working with a Java centric project but for some reason I get gcc4 warnings.  The gcc4 warnings that are reported are the same as the Java warnings but they have the string "[java] " pre-pended.

    1. Unknown User (drulli)

      You can select the parsers in the job configuration screen.

  4. Unknown User (stefanthurnherr)

    Hoi Ulli

    Latest ChangeLog entry is wrong - should read "Release 3.16", not "Release 4.15". You just have too many related jenkins plugins ;-)

    Gruäss - stefan.

    1. Unknown User (stefanthurnherr)

      Just discovered that I actually have edit rights on this page --> fixed.

      1. Unknown User (drulli)

        Servus Stefan(smile) Thanks for fixing...

  5. Unknown User (kakitiki)


    Is it possible to give one log build as reference build for warning ? In fact I dont want to refer only to the last build but for a given build done at given time.

    1. Unknown User (drulli)

      The reference build is computed automatically.

  6. Unknown User (vycon_99)

    Hi Ulli,

    Received following errors that broke the build:WARNINGS MSBuild : Found 1 warnings.
    ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception
    java.util.NoSuchElementException: No reference build found for MY_Earlysail_Webservice #8
    at hudson.plugins.analysis.core.BuildHistory.getReferenceBuild(BuildHistory.java:93)
    at hudson.plugins.analysis.core.BuildHistory.hasReferenceBuild(BuildHistory.java:105)
    at hudson.plugins.analysis.core.BuildResult.initialize(BuildResult.java:284)
    at hudson.plugins.analysis.core.BuildResult.<init>(BuildResult.java:218)
    at hudson.plugins.warnings.WarningsResult.<init>(WarningsResult.java:34)
    at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:264)
    at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:310)
    at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:662)
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:638)
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:616)
    at hudson.model.Build$RunnerImpl.post2(Build.java:161)
    at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:585)
    at hudson.model.Run.run(Run.java:1398)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)

    Is there any way to resolve this? Thanks

  7. Unknown User (kleeven_atlis)

    Hi Ulli,

    I've been using the plugin a couple of weeks now for our new ci setup for our C++ code. First let me say I'm really happy with your plugin. However since the last update of the plugin we're getting the following problems when the plugin finds warnings.

    [WARNINGS] Parsing warnings in console log with parsers [Doxygen, GNU compiler (gcc), GNU compiler 4 (gcc)]

    [WARNINGS] Doxygen : Found 12 warnings.

    [WARNINGS] GNU compiler (gcc) : Found 12 warnings.

    [WARNINGS] GNU compiler 4 (gcc) : Found 12 warnings.

    ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception

    hudson.util.IOException2: remote file operation failed: c:\jenkins_workspaces\workspace\SensCppXp32bitDebugBuild at hudson.remoting.Channel@1377d92:

    at hudson.FilePath.act(FilePath.java:754)

    at hudson.FilePath.act(FilePath.java:740)

    at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:235)

    at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:310)

    at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)

    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)

    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657)

    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:635)

    at hudson.model.Build$RunnerImpl.post2(Build.java:161)

    at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)

    at hudson.model.Run.run(Run.java:1400)

    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)

    at hudson.model.ResourceController.execute(ResourceController.java:88)

    at hudson.model.Executor.run(Executor.java:175)

    Caused by: java.io.IOException: Remote call on failed

    at hudson.remoting.Channel.call(Channel.java:672)

    at hudson.FilePath.act(FilePath.java:747)

    ... 13 more

    Caused by: java.lang.ClassNotFoundException: Failed to deserialize the Callable object. Perhaps you needed to implement DelegatingCallable?

    at hudson.remoting.UserRequest.perform(UserRequest.java:100)

    at hudson.remoting.UserRequest.perform(UserRequest.java:48)

    at hudson.remoting.Request$2.run(Request.java:270)

    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

    at java.util.concurrent.FutureTask.run(Unknown Source)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at hudson.remoting.Engine$1$1.run(Engine.java:60)

    at java.lang.Thread.run(Unknown Source)

    Caused by: java.lang.ClassNotFoundException: hudson.plugins.warnings.parser.Warning

    at java.net.URLClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at java.lang.Class.forName0(Native Method)

    at java.lang.Class.forName(Unknown Source)

    at java.io.ObjectInputStream.resolveClass(Unknown Source)

    at hudson.remoting.ObjectInputStreamEx.resolveClass(ObjectInputStreamEx.java:50)

    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

    at java.io.ObjectInputStream.readClassDesc(Unknown Source)

    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

    at java.io.ObjectInputStream.readObject0(Unknown Source)

    at java.io.ObjectInputStream.readObject(Unknown Source)

    at java.util.HashSet.readObject(Unknown Source)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)

    at java.io.ObjectInputStream.readSerialData(Unknown Source)

    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

    at java.io.ObjectInputStream.readObject0(Unknown Source)

    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)

    at java.io.ObjectInputStream.readSerialData(Unknown Source)

    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

    at java.io.ObjectInputStream.readObject0(Unknown Source)

    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)

    at java.io.ObjectInputStream.readSerialData(Unknown Source)

    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

    at java.io.ObjectInputStream.readObject0(Unknown Source)

    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)

    at java.io.ObjectInputStream.readSerialData(Unknown Source)

    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

    at java.io.ObjectInputStream.readObject0(Unknown Source)

    at java.io.ObjectInputStream.readObject(Unknown Source)

    at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)

    at hudson.remoting.UserRequest.perform(UserRequest.java:98)

    ... 9 more

    This happens when building on a slave node. We're using the latest version of jenkins 1.421, the latest warnings 3.19 and the latest static analysis utilities 1.24.

    Is there any way to resolve this?

    Thanks in advance for any help.

    1. Unknown User (drulli)

      This typically is a problem with an outdated version of your slave.jar file on your slave. Can you please upgrade to the latest Jenkins version for that file?

      1. Unknown User (kleeven_atlis)

        I updated the slave.jar and it works perfectly again. Thanks a lot for the help. Next time I'll check the slave.jar version first.

      2. Unknown User (cscribne)

        In Jenkins 1.423 using 3.20 of the Warnings plugin, we started getting a similar message.  We checked the slave.jar and found it was up to date.  After checking our project configuration, we found that we had not selected a parser.  In builds that used previous versions of the plugin, we received "[WARNINGS] Warning: List of parsers is empty. It is recommended to select at least one parser".  It looks like as of version 3.19, this check has been made more strict.  Selecting a parser fixed the error.

  8. Unknown User (norman)

    Very useful plugin. Thanks a lot.

    Unfortunatelly I found an issue which does not preview the code that produced the warning when clicking on the filename for a warning message. instead the following content appears:

    Content of file file.c

    01 Copying the source file '../../path/to/file.c' from the workspace to the build folder '######' on the Hudson master failed.
    02 Seems that the path is relative, however an absolute path is required when copying the sources.
    03 Is the file 'file.c' contained more than once in your workspace?
    04 Is the file '../../path/to/file.c' a valid filename?
    05 If you are building on a slave: please check if the file is accessible under '$HUDSON_HOME/job-name/../../path/to/file.c'
    06 If you are building on the master: please check if the file is accessible under '$HUDSON_HOME/job-name/workspace/../../path/to/file.c'
    07 hudson.util.IOException2: remote file operation failed:../../path/to/file.cat hudson.remoting.Channel@12f4538:######
    08   at hudson.FilePath.act(FilePath.java:754)
    09   at hudson.FilePath.act(FilePath.java:740)
    10   at hudson.FilePath.copyTo(FilePath.java:1410)
    11   at hudson.plugins.analysis.core.HealthAwarePublisher.copyFilesWithAnnotationsToBuildFolder(HealthAwarePublisher.java:362)
    12   at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:324)
    13   at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
    14   at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
    15   at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657)
    16   at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:635)
    17   at hudson.model.Build$RunnerImpl.post2(Build.java:162)
    18   at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)
    19   at hudson.model.Run.run(Run.java:1401)
    20   at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    21   at hudson.model.ResourceController.execute(ResourceController.java:88)
    22   at hudson.model.Executor.run(Executor.java:230)
    23 Caused by: java.io.FileNotFoundException:  ../../path/to/file.c(No such file or directory)
    24   at java.io.FileInputStream.open(Native Method)
    25   at java.io.FileInputStream.<init>(FileInputStream.java:120)
    26   at hudson.FilePath$30.invoke(FilePath.java:1414)
    27   at hudson.FilePath$30.invoke(FilePath.java:1410)
    28   at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1994)
    29   at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    30   at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    31   at hudson.remoting.Request$2.run(Request.java:287)
    32   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    33   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    34   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    35   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    36   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    37   at java.lang.Thread.run(Thread.java:662)

    Obviously, the plugin doesn't like relative path names. Do you have idea how this can be managed? It's not trivial because the compiler output depends on the used build system.

    I am also working on an extension to support the ARM compiler. Could this also be added once I completed it?

    Best regards,


    1. Unknown User (drulli)

      I think there is already an issue for this problem. I think the code to find duplicate files (based on relative names) needs to be smarter.

      New parsers are always welcome!

  9. Unknown User (davida2009)

    Hi, thanks for this plugin, it is very useful.

    There is something I do not understand.  My Jenkins job does incremental builds.  Therefore, if a few files are compiled and generate warnings the warnings trend goes non-zero, but if different files are compiled on the next run, and no new warnings are found, the warnings trend goes back to zero, even though the original warnings are not fixed. 

    i.e. warnings are not accumulated.

    Is there a way around this please?

    1. Unknown User (drulli)

      This in not possible at the moment. The plug-in delta computation requires a full build.

  10. Unknown User (davida2009)

    I am running Warnings plugin 3.21.  The console output of my job reports:

    [WARNINGS] Parsing warnings in console log with parsers [GNU compiler 4 (gcc), GNU compiler 4 (ld)]

    [WARNINGS] GNU compiler 4 (gcc) : Found 265 warnings.

    [WARNINGS] GNU compiler 4 (ld) : Found 0 warnings.

    But the 'Compiler warnings' screen for the job reports only 67 warnings.

    Why is there a difference?

    1. Unknown User (drulli)

      Duplicate warnings are suppressed in the UI and reports. Can you provide some examples in a Jira bug report?

  11. Unknown User (slide_o_mix)

    Several people have wondered about including information from the Warnings plugin into their emails. With email-ext this should be possible, but I can't seem to figure out how to get at the actual data for the warnings information that is so nicely displayed on the build page. Any tips?

    1. Unknown User (drulli)

      I haven't yet used the email ext plug-in. What is the starting point of such an expression? I don't find an example on the wiki page...

      Most of the information is already visible via the remote API: https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plug-ins#StaticCodeAnalysisPlug-ins-remoteapi

  12. Unknown User (kmart216)

    I've noticed with a newest version of the Warnings plugin (I probably skipped a few so can't say when it changed exactly) that it takes a really long time to do the console log parsing.  Based on the console output I'm guessing the JavaDoc parser (as the last message displayed is "[WARNINGS] Java Compiler : Found 0 warnings" and then 10-15 minutes later the Javadoc one is printed) is taking the longest.  The others seem to take a long time as well.

    Is there a way to make this run any faster or hints on making the console log less verbose?

    The logs are between 2-2.5 mb.

    1. Unknown User (drulli)

      You can redirect the JavaDoc generation output to a separate file.

  13. Unknown User (jgoncalves)

    Hi Ulli,

    This is really a very useful plugin, but i have an issue with the files not beeing copied to the temp files.

    It says it needs an absolute path, but how can i do this if the .csproj is in a subdir ??


    1. Unknown User (drulli)

      What is the motivation about a new plug-in? You can already implement a new parser that scans for errors in the log.

      1. Unknown User (jgoncalves)

        Yeah, i've seen that now,

        I've edited my comment, with a new issue.

        Thanks for your quick reply.

          1. Unknown User (jgoncalves)


            your comment pointed me in the right direction, and as it turned out it was legacy files in the svn repo.

  14. Unknown User (jbentley)

    Does the "warnings to ignore" field only check against the filename of the files that are producing warnings and not the absolute path? I'm trying to ignore warnings from all of the files in a certain directory and it doesn't appear to be working.

    1. Unknown User (drulli)

      It works on the absolute filename. The pattern is a regular expression. What did you specify? Note that the paths are in UNIX format. Are there absolute filenames in the warnings.xml file in your build Folder?

      1. Unknown User (jbentley)

        The filenames are absolute to the system root in compiler-warnings.xml

  15. Unknown User (tachikoma)

    Great Plugin!

    But since Jenkins has this new navigation line at the top, the relevant line in the source code lister/decorator is covered and not visible, just after a small scroll-up.

    Could it be possible that the source code lister would jump some 4-5 lines before the relevant line, and not exactly the one that is marked?

    Thank You...

    1. Unknown User (drulli)

      Ok, I see. I'm not sure if we don't have a general problem with this new approach: currently it is not possible to use the Firefox searchbox anymore, since the highlighted results are not visible due to the new header. Can you please file an issue so that this will not get forgotten?

      1. Unknown User (tachikoma)

        OK, I created a new improvement issue in Jira. Thank You.

  16. Unknown User (fep2k)


    I want to use the warnings plugin to display results of cpplint from the console.
    I am getting the following exception: ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception
    at hudson.plugins.violations.util.AbsoluteFileFinder.addSourcePaths(AbsoluteFileFinder.java:20)
    at hudson.plugins.violations.types.cpplint.CppLintParser.parse(CppLintParser.java:44)
    at hudson.plugins.warnings.parser.ViolationsAdapter.parse(ViolationsAdapter.java:60)
    at hudson.plugins.warnings.parser.ParserRegistry.parse(ParserRegistry.java:317)
    at hudson.plugins.warnings.parser.ParserRegistry.parse(ParserRegistry.java:296)
    at hudson.plugins.warnings.WarningsPublisher.parseConsoleLog(WarningsPublisher.java:293)
    at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:257)
    at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:338)
    at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:703)
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:678)
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:656)
    at hudson.model.Build$RunnerImpl.post2(Build.java:162)
    at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:625)
    at hudson.model.Run.run(Run.java:1433)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:238)

    I am using warnings plugin 4.5 and violations plugin 0.7.10.
    If you need any further information, please ask.

    Thank you!

    1. Unknown User (drulli)

      Ok, I see. Seems that the violations plug-in requires a source code path. Can you please file a bug report in Jira? Either I need to patch the violations parser or I need to provide a source path entry box...

      1. Unknown User (fep2k)

        Bug report added: https://issues.jenkins-ci.org/browse/JENKINS-14018

        Thanks for your response!

  17. Unknown User (nemoo)

    How would i use this plugin?

    I cannot find anything to activate it in my job configuration?


    1. Unknown User (drulli)

      Then the plug-in is not installed correctly, did you install the requirements (analysis-core)?

  18. Unknown User (fushly)

    I had installed this plugin, and I found this plugin report the existing warnings as new.

    And other plugin meet the same issue (https://issues.jenkins-ci.org/browse/JENKINS-14509)

    1. Unknown User (drulli)

      Is the path to the files relative?

      1. Unknown User (fushly)

        Thanks for your quickly response.
        I had checked the GNUCompiler4gcc-warnings.xml file.
        Looks like the filename is the relative path.
        And I just try to check 'Resolve relative paths' option in warning advanced configuration.
        But this issue still exist, Did you have any suggestion?

        1. Unknown User (drulli)

          What would help is a diff between the GNUCompiler4gcc-warnings.xml files of two builds. Can you please file an issue and attach the result?

          1. Unknown User (fushly)

            Thank you, you are so nice!!

            There have lots of differences between two builds, I had attached it.


            1. Unknown User (fushly)

              I had compare one warning, I found the Key and contextHashCode are different, FYI:

              <message>pointer targets in passing argument 1 of a€?chdira€? differ in signedness</message>
              <type>GNU Compiler 4 (gcc)</type>

              <message>pointer targets in passing argument 1 of a€?chdira€? differ in signedness</message>
              <type>GNU Compiler 4 (gcc)</type>

              1. Unknown User (drulli)

                Did the fix in the latest release work for you?

  19. Unknown User (timm)

    Hi Ulli,

    this is an excellent plugin. I have been using it for a while and it works perfectly. However there is one feature I would really like: ability to send email if warning count increases from last successful build.

    Would you be able to provide a Groovy script (that I can execute in Jenkins script console) that shows how to compare warning count from previous build with the count from current build? I couldn't find anything like this in the Jenkins API documentation. If you can show me how to do this, I can probably figure out myself how to get the results into an email.


    1. Unknown User (drulli)

      Isn't that feature available when you set the build e.g. to unstable when a new warning is introduced? Then an email will be sent...

      If you want to use groovy you need to navigate the object model: maybe you can have a look at the email ext template at https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/static-analysis.jelly
      Here I navigate through the various results.

      BTW: the warning count is also available using the remote API, e.g. with http://localhost:8080/job/Freestyle/6/warnings2Result/api/xml

      1. Unknown User (timm)

        Hi Ulli,

        thanks for the quick reply!

        You are correct, marking the build unstable does almost exactly what I need. The one extra thing would be if the email had the same text that is show on the Jenkins build details screen. Something like this:

        "Plug-in Result:Unstable - 4 warnings exceed the threshold of 3 by 1 (Reference build: #21)"

        I had a look at the Jelly template but I couldn't see how to get this information. How could I get this using the Jelly template?

        1. Unknown User (drulli)

          In the template you see the expression ${action.result}. The result is an instance of BuildResult (of the analysis-core plug-in). On this object you can use all public getters. E.g. the message you are referring to is from the project action summary.jelly:

          	<t:summary icon="${it.hasLargeImage() ? it.largeImageName : icon}">
          		<j:out value="${it.result.summary}" />
                  <j:out value="${it.result.details}" />  
          	    <j:if test="${it.result.hasError()}">

          So you can use e.g. the expression ${action.result.summary} to show the build summary in the Email (you need to use the Email-ext plugin)

          1. Unknown User (timm)

            That's perfect. Thanks!

  20. Unknown User (olenz)

    Since updateing Jenkins to 1.481 and the Compiler Warnings Plugin to 1.416 (and 1.417 afterwards), I get the following NPE in several jobs: 

    ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception
    at hudson.plugins.warnings.WarningsResult.getFileName(WarningsResult.java:108)
    at hudson.plugins.warnings.WarningsResult.getSerializationFileName(WarningsResult.java:94)
    at hudson.plugins.analysis.core.BuildResult.getDataFile(BuildResult.java:481)
    at hudson.plugins.analysis.core.BuildResult.loadResult(BuildResult.java:896)
    at hudson.plugins.analysis.core.BuildResult.getProject(BuildResult.java:880)
    at hudson.plugins.analysis.core.BuildResult.getContainer(BuildResult.java:1020)
    at hudson.plugins.analysis.core.BuildResult.getAnnotations(BuildResult.java:563)
    at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:238)
    at hudson.plugins.analysis.core.HealthAwareRecorder.perform(HealthAwareRecorder.java:289)
    at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:692)
    at hudson.model.Build$BuildExecution.post2(Build.java:183)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:639)
    at hudson.model.Run.execute(Run.java:1527)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
    Any idea how to fix this?

    1. Unknown User (drulli)

      Seems that in one of your old builds (warnings 3.x) the compiler-warnings.xml file could not be read.

      1. Unknown User (olenz)

        Ok. And what can I do about that? Can I somehow manually change the reference build?

        I believe that this happened as I had turned off the plugin for a while due to the small bug in 1.416, so that the XML-file was not created. Maybe the plugin should be able to handle that case.

        If I ever have time for it again, I would be willing to try to fix the issue, but maybe Ulli can come up with a solution quicker?

        Oh, and I think I definitely need Inca Trail! ;-) Thanks for the great plugins and the quick response!

        1. Unknown User (drulli)

          Actually, the plugin handles that case already: it skips all builds where the plug-in has been disabled.

          I'm just wondering why there is a build result available but the file could not be read. I.e., one of your build (build.xml) files has a result
          (tag <result class="hudson.plugins.warnings.WarningsResult">) but this tag has no sub element group (like <group>Java Compiler (javac)</group>). In this case the build folder should have a file compiler-warnings.xml. This seems to be not the case. Did you manually change some XML files or delete xml files in these folders (just to be sure...)?

          I think I need to track this down to find the actual reason. Maybe I missed something when I tried to get the 4.x version backward compatible to the 3.x results. (Which actually will not work well if you have more than one parser installed.)

          Can you please file a new bug report in Jira? Maybe I need to add some logging messages so that we see for which build the NPE occurs.

  21. Unknown User (olenz)

    Since v4.0, each parser creates its own trend graph. When using a lot of parsers, this is quite annoying. Is there any way to get back the accumulated graphs?

    Ideally, a user should be able to specify which warnings to accumulate.

    1. Unknown User (drulli)

      Using only the warnings plug-in this is not possible yet. Did you already install the analysis-collector plug-in? This plug-in creates aggregated results of the warnings in a job.

      1. Unknown User (olenz)

        Oh, no, I haven't. I wasn't aware of that plugin. Maybe I should have reread the description of this plugin. Thanks!

  22. Unknown User (jsaade)

    I am trying to use the FlexSDK parser with our AS3 project.

    The console is outputting several warnings, put they are not being parsed for some reason.

    Other projects are working fine (like GCC C++ project for example).

    Here is a sample warnings output: mxmlc C:\Program Files (x86)\Jenkins\jobs\YouPost\workspace\src\Engine\Game.as:67
    mxmlc Warning: declaration 'currentinputtext' will be scoped to the default namespace: Game: internal. It will not be visible outside of this package.
    mxmlc var currentinputtext:flash.text.TextField;


    1. Unknown User (drulli)

      Maybe the prefix 'mxmlc' is the problem. Please create an issue in Jira or/and attach an sample as raw text. (Or consider fixing the bug on your own, this shouldn't be complicated...)

  23. Unknown User (charlesbaudry)

    Hallo Ulli,

    I would like to send notifications to the developers who have warnings in their files. The notifications should be specific for each developers, containing the list of warnings they have.
    The "file responsible" would be the last person who modified the file where a warning occurred.
    Do you have any idea how I could proceed? Is it something which could be done with the Email-ext plugin based on your plugin outputs?
    Thank you in advance!


    1. Unknown User (drulli)

      This is not possible in the moment, see https://issues.jenkins-ci.org/browse/JENKINS-6748. Maybe you can compute the result on your own using the email-ext plug-in. However, I think it makes more sense to add that feature to my plug-in.

  24. Unknown User (vladichko)

  25. Unknown User (vladichko)

    Hi all,

    I have a regular (not maven) job that gathers compiler and doxygen warnings. I want to set compiler a high prio and doxygen regular prio, so that i will be able to set status trash hold for each.

    The question is: how do I set different prio's for different  warning sources (doxy vs gcc compilation)? 

    1. Unknown User (drulli)

      This is not possible. All parsers share the same settings.

      1. Unknown User (vladichko)

        Hi Ulli, So why there is a trash hold per priority, for maven only? Is this a feature that can be implemented?

        1. Unknown User (drulli)

          One threshold per priority, yes. This can be implemented, mostly UI changes: the complicated thing would be how to present that information in a simple way in the UI to the user? Maybe it makes sense to implement such a feature when https://issues.jenkins-ci.org/browse/JENKINS-14185 is done.

  26. Unknown User (vladichko)

    It seems that reference build is calculated in wrong way: it always tries to take last stable. while I didn't select that flag in  job configuration. That causes false alarms. I work with pylint warnings, beside that it is very similar to this issue:


    My warning plugin version  is 4.35

    Ulli, can you advise? 

    1. Unknown User (drulli)

      The reference build is the build you started to use the warnings delta. It might be stable or not.

  27. Unknown User (vladichko)

    It seems that all warnings graphs behave in wrong way: No matter what compiler i choose to show, i get total count. It happens even if i choose to present stats of a compiler that i don't check at all. 

    1. Unknown User (drulli)

      Please create an issue.

  28. Unknown User (davida2009)


    Since upgrading from Warnings plugin 4.35 to 4.36 one of our job fails with:

    ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception
    java.io.IOException: Error: No warning parsers defined in the job configuration.
    at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:316)
    at hudson.plugins.analysis.core.HealthAwareRecorder.perform(HealthAwareRecorder.java:333)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:780)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:752)
    at hudson.model.Build$BuildExecution.post2(Build.java:183)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:705)
    at hudson.model.Run.execute(Run.java:1617)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:237)

    It was true that no warning parser was defined in the job configuration but should the plugin give an exception in this case? (It didn't in 4.35).


    1. Unknown User (drulli)

      Due to JENKINS-20454 gcc parsers have been removed from the configuration. This has been fixed in 4.37.

      You must specify a parser when you enable the plugin, this beahavior is quite old.

  29. Unknown User (bovjensen)

    I am having problems using the warning plugin. I have made my own parser.  I am parsing a csv file containing the log output, but when I have several warnings in the same line the plugin only parses the first warning.

    From what I under stand the plugin is not able to receive information regarding the column

    Regular expression:

    my groovy script:

    import hudson.plugins.warnings.parser.Warning
    String fileName = matcher.group(1)
    String lineNumber = matcher.group(3)
    String category = matcher.group(7)
    String message = matcher.group(2)
    return new Warning(fileName, Integer.parseInt(lineNumber), "Dynamic Parser", category, message);

    example Lines to parse:
    "C:\svn_working\AF0500\Platform\dbg\dbg.c","No comment with variable declaration","307","41","param_level","Static Global Object","All Checks\Language Specific\C and C++\Variables\Variables should be commented","Each variable declaration should have a comment"
    "C:\svn_working\AF0500\Platform\dbg\dbg.c","No comment with variable declaration","307","30","param_idx","Static Global Object","All Checks\Language Specific\C and C++\Variables\Variables should be commented","Each variable declaration should have a comment"
    "C:\svn_working\AF0500\Platform\dbg\dbg.c","No comment with variable declaration","307","21","cmd_idx","Static Global Object","All Checks\Language Specific\C and C++\Variables\Variables should be commented","Each variable declaration should have a comment"

    The result: only the first line i parsed

    I am doing something wrong or is the plugin not able to multiple warning in the same line ?

    Kind Regard
    Bo Vestergård

    Dump of warning plugin configuration:

    1. Unknown User (drulli)

      If you have multiple warnings in the same line then you need to set the column as well (setColumnPosition). Otherwise these warning are considered the same (if the other properties are the same).

      1. Unknown User (bovjensen)

        Hi Ulli

        Thanks for your quick response.

        This is my first attempt to make a parser, so I am not a specialist. 

        when at look at the definition of the warning (http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.hudson.plugins/warnings/3.13/hudson/plugins/warnings/parser/Warning.java?av=f) I cannot see it is possible to set the column position

        I have tried to do like this:

        An excep

        import hudson.plugins.warnings.parser.Warning
        String fileName = matcher.group(1)
        String lineNumber = matcher.group(3)
        String columnPosition = matcher.group(4)
        String category = matcher.group(7)
        String message = matcher.group(2)
        return new Warning(fileName, Integer.parseInt(lineNumber), Integer.parseInt(columnPosition ), "Dynamic Parser", category, message);

        An exception occurred during evaluation of the Groovy script: Could not find matching constructor for: hudson.plugins.warnings.parser.Warning(java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String, java.lang.String)

        I have also note that the IAR parser, Gets the number of warnings wrong. the number of the parsed warnings result is lower than the numbers counted by the compiler - Also because of multiple warnings in the same line of code

        When I read your answer it seems very simple, but I cannot figure out what I am missing or doing wrong

        Kind regards

        Bo vestergård


        1. Unknown User (drulli)

          Actually there is no constructor available using column positions yet. You need to use the setter (after you instantiated the warning). The setter is available in the base class: https://github.com/jenkinsci/analysis-core-plugin/blob/master/src/main/java/hudson/plugins/analysis/util/model/AbstractAnnotation.java#L234

          1. Unknown User (bovjensen)

            Ahhh now I got it. Thanks Ulli

            my script after update:

             import hudson.plugins.warnings.parser.Warning
            String fileName = matcher.group(1)
            String lineNumber = matcher.group(3)
            String columnPosition = matcher.group(4)
            String category = matcher.group(7)
            String message = matcher.group(2)
            Warning myWarning = new Warning(fileName, Integer.parseInt(lineNumber), "Dynamic Parser", category, message)
            return myWarning;
            1. Unknown User (drulli)

              Good to see! I should update the help with your example...

  30. Unknown User (jstarbird)

    Great plugin!  But I am having a couple of issues. 

    First, using the MSBuild parser it is picking up Errors as well. Not a bad thing really except it reports them as Warnings not Errors.  If that's not a known issue and you need more info let me know.

    Other thing is really a question, I have done my own parser in the config screen to get MSBuild Errors and it's working fine but in all the reporting areas it says Warnings, is there an easy way for me to change what the reports say?

    Hoping to avoid having to modify the plugin code itself.

    btw, this plugin would be 1000 percent better if you added Error capture as well. Having the Warnings and Errors in combined reports would be very useful and, I think, make this plugin even more valuable to everyone. Yes Jenkins has some of this built in but not to the degree your plugin does it, drilling down into the files, lines of code, etc.



    1. Unknown User (drulli)

      First of all: there is no UI configuration of the individual parsers available up to now. If you want to change the behavior you need to change the source code of the corresponding parser.

      Currently the warnings plug-in does not support errors yet. Some parser authors circumvented that restriction by creating a warning with priority high if the log actually contains an error. But that is just a workaround. We already discussed that in the mailing list a couple of month ago: the conclusion was (at that time) that it would make sense if Jenkins core would provide such a feature. However, maybe it would be simpler if the warnings plug-in would parse and display compile errors. This shouldn't be so hard to change and some of the parsers already parse the errors. Can you please file a feature request in Jira so we can gather the requirements first? I think there are several UI changes required to support errors.

      1. Unknown User (jstarbird)

        Thanks. Feature request has been created. JENKINS-22700

  31. Unknown User (jmccabe)


    Thought I'd ask here first.. I've got the most recent warnings, token-macro, analysis utilities and analysis core installed on a 1.514 Jenkins installation. Do you know if there's any incompatibility in there that might be the cause of the "Details" section of the warnings page to be empty? I've got another Jenkins 1.520 with some older versions of those plugins that looks fine.

    The versions are:

    Jenkins 1.520, analysis collector 1.35, analysis utilities 1.49, token macro 1.7, warnings 4.26

    Jenkins 1.514, analysis collector 1.41, analysis utilities 1.56, token macro 1.10, warnings 4.40

    I can't see a specific issue mentioned in Firefox but in ie8 it seems to report an issue with the YAHOO.plugin.dispatcher being null or something like that.

    Any help would be greatly appreciated.

    1. Unknown User (drulli)

      Not that I'm aware of. Do the plugins work on a more recent Jenkins version on your machine?

      1. Unknown User (jmccabe)

        Do you mean more recent than 1.520? I haven't tried. I have a colleague who may have a more recent version on his system; I'll see how that goes.

        1. Unknown User (jmccabe)

          It turns out the colleague has the same version as on the server (the 1.514 version), however I've just installed the plugins in his version and they seem to work a treat! Must be some other screw up.

          Thanks for your time!

    2. Unknown User (jmccabe)

      Aaaaarrrrggghhhh - I found out the javascript files in the analysis-core plugin had been McAfeed; instead of being in the relevant folder there were two "x-warning.txt" files showing they'd been removed as McAfee didn't like their extension! Replaced the files and it works fine.

      As far as McAfee/server etc is concerned - don't ask - I have no control over that!

  32. Unknown User (krz)

    Hello, I just started to introduce Jenkins in our companys build process (Win32/msbuild), and it works well: SVN / msbuild / Logparser / Email / etc. are fine. BUT:

    It's currently not possible for me, to see/use the 'scan for compiler warnings' of the warnings-plugin. The entry is still missing in the dropdownbox of the [Add Postbuild Step] (see screenshot blow). As far as I can see, all needed plugins are the active (pls. see below). The 'Code Analyis PlugIn' is shown under 'Configure System'.

    I assume a basic configuration issue on my side and therefore scanned this thread and the Jenkins-Issues, but did not find a soltuin for my problem - nor any body else, who experiences the same problem. (sad)

    Could you pls. give my hint, what I still can check to find the cause? Thanky you for your support!



    ver. 1.564


    Firefox 29.0.1














































    1. Unknown User (krz)


      I installed Jenkins and the plugins above on a second Windows machine (Win81/32) and it works: I now see PostBuildAction 'Scan for Compiler Warnuings'.

      So it must be a configuration/installation issue on my first machine (Win81/64). Or: may it be a significant difference, that my problem only occurs on a a Wion 64-bit machine? (I assume - no).

  33. Unknown User (kveretennicov)

    A word of warning: if you see your builds disappearing after you activate Warnings plug-in, make sure to enable Maven plug-in.

    See JENKINS-21268 for details.

  34. Unknown User (tescott)

    I'm not seeing a trend graph appearing for my job and am not sure why.  I'm using the following:

    Jenkins: 1.583

    Warnings plugin: 4.42

    Static Code Analysis: 1.61

    Static Analysis Collector: 1.41

    (Edit: removed error info)

    I've tried downgrading to Static Code Analysis 1.58, thinking that might be the culprit, but I encounter the same thing -- same JavaUtilLog warnings and no trend graph.

    Any ideas?  Am I misconfiguring something or am I simply missing an appropriate plugin?

    Update: It turns out that the trend graph will not be displayed until you have a successful build.  I set my Lint configuration to fail if any Lint errors are found.  Changing the Lint scripting so that the job succeeds in spite of Lint errors finally returned me a trend graph.  I subsequently set the warning threshold to 0 which causes the build to be marked as a fail.

    1. Unknown User (drulli)

      I see. There is an option in the plug-in configuration to run the plugin even if the build has been failed.

      1. Unknown User (tescott)

        Yes.  I had that enabled - but no trend graphs were created.  Everything else seemed to be working correctly... I was getting results that were all nicely interpreted and annotated.  Just, no graphs.

        1. Unknown User (drulli)

          Just checked the code and the graph should be shown in your case. Seems that this computation is somewhat broken. If you don't mind: can you please file a bug report so that this will not be forgotten? If I find some time I'll investigate this (small) bug.

  35. Unknown User (vynce)

    Is there any way to maintain some state in the Dynamic Parser script between matches? I'd like to create a variation of the Make+GCC parser that stores an absolute path in a variable that can be used to resolve all the relative paths.

    Looking at GroovyExpressionMatcher.java, a new Binding is created for every execution of the script, so I guess it's not currently possible to maintain any state? It seems like the binding could be stored as a private member of GroovyExpressionMatcher, like the compiled script is? Then the script can add new variables to the binding using the Field annotation? My Java is rusty and I have very little experience with Groovy, so I'm not quite sure how this would all work.

    1. Unknown User (drulli)

      Yes you are right, this is not yet supported. I don't know how this could be solved, I never looked into the details of the Groovy runtime, too. The current implementation is copied from some tutorials (smile)
      Maybe it would be easier to write the parser in Java and deploy it as a separate plug-in.

      1. Unknown User (vynce)

        I have a PR that persists the binding across matches.

  36. Unknown User (peteboyrocket)

    Is it possible to use build parameters or environment variables in the threshold properties?

    Can I do something like:

    I'm investigating creating a generic build pipeline, so would have to pass in the thresholds somehow. Or is there some other better way to do this?

    1. Unknown User (drulli)

      Sorry, this is not possible.

  37. Unknown User (jstarbird)

    I'm trying to use the Warnings variables, WARNINGS_COUNT for example, but they do not contain any value, I'm trying to use them just after the Scan.  Are the ones documented not the correct names?

    1. Unknown User (drulli)

      Seems that I never updated the tokens to use aggregated results. Can you please check if the latest CI build works?

      1. Unknown User (jstarbird)

        How do I get that?  Sorry I've just never had to get a CI version of any of the plugins before so not sure where to get that.

        1. Unknown User (drulli)

          Sorry, I thought I posted the link inline (the build status is at top of the wike page of each my plugins): https://jenkins.ci.cloudbees.com/job/plugins/job/warnings-plugin/org.jvnet.hudson.plugins$warnings/
          Just replace your warnings.jpi with the warnings.hpi file.

          1. Unknown User (jstarbird)

            That did not fix it for me.

            1. Unknown User (jstarbird)

              btw, the WARNINGS_RESULT does sort of work. It shows a value but the value says Success even though in this case the build is Unstable because of the number of Warnings.

              It seems like something that would normally keep the Count and also the Result values up-to-date is no longer doing so, if that help.

              Question on this whole thing. Since you can do multiple parsers and that generates separate reports for each parser are the results for each kept separately as well?  So something like MSBUILD_WARNINGS_COUNT?

              1. Unknown User (drulli)

                No, the values should be shown aggregated only.

                Can you please file a bug report in Jira and add an example setup with the expected result.

  38. Unknown User (bovestergaard)

    Status threshold (total) not triggered when total results from two warning parser exceeds the limit

    I am maintaining a project using your warning plugin.
    I am using two parsers: MSBuild and my own custom for Parsing Green Hills System compiler warnings
    I want to set the health limits, so I open the "advanced " and set the 
    Status thresholds (Totals) All priorities Priority high Priority normal Priority low
     yellow |      |
     red      | 31 |
    Output from the parsers:
      FOSS_GHS_PARSER: 24 warnings.
    • Plug-in Result:  - no threshold has been exceeded (Reference build: #651)
    • Still 5 days before reaching the previous successful builds highscore.
      MSBuild Warnings: 18 warnings.
    • Plug-in Result:  - no threshold has been exceeded (Reference build: #651)
    • Still 4 days before reaching the previous successful builds highscore.

    My project is currently having a total sum of warnings at 24 + 18 but the project is not marked as failed.If the warnings from one of the parser exceeds the limit - Then the build is as failed.

    Want am i Doing wrong ?

    Kind regards
    Bo Vestegård
    Foss Analytical, Denmark 

    1. Unknown User (drulli)

      Which version are you using, this should be fixed in latest...

      1. Unknown User (bovestergaard)

        Aaarrrrhhhhhghghghg I was not using the latest version.

        Sorry for the interruption and thanks for a very nice plugin

  39. Unknown User (blacktea1105)

    Hi, does this support gradle compile warning output?

    I'm using javac parser, but no detected(I'm sure the gradle output log has compile warnings)

    1. Unknown User (drulli)

      I think nobody explicitly added support. So if there are warnings and they are not recognized, then the answer is probably no. This should be easy to fix, interested in providing a pull request?

  40. Unknown User (olenz)

    Is the "GNU Make + GCC" Parser for GCC 4 or GCC 3? I assume GCC 4, but is that true? Maybe it would be nice to explicitely put this into the name!

    1. Unknown User (drulli)

      Yes it is. The name can't be changed again (it already has been renamed). Otherwise the old results will not be mapped correctly.

  41. Unknown User (eggilbert)


    I'm not sure if I'm having an issue with the Warnings Plugin itself, or the Static Analysis Collector Plugin. But in my job I have 2 warnings parsers setup to scan workspace files (JSLint and PyLint in my case), and only the first one gets included in the aggregate static analysis warnings count and graph. Both parsers execute and have correct counts and show up in the build details though.

    I tried reversing the order of the two parsers, and the aggregate count changed to be short by exactly the number of warnings found for the second parser.

    Is this a known issue?

    I'm using Warnings Plugin v4.45, Static Analysis Collector Plugin v1.42, and Static Code Analysis Plugin v1.67.

    1. Unknown User (drulli)

      Seems to be a bug, can you please file a bug report in Jira?

      1. Unknown User (eggilbert)

  42. Unknown User (yan_zheng2009)

    hi, Great plugin!  But I am having a couple of issues.

    Jenkins: 1.607

    Warnings plugin: 4.46

    Static Code Analysis: 1.70

    Static Analysis Collector: not installed

    File pattern: results/*.log

    Parser: GUN Make + C Compiler(gcc)

    issue: i found there is the inconsistance between the warning totality reported by warning plugin and  results/*.log itself.

    all full build logs will placed under results folder, i check the warning api files which shows all warnings with ~12000

    Now when I run a simple command in the workspace : cat *.log | grep --I warning: | wc-l , results is ~46000 warnings

    why the result looks so many differences between them?

    then i try to check the log files one by one, but found another strange problems:

    at the end of the build console output, there is warning plugin output:


    17:27:51 [WARNINGS] Parsing warnings in files 'results/*.log' with parser GNU Make + GNU C Compiler (gcc)

    17:27:58 [WARNINGS] Finding all files that match the pattern results/*.log

    17:27:58 [WARNINGS] Parsing 15 files in /home/jenkins/workspace/***-DAILY-START

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/1.log with 0 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/2.log with 730 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/3.log with 778 unique warnings and 687 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/4.log with 778 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/5.log with 778 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/6.log with 2127 unique warnings and 7 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/7.log with 2203 unique warnings and 408 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/8.log with 2203 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/9.log with 2203 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/10.log with 2249 unique warnings and 5 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/11.log with 2250 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/12.log with 12400 unique warnings and 312 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/13.log with 12734 unique warnings and 10134 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/14.log with 12734 unique warnings and 0 duplicates.

    17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/15.log with 12734 unique warnings and 0 duplicates.

    17:28:08 [WARNINGS] Computing warning deltas based on reference build #135

    17:28:12 Archiving artifacts

    17:30:36 No emails were triggered.


    the result is also different with  ~12000 which reported by warning plugins.

    forthermore, i pick up one log file to check the warnings:

    in console above:  17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/7.log with 2203 unique warnings and 0 duplicates.  -------2203 unique warnings

    by commond: 

    cat /home/jenkins/workspace/***-DAILY-START/results/7.log | grep -I warning: | wc -l

    1  --------the result is 1 warnings, in fact it really does when i open the file.

    which is the right warning result, all above makes me confusing.

    1. Unknown User (drulli)

      The reason is visible from the log (wink)

      17:27:58 WARNINGS Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/13.log with 12734 unique warnings and 10134 duplicates.

      There are a lot of duplicates in there (same properties).

      For the totals in one file: Can you try with just this file?

      Please use the issue tracker for bug reports...

      1. Unknown User (yan_zheng2009)

        thank you for you quickly response.

        so the 12734 should be the totality warnings which added all warning result from every log files? for example:

        17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/3.log with 778 unique warnings and 687 duplicates.

        17:27:58 [WARNINGS] Successfully parsed file /home/jenkins/workspace/***-DAILY-START/results/4.log with 778 unique warnings and 0 duplicates.

        778 in 3.log = (warnings in 1.log)+ (warnings in 2.log)+ (warnings in 3.log), and so does the duplicates warnings? if so, there should be also 687 duplicates warnings in 4.log.

        BTW, what does the 'same properties' mean? if the same warning but in different code line, it will consider as the duplicate warnings? 

      2. Unknown User (yan_zheng2009)

        hi, i've create https://issues.jenkins-ci.org/browse/JENKINS-28033 to track this issue.

        thank you so much.

  43. Unknown User (jmellor)

    Am 01.02.2016 um 19:19 schrieb John Mellor <John.Mellor@esentire.com>:

     I really like the concept of the Warnings Plugin, but I’m having some difficulties correctly setting it up in Jenkins.  I’m running essentially the latest of everything, but have a remaining blocker issue.

     I run about 350 jobs on Jenkins for several products.  My prototype project is a large C++ job, building on typically 2 versions of Ubuntu in sequential pbuilder environments on one of a cluster of slave machines.  All jobs are freestyle jobs, typically run with simple shell scripting.  All build .deb deliverables in this case.  There are presently 13 possible slave machines, which will get selected by Jenkins mostly depending upon the restricting labels of the particular Jenkins job.

     So far, its been pretty easy to configure and run, but I’m stuck.

     The first issue that I worked around was that there were twice as many warnings being reported as were actually present.  This was due to my initial configuration to scan the build log instead of scanning the log for only one platform.  Since the source is compiled twice (once on each platform), this was probably the wrong thing to do.  Instead, I switched to only looking at a build log from one platform, not the job log.  I picked the environment with the newest gcc compiler, which would give me the most accurate warnings reporting.  Problem solved.

    Ullrich responded:

    > Is this a matrix job? Then the corresponding log should be automatically picked… If not then the best way is to pipe the warnings to 2 different files and use the correct file as input. 

     No.  Its a freestyle job.

    John continued:

    The second and more serious issue is that drill-down for specific warnings does not work.  It looks like there is an assumption that the source file location is the same as on the Master node.  This would appear to be due to 2 failing assumptions:

    a)      In my case, the master node typically does not have the source.  It is pulled from git on the slave machine that it picks.  So, the workspace is not present for that build on the master node – only the artifacts, the build number,  the project configs and a couple of Last-<whatever> symlinks are on the master node.  Is the plugin supposed to pull the source tree from the slave machine, or how was this supposed to work?

    b)      I’m building in a pbuild environment (essentially a chroot jail), and the source tree is present at build time in /tmp directory.  This environment is then destroyed at the end of the build for that platform, and the only existing copy of the source tree is in the workspace directory of this slave machine.

    So, on the master node, no source tree exists.  On the slave machine, it is different than what is noted in the build logs.  How do I get this to work?

     Ullrich responded:

    > The files are copied from the slave to the master after the build. If something went wrong, the exception message is copied into the file as text. From the attachment below I see that a file could not be found. (See inline comments below)

    John expanded:

    I’ve attached a typical traceback shown in the window that occurs when I drill down to a specific error, to show the problem.

    Any ideas?

    <included traceback deleted to save test space>


    1. Unknown User (drulli)

      Content of file archiver.h
      01 Copying the source file '/tmp/1541.work/build/deepinspect-0.27.2/dist-plain/src/archiver.h' from the workspace to the build folder 'ed9a8377.tmp' on the Jenkins master failed.
      02 Is the file '/tmp/1541.work/build/deepinspect-0.27.2/dist-plain/src/archiver.h' a valid filename?
      03 If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/job-name//tmp/1541.work/build/deepinspect-0.27.2/dist-plain/src/archiver.h‘

      Is the file


      correct? Is the file readable? Is the file still available on the slave after the build (the warnings plug-in runs after any build step)?

  44. Unknown User (xjom)

    Is there an example on how to ignore files with space in the absolute path name, like:

    C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V120/Microsoft.MakeFile.Targets

    I tried it plain, with quotes ("C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V120/Microsoft.MakeFile.Targets") and with space replaced by \s (C:/Program\sFiles\s(x86)/MSBuild/Microsoft.Cpp/v4.0/V120/Microsoft.MakeFile.Targets) but it won't work either way.

    Someone who knows how to correctly ignore this file?

    1. Unknown User (drulli)

      This is a regular expression. Can't you just try something like

      1. Unknown User (xjom)


        That worked perfectly.

  45. Unknown User (tolnaisz)

    Does the log files need to be in a specific format? I have saved my ARMCC build output to a log file and when trying to run this plug-in against that it doesn't find any warning, however if the log file is printed out into the Jenkins console output and analyzing that, the warnings are found.

    1. Unknown User (drulli)

      No, this is the same format and parser. Is the correct file found? There should be a logging statement in the console log.

      1. Unknown User (tolnaisz)

        I have a log file which is pretty much the same content as appears in the console log. In the build producing the log file I run the plug-in on the console log and it finds the warnings fine. On the parent build I try to run the plug-in on the log file (transferred as artifact) but it doesn't find any warnings. I can see in the parent build's console log that the plug-in found the log file and didn't found any issue in it.

        1. Unknown User (drulli)

          Hmm, then it looks like the file transformed the messages somehow. You can check on your own by creating a unit test for the armcc parser that reads your file. Did you try a diff between file and console? (the console is also stored in a file in your build folder)

          1. Unknown User (tolnaisz)

            Found the problem. My log files were saved with UNICODE encoding.

  46. Unknown User (ao17)

    Hey Ulli,

    is it possible to generate an output file?

    Like .xml or anything like that? I would like to save the warnings in a file for my deployment of each version.

    1. Unknown User (drulli)

      You can either use the remote API to extract the content of the result or you can copy the result XML file from the build folder. 

      1. Unknown User (ao17)

        I can't finde the .xml result output in my build. Could you tell me how the default path is configured in the plugin? Root of the workspace?


        1. Unknown User (drulli)

          The file is in the build folder of your Jenkins master, all Jenkins serialization files are stored there.  

          1. Unknown User (ao17)

            Thank you very much Ulli, I found it.

  47. Unknown User (upas)

    MSBuild parser wrong parse msbuild15 output. In log i have  lines like this:

    17:4>Filters\FilterBuilder.cs(229,34): warning CS0168

    As a result, i see «... java.io.IOException: Failed to copy d:/workspace/ .../Filters/17:4>Filters/FilterBuilder.cs ...»,message when I try to see the warning.

    Used 4.64 version. 

    1. Unknown User (drulli)

      Please do not report bugs in the wiki, use the issue tracker

      1. Unknown User (upas)

        Ok. I created JENKINS-48647

  48. Unknown User (aleksei_alefirov)


    I'm trying to use Warnings with pylint. So I have such a file hierarchy:

    - app/project_name/project_name.py

    - app/lint_report.txt - file generated during build with pylint results (on )

    Using Warnings on "app/lint_report.txt" works OK, but when I try to open file which is a source of warnings I've got an error mesage:

    Copying the source file 'project_name/project_name.py' from the workspace to the build folder 'foo.tmp' on the Jenkins master failed.
    02 Seems that the path is relative, however an absolute path is required when copying the sources.
    03 Is the file 'project_name.py' contained more than once in your workspace?
    04 Is the file 'project_name/project_name.py' a valid filename?
    05 If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]/project_name/project_name.py'

    Seems like Warnings plugin does not use the `app` part of the path.

    Checking `Resolve relative paths` in settings does not help.

    How it can be fixed?

    1. Unknown User (drulli)

      You can configure pylon to output an absolute path.

  49. Unknown User (madhavkulkarni1986)


    We are running into error when we scan for compiler warnings with LLVM/Clang parser on console log. When I click the graph and report log, I end up with:

    01 Copying the source file '2017-12-20 07' from the workspace to the build folder '992d7346.tmp' on the Jenkins master failed.
    02 Seems that the path is relative, however an absolute path is required when copying the sources.
    03 Is the file '2017-12-20 07' contained more than once in your workspace?
    04 Is the file '2017-12-20 07' a valid filename?
    05 If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]/2017-12-20 07'
    06 If you are building on the master: please check if the file is accessible under '$JENKINS_HOME/[job-name]/workspace/2017-12-20 07'
    07 java.io.IOException: Failed to copy 2017-12-20 07 to JENKINS_HOME/job-name/builds/16/workspace-files/992d7346.tmp
    08 at hudson.FilePath.copyTo(FilePath.java:1989)


    Plugin Version: 4.52(It does not work if we update the version to the latest one)

    Definitely, there is no file named '2017-12-20 07' in master workspace or on the slave. The plugin should scan for console log but I assume its not happening. '2017-12-20 07' looks like timestamp of the actual file. When I look into ClangLLVMbased-warnings.xml on master and seed the <fileName> tag contains this timestamp instead of the actual file name. See the attachment. Can you please help?


  50. Unknown User (drulli)

    Seems that your log does not only contain the LLVM/Clang output: somehow timestamps are available there. Can you please create an issue and add such a console log message that is parsed in the wrong way.

  51. Unknown User (madhavkulkarni1986)

    Hi Ulli,

    Yes, in the console log I can see some timestamps as below(Please note: this is another build log and not the one i mentioned in the above comment. I have lost that build)

    (I am afraid I can post the complete log coz of security reasons)

    Test Suite 'JSONModelTests' passed at 2018-01-22 03:03:22.063.
    Executed 17 tests, with 0 failures (0 unexpected) in 10.605 (10.610) seconds
    Test Suite 'LaneDefinitionTests' started at 2018-01-22 03:03:22.064
    Test Case '-[LaneDefinitionTests test_sortWidgetDefinitions]' started.
    Test Case '-[LaneDefinitionTests test_sortWidgetDefinitions]' passed (0.000 seconds).
    Test Suite 'LaneDefinitionTests' passed at 2018-01-22 03:03:22.065.
    Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.001) seconds
    Test Suite 'LaneTitleAttributesTests' started at 2018-01-22 03:03:22.065
    Test Case '-[LaneTitleAttributesTests test_font]' started.
    Test Case '-[LaneTitleAttributesTests test_font]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_fontSize]' started.
    Test Case '-[LaneTitleAttributesTests test_fontSize]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_horizontalAlignment]' started.
    Test Case '-[LaneTitleAttributesTests test_horizontalAlignment]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_init]' started.
    Test Case '-[LaneTitleAttributesTests test_init]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_striketrough]' started.
    Test Case '-[LaneTitleAttributesTests test_striketrough]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_textColor]' started.
    Test Case '-[LaneTitleAttributesTests test_textColor]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_titleText]' started.
    Test Case '-[LaneTitleAttributesTests test_titleText]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_underline]' started.
    Test Case '-[LaneTitleAttributesTests test_underline]' passed (0.001 seconds).
    Test Case '-[LaneTitleAttributesTests test_verticalAlignment]' started.
    Test Case '-[LaneTitleAttributesTests test_verticalAlignment]' passed (0.001 seconds).
    Test Suite 'LaneTitleAttributesTests' passed at 2018-01-22 03:03:22.074.
    Executed 9 tests, with 0 failures (0 unexpected) in 0.007 (0.009) seconds
    Test Suite 'LeastSquaresTests' started at 2018-01-22 03:03:22.075


    Is it that these timestamps are getting in place of the actual filename. I am do not have the knowledge in the language the plugin is written. I would appreciate any help w.r.t this. 

    1. Unknown User (drulli)

      This part in not responsible for the problem, see https://github.com/jenkinsci/analysis-model/commit/ba45d526047f266fae0fd00205947e4508d2afa8

      If this happens again, please file a bug report in JIRA and attach the corresponding console log that contains the warning part. 

  52. Unknown User (chantivlad)

    where do i find detailed information on how to use "Release 4.62 Added a new symbol for pipelines: warnings" ?

    1. Unknown User (drulli)

      You will see the result in the snippet generator. There is no other documentation since the call just has been simplified to warnings params.

  53. Unknown User (thangbn)

    just wonder whether this plugin support Pipeline DSL?

  54. Unknown User (drulli)

    Yes, it should work.

    1. Unknown User (thangbn)

      Hi Ulli,

      Thanks for your answer. Could you pls point me to where i can find the sample code for Pipeline DSL.

      Thanks again.

      1. Unknown User (drulli)

        I don't have one, I don't use the DSL. You should try your luck on the mailing list. (If you get an answer: please post your result on the wiki page so that others can use that example as well)

        1. Unknown User (thangbn)

          thanks. sure will do once get it working

        2. Unknown User (dmasilamani)

          I could not get any reference for using this in DSL/Declarative Pipeline, can you please here or point me in correct direction?

  55. Unknown User (dheeraj0060)

    I have updated warnings plugin from 4.40 version to latest version 4.65 . I use warnings plugin on IAR compiler(C/C++) to parse reports of txt/xml format.

    But I found huge performance drop between two versions. With earlier warnings plugin version my job use to run is 45 min (30+10(min for post build actions). 

    After updating of Warnings plugin job duration increased to 3.5 hrs (30+ 3hrs(post build build actions).

    Whole 3 hrs is been taken only by warnings plugin while parsing reports . 

    Note: My configurations on warnings plugin are unchanged between two versions.

    Please help me with this issue. I am happy to share my logs if you need any.


    1. Unknown User (drulli)

  56. Unknown User (packcat)

    Your Plugin is great!

    Any thought of cloning it to parse errors instead of warnings?

    They would go great together.

    "Errors Plugin"

    Thank you,


  57. Unknown User (drulli)

    It can parse errors as well, at least in the lasted development branch. What still needs to be done is to add some parsers that actually scan for errors. 

    Which parsers are you expecting to scan for errors? Do you have any ideas how these errors should be displayed (see JENKINS-22700 for details).

  58. Unknown User (packcat)

    I'm mostly interested in the vars: Count, New,and Fixed,

    I run a 'Execute shell' as last Build Step to grep on the raw console to get my tailored list from Java errors as part of the html report sent to email;

    grep -v 'DistributeSoftwareRepositories\|ServiceManager\|Inserting alarm for deleted resource' /server/server-runtime/target/server/logs/my-server.log | grep -C10 'ERROR\|Entity version mismatch' | head -100 > /loadtestnew/target/jmeter/results/load-testnew_server_errors.log

    Job is Triggered by commit - Warnings:

    I was thinking if you copied the plugin and used [ERROR] instead of [WARNING] to create another set of email Tokens.

    I guess the next logical step after would be to define Custom capture "Strings";

    Could be drop-down Name=Value parameters in the job config: SearchString_Name and SearchString_Value.

    myString = String; #Examples: ( SQL, NULL, POST, HTTP 200, etc...)

            <TD style="padding:3px;">$myString_COUNT</TD>

            <TD style="padding:3px;">$myString_NEW</TD>

            <TD style="padding:3px;">$myString_FIXED</TD>

     This would allow you to count any type of String Data, not just warnings and errors:






    1. Unknown User (drulli)

      I'm not sure if I understand your requirement. The tag [WARNING] is not parsed at all (or only by a specific parser). Which parser are you using? 

  59. Unknown User (packcat)

    I'm not sure, but it seems we look at the problem and the solution differently.

    We are talking about LOG files, right? (Console, Server, HTTPD, etc...)

    They are all text. I do not concern myself with a particular parser, only the ability to find a String and count it.

    You have already done the hard part by comparing to previous build(s).

    It does not matter if windows ( \ ) or Linux ( / ), or Java or C++, you could account for this in the string qualifier, if needed.

    I don't understand the concern with exotic parsing. Jenkins is written in Java, so the only concern is how to get to shell from Java.

    Maybe you are performing more magic behind the scenes, but any form of "grep" should work.

    grep -c string $logfile or (cat $logfile | grep -c string)

    grep -c string $Prevlogfile

    I could write it as a shell script or batch file and simply export the vars back to the environment



    1. Unknown User (drulli)

      I see, you want a very simplistic parser that scans in log files for a TAG (like grep does). The existing warnings plugin parsers are much more powerful (wink) 

      I can add such a parser (with configurable TAG), can you please file an issue in our issue tracker? 

  60. Unknown User (packcat)

    Hi Ulli,

    Could you provide the link for the issue tracker?

    my "RegEx Grep Parser" submission is something like:

    export mySearchValue="MySearchString"

    export mySearchPath="path_to_server.log"


    grep command: export myString_Count=$(grep -c $mySearchValue $mySearchPath)

    Requirements: VarCountName, VarSearchValue, Path_to_Log(s)


    Thank you,


    1. Unknown User (drulli)

  61. Unknown User (mpostole)


    We have an issue while using Warnings plugin and 2 parser : Elektrobit tresos Studio and GHS Multi Compiler, on a  2.107.3 Jenkins, Warnings 4.67 version -  if I want to see the details of a warning I get the following error:

    Warning for node "/AUTOSAR/TOP-LEVEL-PACKAGES/Tools4DAI/ELEMENTS/Tools4DAI/RecConfigUdpNm/UdpNmCoordinatorEnabled": Requirement ID 1484 not met. Please see description of parameter UdpNmCoordinatorEnabled under Tools4DAI module for more details.

    01 Copying the source file '*.xdm' from the workspace to the build folder '266933d.tmp' on the Jenkins master failed.
    02 Seems that the path is relative, however an absolute path is required when copying the sources.
    03 Is the file '*.xdm' contained more than once in your workspace?
    04 Is the file '*.xdm' a valid filename?
    05 If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]/*.xdm'

    This an example from Console Output:

    08:43:17 WARNING 18-09-06,07:41:24 (20084) CommonPublishedInformation parameter "ArPatchVersion" default in schema XDM of module "UdsC_TS_TxDxM1I0R0" does not match module registration in its plugin.xml. Fixed value in schema.
    08:43:17 WARNING 18-09-06,07:41:24 (20084) CommonPublishedInformation parameter "SwMajorVersion" default in schema XDM of module "UdsC_TS_TxDxM1I0R0" does not match module registration in its plugin.xml. Fixed value in schema.

    and indeed I have no reference of a file in the input.

    Is there something we can change to get the warning displayed properly?

    Thank you.

    1. Unknown User (drulli)

      This looks like a bug in the parser. Please file a bug report. Since most parsers have been contributed by volunteers: a pull request would be even better (wink)

  62. Unknown User (flasheridn)

    Wow, this is a magnificent plugin.  I was going to compliment you on how easy it would be to create a parser for Clang Sanitizer errors, but (after I’d managed to get a command-line build with the right sanitizer options) the Clang parser already reports them, with a high priority, which I think is worth documenting.

    1. Unknown User (drulli)

      In the upcoming 5.0 release it will be possible to provide a small help text for the parsers. So if you share the options I will add them as documentation.

  63. Unknown User (kubes)

    Hallo Ulli, do you have instructions or more details on how to create a plugin for a custom tool?

    1. Unknown User (drulli)

      Not yet, it is on my TODO list.  

      1. Unknown User (drulli)

        I started a document now, see GitHub. Please let me know if something is missing or should be improved. (Or if you have some useful additions, please create a PR!)

        1. Unknown User (kubes)

          I tried to use the warnings 5.0 plugin but it looks like this version is not publicaly realeased yet. I tried with version 5.0.0-beta2 but with this version, i'm getting lots of enforcer rules failures

          1. Unknown User (drulli)

            1. Unknown User (nguyenph88)

              Thanks Ulli, any plans for ETA when this will be pushed to the main branch? My org prevents our build server from pulling resources from the external sources (experimental update url included)

              1. Unknown User (drulli)

                Since no major problems have been reported so far I think I will create one additional beta and then make the final release (~ 15th October).

                1. Unknown User (nguyenph88)

                  looking forward to it, thank you so much

  64. Unknown User (vishnushivadas88)

    Hi , I have installed the warning plugin and added the below in my freestyle job , but I am getting 0 warning. console shows 

    "Successfully parsed file with 0 unique warnings and 0 duplicates"

    Can you let me know if any other plugins also need to be installed to show the warning.  I have used it in jenkinsfile also as below , but got the same output as above.

    stage ('compiler warnings scan') {
    steps{ step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, categoriesPattern: '', defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'Doxygen', pattern: 'code/**/**']], unHealthy: '']) }

    1. Unknown User (drulli)

      What kind of files are you trying to parse? You need to specify a specific pattern that matches only the JSLint report (**/**) matches every file in your workspace. Note: you need to start the static analysis tool on your own, the warnings plugin just visualizes the results.

      1. Unknown User (vishnushivadas88)

        Thanks Unknown User (drulli) .. Our python project use flake8 as static analysis tool. Can we run the flake8 and use PyLint parser to see the warning.

        1. Unknown User (drulli)

          Yes, see list of supported formats. (requires at least 5.0.0 beta 1)

  65. Unknown User (davida2009)

    I am using the beta of the Warnings plugin to capture warnings from gcc 4.  It is working ok but there is no hyperlink to the corresponding source file for each warning.  Is this supported?

    1. Unknown User (drulli)

      Yes, that should work. Sometimes gcc does not report absolute paths. Which parser are you using? Gcc4 or GnuMakeGcc4? What error messages did you get? (There should be a small error icon at the job summary of the gcc parser.)

      1. Unknown User (davida2009)

        I'm using the Gcc4 parser. Not sure where you mean by  'job summary of the gcc parser'.  There is an icon at the top right of the Details pane of the Warnings window, but it does nothing.

        1. Unknown User (drulli)

          Sorry, the icon (exclamation mark) is in the job level view (see example). There you get to the log (or use the console log).

          If you are using make as well then the other parser might be better since it does create absolute paths from make output.

  66. Unknown User (anusreeps)

    Hi Ulli ,

    I have installed warnings plugin and added the below code in Jenkinsfile :

    stage ('warnings scan') {

                    warnings canComputeNew: false, canResolveRelativePaths: false, categoriesPattern: '', consoleParsers: [[parserName: 'Go Lint']], defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'Go Lint', pattern: '**/report.xml']], unHealthy: ''


    My issue is : when I give pattern as **/** , I can see the report.xml as 1 unique warning and 0 duplicates .

    But when I specifically give as  **/report.xml , it is showing 0 unique warning and 0 duplicates . Not sure why , because in both the cases , it is parsing the same file . And when I checked manually , I can see many warnings , not only 1 . Is there anything else that we need to parse xml file ?

    Can u please help .



  67. Unknown User (andynugent)

    I think I might be missing something very obvious, but I'm looking to get PMD warnings appear as a report / trend graph (I already have javac and MSBuild being parsed correctly, and the ANT build outputs "[pmd]" messages to the console log).

    It's in the list of supported formats (https://github.com/jenkinsci/warnings-plugin/blob/master/SUPPORTED-FORMATS.md).

    But in the "Post-build Actions" | "Scan console log" | "Parser" list PMD isn't there.

    Do I need to create my own regex?

    1. Unknown User (drulli)

      Seems that you are not using the beta for 5.0. Older version don’t include PMD. Or you are using the old and deprecated post build action.

      1. Unknown User (andynugent)

        No, using the latest released / stable (4.x) version. Thanks.

    2. Unknown User (andynugent)

      Using the CSV report format output to console I got it working with:


      \S*\[pmd\] \"(.*)\",\"(.*)\",\"(.*)\",\"(.*)\",\"(.*)\",\"(.*)\",\"(.*)\",\"(.*)\"\S*

      Mapping script:

      //final int Problem = Integer.parseInt(matcher.group(1));
      //final String Package = matcher.group(2);
      final String File = matcher.group(3);
      final int Priority = Integer.parseInt(matcher.group(4));
      final int Line = Integer.parseInt(matcher.group(5));
      final String Description = matcher.group(6);
      final String RuleSet = matcher.group(7);
      final String Rule = matcher.group(8);
      final hudson.plugins.analysis.util.model.Priority p;
      switch (Priority) {
      case 1:
      p = hudson.plugins.analysis.util.model.Priority.HIGH;
      case 2:
      p = hudson.plugins.analysis.util.model.Priority.NORMAL;
      p = hudson.plugins.analysis.util.model.Priority.LOW;
      return new hudson.plugins.warnings.parser.Warning(File, Line, Rule, RuleSet, Description, p);
  68. Unknown User (javax)

    I added Warnings plugin to Jenkins ( 2.138.2) but I dont see the post build action of the warning plugin.

    What may be a problem?

    1. Unknown User (apodkutin)

      I have exactly the same problem.

      Jenkins ver. 2.121.1, Warnings Plug-in version is 4.68.

      I see only "Scan for compiler warning", but the list of Parsers does not correlate with this list https://github.com/jenkinsci/warnings-plugin/blob/master/SUPPORTED-FORMATS.md

      For example there is no SpotBugs parser.

      Is it correct that everything that we see here https://github.com/jenkinsci/warnings-plugin/blob/master/doc/Documentation.md is related only to Warnings Plug-in version 5.x?

      Thank you in advance.

  69. Unknown User (drulli)

    You need to install the version 5.0.0 beta3. It is available in the experimental update center only. the Post build action is called record issues, see documentation. 

    1. Unknown User (apodkutin)

      Unknown User (drulli)  Thank you for the quick answer. One small remark, post build action is called "Record static analysis results" based on the documentation: "Now you need to add a new post build step - this step now is called "Record static analysis results" for all static analysis tools.", correct me if I'm wrong.

      And will you be able to add the notice to this wiki page, that the information is related only to 5.x version of the plugin, please?

      Because here https://plugins.jenkins.io/warnings you have a link to the documentation which is point to this page, but here https://plugins.jenkins.io/warnings the version of the plugin is 4.68, so, when you're going to the documentation page, you're expecting to get documentation for the 4.68 version of the plugin, but you are getting documentation for the 5.0.0 beta. I believe it's misleading the users a little bit.

      Thank you in advance.

      1. Unknown User (drulli)

        Yes,  links and wiki pages are somewhat misleading. I did not manage it to get that fixed before my holidays. I will clean that up by the end of October.

        1. Unknown User (apodkutin)

  70. Unknown User (garvind)

    Unknown User (drulli)

    Thank you very much for working on this awesome plugin (v5.0). I have been looking for ways to get git blame on on the findbugs errors detected.

    This plugin does the trick.

    My task is to run a findbugs repot every day & generate an email only if new bugs are detected.

    I need advice on how I can display the commit id in the email.

    Can you give me some pointers here?

    I tried unsuccessfully to use

    <j:set var="fb" value="${it.getAction('io.jenkins.plugins.analysis.core.restapi.AnalysisResultApi')}" />
    <jset var="issue" value=${fb.issue}
    <j:forEach var="fileAnnotation" items="${issue}" varStatus="loop">
    <td width="15%">${fileAnnotation.authorDetails}</td>
    <td width="16%">${fileAnnotation.baseNmae}</td>
    <td width="4%">${fileAnnotation.lineStart}</td>
    <td width="*">${fileAnnotation.message}</td>

    I get nothing. I am sure I am doing something wrong at the basic level.  Can you nudge me in the right direction?

  71. Unknown User (drulli)

    I have no IDE at hand right now but you need to query the ResultAction and not the API. Maybe I need to add an additional API method to the AnalysisResult, so you can get the commit IDs more easily. I’ll come back to you after my holidays...

    1. Unknown User (garvind)


      Enjoy your holidays.

  72. Unknown User (jkyto)

    First I would like to thank for the new version (5.0) which looks like a great improvement over the previous version. 

    However, I faced two problems when I started to use the version 5.0:

    1. Has support for PC-lint been dropped? I cannot see it anymore in the list of supported static analysis tools. It is still included in 4.xx versions
    2. Is is possible to execute two issue scans and publishings with same analysis tool? Most of our code is cross platform but we have also quite a much platform specific code. Thus we need to have separate PC-lint analysis for each platform. I got below exception when I tried cpplint scan
      1. java.lang.IllegalStateException: ID cpplint is already used by another action: io.jenkins.plugins.analysis.core.views.ResultAction for CppLint

    1. Unknown User (drulli)

      Has support for PC-lint been dropped? I cannot see it anymore in the list of supported static analysis tools. It is still included in 4.xx version

      Thanks for reporting! PC-Lint actually was an alias to MS Build. I forgot to add it again, fixed in ffe2d2d.

      Is is possible to execute two issue scans and publishings with same analysis tool?

      Yes, you need to specify a new ID. This might change, see also JENKINS-54027.

  73. Unknown User (jkyto)

    Thanks for previous answer. I managed to get our static analysis builds ongoing by using MSBuild tool.

    However, I'm currently facing some instability with publishIssues step. Step fails often without giving any proper indication what could be wrong. If I rerun the build, it mostly likely succeeds in publishing issues. Below is log files from failed case:

    [Flexelint Spire] Attaching ResultAction with ID 'pclint_spire' to run 'onepa_review #4014'.
    [Flexelint Spire] No filter has been set, publishing all 169 issues

    After rerun publishing succeeds:

    [Flexelint Spire] Attaching ResultAction with ID 'pclint_spire' to run 'onepa_review #4016'.
    [Flexelint Spire] No filter has been set, publishing all 169 issues
    [Flexelint Spire] Using reference build 'onepa_review #4015' to compute new, fixed, and outstanding issues
    [Flexelint Spire] Issues delta (vs. reference build): outstanding: 169, new: 0, fixed: 0
    [Flexelint Spire] Evaluating quality gates
    [Flexelint Spire] -> All quality gates have been passed
    [Flexelint Spire] Health report is disabled - skipping
    [Flexelint Spire] Created analysis result for 169 issues (found 0 new issues, fixed 0 issues)

    Used Jenkins pipeline is below:

    script {
    def flexelint = scanForIssues blameDisabled: true,
    pattern: 'Build/spire_lint.txt',
    reportEncoding: '',
    sourceCodeEncoding: '',
    tool: [$class: 'MsBuild']
    publishIssues issues:[flexelint],
    failedTotalAll: 188,
    failedTotalHigh: 1,
    failedTotalLow: 42,
    failedTotalNormal: 147,
    id: 'pclint_spire',
    name: 'Flexelint Spire'

    Any ideas how to debug this case further? This is kind of blocker for us since we don't want have any instability in builds.

    1. Unknown User (drulli)

      Is there a stack trace in the log? 

      1. Unknown User (jkyto)

        I cannot see any stack trace or exceptions in log files. publishIssues step is just marked as failed without giving any reason. We have analysis steps also fro Gcc4 and that has been working perfectly. I reverted back to using deprecated "warnings" step for PC-Lint analysis and that has been working reliably. If you have any further suggestions for debugging, I can help since I can reproduce this error quite easily.

        1. Unknown User (drulli)

          Can you check if this works with the simple step, i.e. recordIssues

          Can you please have a look at the console where Jenkins is running in, maybe there are exceptions. (And please check http://your-jenkins/log/all)

  74. Unknown User (davida2009)

    I'm calling the new warnings plugin from a declarative script, as a post stage after running parallel compilation jobs:

    pipeline {
        agent any
        stages {
            stage('build') {
                parallel {
                    stage('agent_1') {
                        agent { label "agent_1" }
                        steps { sh '''make'''}
                    stage('agent_2') {
                        agent { label "agent_2" }
                        steps { sh '''make'''}
        post {
            always {
                recordIssues minimumSeverity: 'HIGH', reportEncoding: '', sourceCodeEncoding: '',
                    tools: [[id: '', name: '', pattern: '', tool: [$class: 'Gcc4']]]

    Is it possible to show the warnings separately for each agent?

    1. Unknown User (drulli)

      If the created warnings have the same properties, then this is not possible out of the box. Or is there something different for the two platforms? Then you can call recordIssues twice and apply a filter.

      If the warnings are the same in both stages then you can pipe the make output to two different files, like agent_1.log and agent_2.log and use that names in the pattern.

      Or, can't you place the step in the agent blocks?

      I tried such a pipeline on my machine and it does not seem that it is easy to split the log file into the stages. Or is there a way to get that information from?

      1. Unknown User (davida2009)

        The different agents run different compiler versions so the warnings can be different.  I changed the code to:

        pipeline {
            agent any
            stages {
                stage('build') {
                    parallel {
                        stage('agent_1') {
                            agent { label "agent_1" }
                            steps { 
                              sh '''make'''
                              recordIssues minimumSeverity: 'HIGH', reportEncoding: '', sourceCodeEncoding: '', tools: [[id: '', name: '', pattern: '', tool: [$class: 'Gcc4']]]
                        stage('agent_2') {
                            agent { label "agent_2" }
                            steps { 
                              sh '''make'''
                              recordIssues minimumSeverity: 'HIGH', reportEncoding: '', sourceCodeEncoding: '', tools: [[id: '', name: '', pattern: '', tool: [$class: 'Gcc4']]]

        but that gives error:

        java.lang.IllegalStateException: ID gcc4 is already used by another action: io.jenkins.plugins.analysis.core.views.ResultAction for GNU C Compiler 4 (gcc)
        	at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.ensureThatIdIsUnique(IssuesPublisher.java:91)
        	at io.jenkins.plugins.analysis.core.steps.IssuesPublisher.attachAction(IssuesPublisher.java:75)
        	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.publishResult(IssuesRecorder.java:633)
        	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:560)
        	at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:529)
        	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
        	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
        	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:50)
        	at hudson.security.ACL.impersonate(ACL.java:290)
        	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:47)
        	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        	at java.lang.Thread.run(Thread.java:748)

        Any thoughts please?

        1. Unknown User (davida2009)

          This looks like  JENKINS-54027 - Getting issue details... STATUS , which is resolved. But we have warnings-ng 1.0.0-beta4 and analysis-model-api 1.0.0-beta13, which apparently have a fix.  Should I reopen that issue, open a new one or wait?

          1. Unknown User (drulli)

            Did you check the documentation of the Id? It is used as url to the results and must be unique. An empty string is no valid url. E.g. use gcc-Linux and gcc-FreeBSD for the different results (you can also specify the names of the results).

            1. Unknown User (davida2009)

              Thanks, fixed now. Sorry I missed that information.

  75. Unknown User (mwils2424)

    We're currently running the new Warnings NG 1.0.0-beat5 and we also have Warning Plug-in 5.0.0-beta4.

    We've traditionally used the individual plugins (PMD, Findbugs) but came across this when one of our projects moved from Findbugs to Spotbugs.  We really like how the report looks and we're keen to use it in place of the older plugins...

    I've run into some trouble using the Findbugs option on the new plugin.  When I try to collect findbugs information I get this:

    [FindBugs] [ERROR] Parsing of file 'xxxxx' failed due to an exception: 
    org.dom4j.DocumentException: Sax error  Nested exception: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
    	at edu.umd.cs.findbugs.SortedBugCollection.doReadXML(SortedBugCollection.java:391)
    	at edu.umd.cs.findbugs.SortedBugCollection.doReadXML(SortedBugCollection.java:368)
    	at edu.umd.cs.findbugs.SortedBugCollection.readXML(SortedBugCollection.java:355)
    	at edu.hm.hafner.analysis.parser.FindBugsParser.readXml(FindBugsParser.java:230)
    	at edu.hm.hafner.analysis.parser.FindBugsParser.parse(FindBugsParser.java:175)
    	at edu.hm.hafner.analysis.parser.FindBugsParser.parse(FindBugsParser.java:111)
    	at edu.hm.hafner.analysis.parser.FindBugsParser.parse(FindBugsParser.java:97)
    	at edu.hm.hafner.analysis.IssueParser.parse(IssueParser.java:70)
    	at io.jenkins.plugins.analysis.core.util.FilesScanner.aggregateIssuesOfFile(FilesScanner.java:101)
    	at io.jenkins.plugins.analysis.core.util.FilesScanner.scanFiles(FilesScanner.java:85)
    	at io.jenkins.plugins.analysis.core.util.FilesScanner.invoke(FilesScanner.java:68)
    	at io.jenkins.plugins.analysis.core.util.FilesScanner.invoke(FilesScanner.java:29)
    	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3085)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:212)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
    	at hudson.remoting.Request$2.run(Request.java:369)
    	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found

    The strange part is if I copy the findbugs xml files to a different job I don't get the error.  The plugin does complain about not being able to find the source but it still process the data and gives me a nice report.  I guess the issue is being triggered when the plugin attempts to parse through the source code.

    I am using the source code encoding option.  I was having an issue with my PMD report until I enable that.

    Any suggestions would be appreciated.

  76. Unknown User (drulli)

    Can you please create a bug report in our issue tracker? I removed the Xerces SAX library in the latest beta since there should be a default one loaded. Seems that findbugs still uses the wrong XML parser.  

    1. Unknown User (mwils2424)

      No problem.  I just created a ticket




  77. Unknown User (davida2009)

    Hi Ulli, another problem I have is that the gcc 4 parser can't resolve paths:

    [GNU C Compiler 4 (gcc)] Sleeping for 5 seconds due to JENKINS-32191...
    [GNU C Compiler 4 (gcc)] Parsing console log (workspace:
    [GNU C Compiler 4 (gcc)] [ERROR] Can't resolve absolute paths for some files:
    [GNU C Compiler 4 (gcc)] [ERROR] - TurboLogMap.cpp
    [GNU C Compiler 4 (gcc)] [ERROR] Can't create fingerprints for some files:
    [GNU C Compiler 4 (gcc)] [ERROR] - 'TurboLogMap.cpp', IO exception has been thrown:
    java.nio.file.NoSuchFileException: TurboLogMap.cpp

    Do you have any suggestions for how to fix this please?

  78. Unknown User (drulli)

    There is a bug report in Jira about that.

    Can you please join the Gitter chat for other questions? Confluence is not very reliable in the moment when used on mobile devices.

  79. Unknown User (peddanet)

    Hi Ulli,

    I am just new here. I am looking for a possibility to create such links to the files the warnings publisher is pointing to, like i.e. source.723184581241662826/#781. How is this "hash" number created? The other dependencies are the build number and the tab used in my case, something warnings13result or so. I need to "hash" the filename and the line in the code to highlight it OR something like an external API to the plugin so that I can probably hand in my data, so that it returns the link to the file on jenkins. I need to customize my report which I sent in a personalized email, so each user only watches his/her own issues...

    Thanks in advance


    1. Unknown User (drulli)

      There is no REST API to obtain the links. You should be able to navigate using the object model though. How do you create the email, by a groovy script? The warnings plugin is deprecated, but with the warning-ng plugin you can create the links with the FileNameRenderer class. The URL is now composed in a slightly different way.

      1. Unknown User (peddanet)

        Ok Ulli, excuse me for that' simple question! What do you mean by simply navigating through the object model? Which objects (I assume somehow the object model of the warmup plugin, or of the results?) , from where or do you havd a simple example? Could that be done with the old plugiin? It will take a reasonable amount of time switch to the new plugin for our tools département, cause it is not on their agenda. 

  80. Unknown User (peddanet)

    Hi Ulli,

    Thank you!

    Actually I build a html file containing the QA-C findings via C# which I  attach to an emailNotifier, developed by our toolchain. Regarding there is no interface for creating the links, can You tell me the code piece from github, responsible for that. I guess you have something like a place in the workspace and then it will be translated to a link?

    In that case I could just copy the code into my C# tool.

    Or does it build its own workspace, with own db and references? Where is it stored then? 

    For the ng I ask our tool departement... So If I understand you right, this ng plugin could solve my problems? What would be the input parameter then (workspacepath to the file and line?)

    Regards Peter

    1. Unknown User (drulli)

      Hmm, using C# makes accessing the API impossible. You basically need to duplicate everything. How do you access the warnings currently in your C# application? HTML scraping of the Jenkins results? In my last reply I already linked to the source code that is responsible to create the links. However, from an architectural view I think your approach is wrong: you should bcall an API to collect the results.

      1. Unknown User (peddanet)

        I just did it by reading the ascii qar file of the qa-c results. The html has no function and has no tags its just plain txt. Actually this is of non use, cause now the only benefit is the personalized summary of each developer's findings. We had a similar approach for starting a java Web starter jnlp file (don't blame me for that old fashioned method, it is mathwork's way, with certain old security vulnerabilities...), provided as an attachment in the email, starting Polyspace static code analysis tool from there, with just the right defects of the addressed sw developer .

        We surely wanted something similar for qa-c. 

        We have developed it with Visual Studio because it offers great support at least for Windows machines and you can come very quickly to results with good built-in debugging features. All ready without big thinking. That is not our core business, normally we do Embedded C development in the automotive sector. It would therefore be disastrous, if we have to reprogram it using Groovy or Java, though Java offers similar possibilities. I thought you might have something like a library module or so. 

        If it is not too much we also could reprogram it, but the analysis would take big time, I guess. I thought simplified, that there is some dehash-function which offers us a path to the file and line number on jenkins. But ok, I admit I have no clue, how you did it or how you could implement such stuff into jenkins by now. We only need finish this in time (big grin)

        So if there is any way, and from your hints so far, I do not know where to start right now, to guess how much effort this really means, that would be helpful. Thanks for your time til now anyway.

        Ok I have found 


        Now I know at least how you think it should be implemented. Maybe  I could write a Java Tool, which only produces the links in a html file, which it simply reads from an xml or txt file? But then I surely must know, how to use this regexp parser...

        Any idea how to link my developers result (which gives my C# tool in a text file, called html (smile) , and the line in the c text file would be great!

  81. Unknown User (andreas_amm)

    in former version of Warnings Plugin there was a parameter canResolveRelativePaths. When this parameter is set to true then I was able to jump from Jenkins GUI directly to the code where the warning was found. Is this also planned in the new version? In console output I get an error that files can not be copied, and the files are not linked:

    Copying affected files to Jenkins' build folder /var/jenkins_home/builds/Playground/Build_SW/14
    0 copied, 0 not in workspace, 38 not-found, 0 with I/O error


    1. Unknown User (drulli)

      No, this is not planned. I think it would be more efficient if the absolute path would be automatically detected if possible.

      Can you please try beta8 (warnings-ng) and beta17 (analysis-model-api) and check if is working better? Which parser are you using? 

  82. Unknown User (andreas_amm)

    is it possible to configure the folder view, that the paths are relative paths as it was in former version:


    1. Unknown User (drulli)

      This is not possible. Please file a feature request in Jira.

      BTW: please either use the Gitter channel or the Warnings Next Generation wiki page to discuss such topics.