tags:

views:

276

answers:

2

Hi. 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)
+2  A: 

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.

Andreas_D
+2  A: 

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.

Michael Donohue