Question

I've created almost the same plugin as JobTypeColumn. There is only one difference - it shows job description instead of job type. But after i can't add this column to my list view. I have an NullPointerException after i edited my config.xml manually.

java.lang.NullPointerException
    at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:626)
    at hudson.util.DescribableList.rebuildHetero(DescribableList.java:164)
    at hudson.model.ListView.submit(ListView.java:262)
    at hudson.model.View.doConfigSubmit(View.java:484)
    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 org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:185)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:101)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:54)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:74)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:492)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:180)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:492)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:408)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:117)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:304)
    at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:31)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    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 winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    at java.lang.Thread.run(Unknown Source)
Was it helpful?

Solution

Have you had a look at the Hudson source code? (the Descriptor file is here, but you have to visit the wiki page first to read the user login/password).

Sure, I don't know if you're using the latest build, but comparing the source with the stacktrace, it looks like there's a problem with a JSON object where hudson can't instantiate one of the descriptors.

OTHER TIPS

Editing the config.xml directly isn't a good approach. First figure out how to get the UI to save the config properly. This will likely also fix your NPE problem, as your plugin probably isn't being picked up by Hudson properly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top