Мой дескриптор населяет два списка, я пытаюсь вызвать дескриптор со следующим:Дженкинс getDescriptor() возвращает NullPointerException
ZAPDriverDescriptorImpl zapDriver = getDescriptor();
тогда я называю
zapDriver.getAllFormats()
и zapDriver.getAllExportFormats())
получить два списка , Я объединяю их в список только с уникальными элементами.
Полный класс может быть найден on GitHub
Проблема заключается в том, что это работает, когда я бегу Дженкинс локально (только на хозяина), но когда я делаю master-slave
, этот код будет выполняться на ведомом и запустить в NullPointerException
ERROR: java.lang.NullPointerException
at hudson.model.AbstractDescribableImpl.getDescriptor(AbstractDescribableImpl.java:41)
at com.github.jenkinsci.zaproxyplugin.ZAPDriver.getDescriptor(ZAPDriver.java:2435)
at com.github.jenkinsci.zaproxyplugin.ZAPDriver.deleteReports(ZAPDriver.java:815)
at com.github.jenkinsci.zaproxyplugin.ZAPDriver.executeZAP(ZAPDriver.java:1141)
at com.github.jenkinsci.zaproxyplugin.ZAPBuilder$ZAPDriverCallable.invoke(ZAPBuilder.java:362)
at com.github.jenkinsci.zaproxyplugin.ZAPBuilder$ZAPDriverCallable.invoke(ZAPBuilder.java:1)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2720)
at hudson.remoting.UserRequest.perform(UserRequest.java:121)
at hudson.remoting.UserRequest.perform(UserRequest.java:49)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at hudson.remoting.Engine$1$1.run(Engine.java:69)
at java.lang.Thread.run(Thread.java:745)
Извините, это мой первый плагин, 'getDescriptor()' вызывает 'Jenkins.getInstance()', это то, что вы говорите? Есть ли способ заставить подчиненного получить информацию о списке? – JordanGS