Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-9070

NullPointerException at hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:173)

      Found the following errors in Jenkins log:

      16.03.2011 09:34:59 hudson.ExpressionFactory2$JexlExpression evaluate
      WARNING: Caught exception evaluating: c.msgAnnotated. Reason: java.lang.reflect.InvocationTargetException
      java.lang.reflect.InvocationTargetException
      	at sun.reflect.GeneratedMethodAccessor334.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
      	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
      	at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
      	at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
      	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
      	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
      	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
      	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
      	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
      	at org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
      	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
      	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
      	at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:72)
      	at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:114)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:551)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:640)
      	at org.kohsuke.stapler.MetaClass$13.dispatch(MetaClass.java:382)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:562)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:640)
      	at org.kohsuke.stapler.MetaClass$7.doDispatch(MetaClass.java:242)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:562)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:640)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:478)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:160)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:52)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
      	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      	at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.NullPointerException
      	at hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:173)
      	... 133 more
      

          [JENKINS-9070] NullPointerException at hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:173)

          Patch for StarTeamChangeLogBuilder class.

          Dmitry Vyazelenko added a comment - Patch for StarTeamChangeLogBuilder class.

          Dmitry Vyazelenko added a comment - - edited

          Ok, I think I found it and it seems to be Jenkins bug and not StarTeam plugin bug.

          The thing is that ChangeLogSet$Entry#getMsgAnnotated() fails at line 173. Here is code snippet from this method.

          ChangeLogSet$Entry.java
                /**
                 * Gets the text fully marked up by {@link ChangeLogAnnotator}.
                 */
                  public String getMsgAnnotated() {
                      MarkupText markup = new MarkupText(getMsg());
                      for (ChangeLogAnnotator a : ChangeLogAnnotator.all())
                          a.annotate(parent.build,this,markup);
                      return markup.toString(false);
                  }
          

          The line on which error occurs is

          a.annotate(parent.build,this,markup);

          and as far I can tell it happens because

          parent == null

          !!!

          Dmitry Vyazelenko added a comment - - edited Ok, I think I found it and it seems to be Jenkins bug and not StarTeam plugin bug. The thing is that ChangeLogSet$Entry#getMsgAnnotated() fails at line 173. Here is code snippet from this method. ChangeLogSet$Entry.java /** * Gets the text fully marked up by {@link ChangeLogAnnotator}. */ public String getMsgAnnotated() { MarkupText markup = new MarkupText(getMsg()); for (ChangeLogAnnotator a : ChangeLogAnnotator.all()) a.annotate(parent.build, this ,markup); return markup.toString( false ); } The line on which error occurs is a.annotate(parent.build, this ,markup); and as far I can tell it happens because parent == null !!!

          Dmitry Vyazelenko added a comment - - edited

          Hi Jan,

          I've found the cause of the problem => why parent is null on ChangeLogEntry. It is simply, because it was never assigned. The attached patch StarTeamChangeLogParser.java.diff fixes the issue and also provides some additional information if parsing fails (e.g. file path, some date/time parsing enhancements etc).

          So I think you can close this issue now!

          Thanks for help & collaboration

          Dmitry Vyazelenko added a comment - - edited Hi Jan, I've found the cause of the problem => why parent is null on ChangeLogEntry. It is simply, because it was never assigned. The attached patch StarTeamChangeLogParser.java.diff fixes the issue and also provides some additional information if parsing fails (e.g. file path, some date/time parsing enhancements etc). So I think you can close this issue now! Thanks for help & collaboration

          Dmitry Vyazelenko added a comment - - edited

          Patch that fixes ChangeLogEntry.Parent problem attached!!!

          Dmitry Vyazelenko added a comment - - edited Patch that fixes ChangeLogEntry.Parent problem attached!!!

          Latest version of the StarTeam plugin 0.6.6 has the same problem!

          Need to rollback to local build instead.

          Dmitry Vyazelenko added a comment - Latest version of the StarTeam plugin 0.6.6 has the same problem! Need to rollback to local build instead.

          jan_ruzicka added a comment -

          Sorry for that ... I was trying to release changes that already placed in the repository, before folding in new changes.

          jan_ruzicka added a comment - Sorry for that ... I was trying to release changes that already placed in the repository, before folding in new changes.

          jan_ruzicka added a comment -

          I'm getting error during compilation.[1]

          Also can you clone the starteam repository and
          request update by pull.
          Feel bad about committing your changes without proper attribution.

          Jan

          [1]
          Note: Generating hudson/plugins/starteam/StarTeamSCM.stapler
          Note: hudson.plugins.starteam.StarTeamSCM.DESCRIPTOR indexed under hudson.Extension
          /Users/janruzicka/Jenkins/starteam-plugin/src/main/java/hudson/plugins/starteam/StarTeamChangeLogParser.java:120: setParent(hudson.scm.ChangeLogSet) has protected access in hudson.scm.ChangeLogSet.Entry
          change.setParent(changeLogSet); // Assign Parent
          ^
          1 error

          jan_ruzicka added a comment - I'm getting error during compilation. [1] Also can you clone the starteam repository and request update by pull. Feel bad about committing your changes without proper attribution. Jan [1] Note: Generating hudson/plugins/starteam/StarTeamSCM.stapler Note: hudson.plugins.starteam.StarTeamSCM.DESCRIPTOR indexed under hudson.Extension /Users/janruzicka/Jenkins/starteam-plugin/src/main/java/hudson/plugins/starteam/StarTeamChangeLogParser.java:120: setParent(hudson.scm.ChangeLogSet) has protected access in hudson.scm.ChangeLogSet.Entry change.setParent(changeLogSet); // Assign Parent ^ 1 error

          Added pull request Fixes for JENKINS-9070.

          Dmitry Vyazelenko added a comment - Added pull request Fixes for JENKINS-9070 .

          Code changed in jenkins
          User: Dmitry Vyazelenko
          Path:
          src/main/java/hudson/plugins/starteam/StarTeamChangeLogEntry.java
          src/main/java/hudson/plugins/starteam/StarTeamChangeLogParser.java
          http://jenkins-ci.org/commit/starteam-plugin/7660e0bfc423153a3fd8e8f7e516e876a5cf2fa5
          Log:
          Fixes for JENKINS-9070

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Dmitry Vyazelenko Path: src/main/java/hudson/plugins/starteam/StarTeamChangeLogEntry.java src/main/java/hudson/plugins/starteam/StarTeamChangeLogParser.java http://jenkins-ci.org/commit/starteam-plugin/7660e0bfc423153a3fd8e8f7e516e876a5cf2fa5 Log: Fixes for JENKINS-9070

          jan_ruzicka added a comment -

          Fixes are in the release 0.6.7.

          jan_ruzicka added a comment - Fixes are in the release 0.6.7.

            vyazelenko Dmitry Vyazelenko
            vyazelenko Dmitry Vyazelenko
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: