-
Bug
-
Resolution: Fixed
-
Major
If you retrieve a NestedView from either REST (GET /view/.../config.xml) or CLI (get-view), and then save it right back (POST /view/.../config.xml, update-view or create-view after deleting), the resulting view does not render. Depending on the subview you get either
java.lang.NullPointerException hudson.model.View._getOwnerItemGroup(View.java:269) hudson.model.View.getOwnerItemGroup(View.java:258) hudson.model.ListView.getItems(ListView.java:168) hudson.model.ListView.getItems(ListView.java:66) hudson.model.View.filterQueue(View.java:462) hudson.model.View.getApproximateQueueItemsQuickly(View.java:483)
or
java.lang.NullPointerException: Cannot invoke method isEmpty() on null object org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77) org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45) org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32) org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) java_util_List$isEmpty.call(Unknown Source) hudson.model.View.main.run(main.groovy:6)
(both stack traces from 1.554.x).
The reason is that View.writeXml explicitly omits the View.owner field when writing, yet NestedView.views makes no attempt to restore it when loading XML.
The workaround is to add
<owner class="hudson.plugins.nested_view.NestedView" reference="../../.."/>
inside every nested view (<hudson.model.ListView> etc.) before sending the XML back to Jenkins.
- relates to
-
JENKINS-41825 Page loads breaks when View.getItems fails
- Resolved
- links to