Question

J'ai créé presque le même plugin que JobTypeColumn. Il y a une seule différence - il montre la description du travail au lieu du type de travail. Mais après je ne peux pas ajouter cette colonne à ma liste. J'ai une exception NullPointerException après avoir modifié manuellement mon fichier config.xml.

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)
Était-ce utile?

La solution

Avez-vous consulté le code source de Hudson ? (Le fichier descripteur est ici , mais vous devez d'abord visiter la page du wiki pour lire le nom d'utilisateur / mot de passe).

Bien sûr, je ne sais pas si vous utilisez la dernière version, mais si on compare le source avec le stacktrace, il semble y avoir un problème avec un objet JSON où hudson ne peut pas instancier l’un des descripteurs.

Autres conseils

La modification directe du fichier config.xml n’est pas une bonne approche. D'abord, cherchez comment obtenir que l'interface utilisateur enregistre correctement la configuration. Cela corrigera probablement également votre problème NPE, car votre plugin n’est probablement pas correctement capturé par Hudson.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top