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

build-monitor-plugin does not work with BFA Plugin 1.19.2

    Details

    • Similar Issues:

      Description

       

      Although it does not appear in the syslog in the form [java.lang.SecurityException: Rejected: some.pkg.and.ClassName] it seems to be caused by the inability of deserialize json data so I suspect it is also cause by the improvement brought in JEP-200

       

       

      Error while serving http://10.16.4.11/$stapler/bound/19287b83-6d07-432d-af7a-ac9490902019/fetchJobViews
      java.lang.NullPointerException
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.CanBeDiagnosedForProblems$Problems.<init>(CanBeDiagnosedForProblems.java:45)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.CanBeDiagnosedForProblems.asJson(CanBeDiagnosedForProblems.java:34)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.CanBeDiagnosedForProblems.asJson(CanBeDiagnosedForProblems.java:15)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobViewSerialiser.serialize(JobViewSerialiser.java:25)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobViewSerialiser.serialize(JobViewSerialiser.java:13)
      	at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:122)
      Caused: org.codehaus.jackson.map.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.smartcodeltd.jenkinsci.plugins.buildmonitor.api.Success["data"]->java.util.ArrayList[79])
      	at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
      	at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:197)
      	at org.codehaus.jackson.map.ser.std.SerializerBase.wrapAndThrow(SerializerBase.java:166)
      	at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:127)
      	at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:71)
      	at org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86)
      	at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
      	at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
      	at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
      	at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
      	at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256)
      	at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2575)
      	at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:2097)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.api.Respond.withSuccess(Respond.java:15)
      	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.BuildMonitorView.fetchJobViews(BuildMonitorView.java:142)
      	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
      	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
      Caused: java.lang.reflect.InvocationTargetException
      	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:347)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
      	at org.kohsuke.stapler.MetaClass$JavaScriptProxyMethodDispatcher.doDispatch(MetaClass.java:473)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
      	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:782)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:199)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
      	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:47)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:232)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209)
      	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
      	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      	at org.eclipse.jetty.server.Server.handle(Server.java:564)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
      	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
      	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
      	at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
      	at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
      	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      
      

       

       

        Attachments

          Issue Links

            Activity

            Hide
            rvangoethem Remi Van Goethem added a comment -

            Note that it seems to be related with JENKINS-44871 because disabling BFA in the view does allow the plugin to function. I still believe it is a side effect to JEP-200 

            Show
            rvangoethem Remi Van Goethem added a comment - Note that it seems to be related with  JENKINS-44871  because disabling BFA in the view does allow the plugin to function. I still believe it is a side effect to JEP-200 
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Remi Van Goethem could you please provide reproduction steps? For example, it would be nice to have a raw JSON data in the case when BFA is not installed, configurations for your views, plugin versions, etc.

            So far I see no evidence that it is caused by JEP-200. NPE in https://github.com/jan-molak/jenkins-build-monitor-plugin/blob/master/build-monitor-plugin/src/main/java/com/smartcodeltd/jenkinsci/plugins/buildmonitor/viewmodel/features/CanBeDiagnosedForProblems.java#L45 means that the plugin does not do proper checks when retrieving actions, serialization to JSON does not invoke JEP-200 classfilter logic.

            It may be a side effect of JEP-200 if the plugin does some magic internally and suppresses issues, but I doubt about it.

            Show
            oleg_nenashev Oleg Nenashev added a comment - Remi Van Goethem could you please provide reproduction steps? For example, it would be nice to have a raw JSON data in the case when BFA is not installed, configurations for your views, plugin versions, etc. So far I see no evidence that it is caused by JEP-200. NPE in https://github.com/jan-molak/jenkins-build-monitor-plugin/blob/master/build-monitor-plugin/src/main/java/com/smartcodeltd/jenkinsci/plugins/buildmonitor/viewmodel/features/CanBeDiagnosedForProblems.java#L45 means that the plugin does not do proper checks when retrieving actions, serialization to JSON does not invoke JEP-200 classfilter logic. It may be a side effect of JEP-200 if the plugin does some magic internally and suppresses issues, but I doubt about it.
            Hide
            rvangoethem Remi Van Goethem added a comment - - edited

            Sure!

            Setting the monitor view to not display any information about the failure cause let me see the monitor. This issue manifested itself right after JEP-200 in Jenkins 2.102

            Please see the screenshot for the settings of each plugins.

            I wish to help but I am not sure about how to get the raw json data.

            Show
            rvangoethem Remi Van Goethem added a comment - - edited Sure! Build Monitor View 1.12+build.201708172343 Build Failure Analyzer 1.19.2 Setting the monitor view to not display any information about the failure cause let me see the monitor. This issue manifested itself right after JEP-200 in Jenkins 2.102 Please see the screenshot for the settings of each plugins. I wish to help but I am not sure about how to get the raw json data.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            There is also an external issue in the plugin repo: https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/354

            Show
            oleg_nenashev Oleg Nenashev added a comment - There is also an external issue in the plugin repo: https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/354
            Hide
            jglick Jesse Glick added a comment -

            It is easy to tell for sure if a given problem is actually related to JEP-200, because there will be a warning in your system log file mentioning the term class-filter. If there is no such warning, you have some unrelated issue.

            Show
            jglick Jesse Glick added a comment - It is easy to tell for sure if a given problem is actually related to JEP-200, because there will be a warning in your system log file mentioning the term class-filter . If there is no such warning, you have some unrelated issue.
            Hide
            rvangoethem Remi Van Goethem added a comment -

            Understood, this was an incorrect assumption.

            Many thanks

            Show
            rvangoethem Remi Van Goethem added a comment - Understood, this was an incorrect assumption. Many thanks
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Even if this is not a JEP-200 issue directly, it's likely related to it taking the circumstances into account. I would consider it as integration issue after the new BFA release which includes some serious updates in the codebase. So I suggest to keep it open but recategorize it

            Show
            oleg_nenashev Oleg Nenashev added a comment - Even if this is not a JEP-200 issue directly, it's likely related to it taking the circumstances into account. I would consider it as integration issue after the new BFA release which includes some serious updates in the codebase. So I suggest to keep it open but recategorize it
            Hide
            pedersen Björn Pedersen added a comment -

            This looks very similar to the bug I got with Selenium (JENKINS-48985).

             

            There the null-pointer in deserialiaztion went away as soon, as all other plugins were updated. 

            Show
            pedersen Björn Pedersen added a comment - This looks very similar to the bug I got with Selenium ( JENKINS-48985 ).   There the null-pointer in deserialiaztion went away as soon, as all other plugins were updated. 
            Hide
            rsandell rsandell added a comment -

            What version of BFA did you use before?

            The only change between 1.19.1 and 1.19.2 is the serialization whitelist for JEP-200, no code change.

             

             

            Show
            rsandell rsandell added a comment - What version of BFA did you use before? The only change between 1.19.1 and 1.19.2 is the serialization whitelist for JEP-200, no code change.    
            Hide
            rvangoethem Remi Van Goethem added a comment -

            I was using 1.19.1 just before, but even downgrading Jenkins to pre-JEP-200 fix does not fix the issue. I am not alone in this circumstance, see https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/354 

            Show
            rvangoethem Remi Van Goethem added a comment - I was using 1.19.1 just before, but even downgrading Jenkins to pre-JEP-200 fix does not fix the issue. I am not alone in this circumstance, see  https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/354  
            Hide
            rvangoethem Remi Van Goethem added a comment -

            Fixed in Jenkins 2.103

            Show
            rvangoethem Remi Van Goethem added a comment - Fixed in  Jenkins 2.103

              People

              • Assignee:
                Unassigned
                Reporter:
                rvangoethem Remi Van Goethem
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: