Вход В Adaptivist Scriptrunner

В этой статье я хотел бы поговорить о входе в систему Adaptivist ScriptRunner. Журналы являются основным инструментом разработчиков и эксплуатационного персонала для анализа нештатных ситуаций в производственной среде.

Поэтому при разработке приложения мы должны подумать о том, что нам понадобится при анализе возникающих инцидентов.



Вход в Adaptivist ScriptRunner

Все примеры были подготовлены в Jira Software 7.8.0 и Adaptivist ScriptRunner 5.3.9. Предположим, вы пришли в проект, который уже существует какое-то время, или вы уже написали несколько десятков скриптов, и теперь к вам приходит инцидент с ошибкой.



Пример инцидента 1

  
  
   

2018-03-17 11:43:04,891 http-nio-8080-exec-17 ERROR admin 703x1504x1 16n2j3n 127.0.0.1 /secure/WorkflowUIDispatcher.jspa [c.o.s.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: BP-2, actionId: 951, file: <inline script> java.lang.NullPointerException: Cannot invoke method getKey() on null object at Script1.run(Script1.groovy:4)

Из логов понятно, что это встроенный скрипт. Скрипт находится в каком-то бизнес-процессе при переходе с ID 951. Далее мы должны запросить информацию у эксплуатационного персонала о переходе с ID 951, и даже после того, как мы получим эту информацию, мы все равно не будем знать, находится ли этот скрипт в состоянии , валидатор или функция публикации.

Кроме того, мы понимаем, что NPE был получен потому, что какой-то объект был нулевым, но понятия не имеем, что это был за объект и почему он был нулевым.

Надо сначала найти этот встроенный скрипт, а с этим у нас проблемы.



Пример инцидента 2



2018-03-17 17:07:31,325 http-nio-8080-exec-22 ERROR admin 1027x4968x1 gj4xqt 127.0.0.1 /secure/WorkflowUIDispatcher.jspa [c.o.s.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: BP-2, actionId: 961, file: ru/matveev/alexey/main/postfunctions/pfNPE.groovy java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java_util_List$get$6.call(Unknown Source) at ru.matveev.UtilHelper.getIndexOutOfBoundsException(UtilHelper.groovy:13) at ru.matveev.UtilHelper$getIndexOutOfBoundsException.call(Unknown Source) at ru.matveev.alexey.main.postfunctions.pfNPE.run(pfNPE.groovy:10)

Здесь дела обстоят лучше.

Мы видим, что ошибка в методе getIndexOutOfBoundsException, который был вызван скриптом pfNPE.groovy. Мы знаем расположение этого скрипта.

Но мы не знаем, где находится файл UtilHelper.groovy. Мы можем запустить поиск по файловой системе и скорее всего найдём файл UtilHelper, но мы также не понимаем, почему мы получили IndexOutOfBoundsException, какие значения были у массива, из которого мы выбирали элемент. То есть нам не хватает контекста, в котором выполнялся скрипт.

Пример инцидента 3



2018-03-17 16:26:25,165 http-nio-8080-exec-22 ERROR admin 986x4387x1 gj4xqt 127.0.0.1 /secure/CommentAssignIssue.jspa [c.o.s.c.jira.utils.ConditionUtils] Condition failed on issue: BP-2, built-in script:com.onresolve.scriptrunner.canned.jira.workflow.postfunctions.CreateSubTask java.lang.NullPointerException: Cannot invoke method getClauseNames() on null object

Теги: #программирование #Groovy #raiffeisenbank #Jira #atlassian #script #raiffeisen
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.