2016-11-05 2 views
0

Мой дескриптор населяет два списка, я пытаюсь вызвать дескриптор со следующим:Дженкинс 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) 

ответ

0

Вы звоните Jenkins.getInstance() от подчиненного исполнителя. Он недоступен там, потому что подчиненные машины не запускают экземпляр Jenkins.

+0

Извините, это мой первый плагин, 'getDescriptor()' вызывает 'Jenkins.getInstance()', это то, что вы говорите? Есть ли способ заставить подчиненного получить информацию о списке? – JordanGS

Смежные вопросы