Uploaded image for project: 'Jira Software Data Center'
  1. Jira Software Data Center
  2. JSWSERVER-16374

[c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a bug
    • Low
    • None
    • 7.3.8, 7.6.0, 7.8.0, 7.9.2, 7.6.7
    • Board configuration
    • 7.03
    • 12
    • Severity 3 - Minor
    • 188
    • Hide
      Atlassian Update – 02-11-2018

      Hi everyone,

      The team have investigated the issue, and came to a conclusion this is Not a bug.

      Jira allows add-ons to be installed. As add-ons can heavily customise how Jira is functioning, a specific safe guards has been added into the product when working with an add-ons.

      If an error occurs when Jira interacts with add-on - the correspondent information is added to log file, in order to troubleshoot the problem.
      Therefore, these lines indicate there were issues with the add-on itself. Such issues have to be handled by the Plug-in Vendor.

      Workaround section now contains the details on

      • how to disable error logging for Jira administrators
      • tips how to troubleshoot the problem for the Plug-in Vendors

      Atlassian will continue to watch this issue for further updates, so please feel free to share your thoughts in the comments.

      Thank you,
      Ignat Alexeyenko
      Jira Bugmaster

      Show
      Atlassian Update – 02-11-2018 Hi everyone, The team have investigated the issue, and came to a conclusion this is Not a bug . Jira allows add-ons to be installed. As add-ons can heavily customise how Jira is functioning, a specific safe guards has been added into the product when working with an add-ons. If an error occurs when Jira interacts with add-on - the correspondent information is added to log file, in order to troubleshoot the problem. Therefore, these lines indicate there were issues with the add-on itself. Such issues have to be handled by the Plug-in Vendor. Workaround section now contains the details on how to disable error logging for Jira administrators tips how to troubleshoot the problem for the Plug-in Vendors Atlassian will continue to watch this issue for further updates, so please feel free to share your thoughts in the comments. Thank you, Ignat Alexeyenko Jira Bugmaster

    Description

      Summary

      Multiple instances of the following stacktrace appears in the logs:

      2018-01-22 15:23:34,791 ajp-nio-127.0.0.1-10009-exec-44 WARN erics 923x4329825x1 1on4h3w 192.168.0.163 /browse/NIB-8 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:27:22,934 ajp-nio-127.0.0.1-10009-exec-44 WARN xxxxx 927x4332317x1 n3xmkb 80.248.164.70 /secure/Dashboard.jspa [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:27:22,934 ajp-nio-127.0.0.1-10009-exec-44 WARN xxxxx 927x4332317x1 n3xmkb 80.248.164.70 /secure/Dashboard.jspa [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:27:22,935 ajp-nio-127.0.0.1-10009-exec-44 WARN xxxxx 927x4332317x1 n3xmkb 80.248.164.70 /secure/Dashboard.jspa [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:28:10,238 ajp-nio-127.0.0.1-10009-exec-44 WARN jaril 928x4332820x2 us42x5 192.168.20.215 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:28:10,240 ajp-nio-127.0.0.1-10009-exec-44 WARN jaril 928x4332820x2 us42x5 192.168.20.215 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:28:10,240 ajp-nio-127.0.0.1-10009-exec-44 WARN jaril 928x4332820x2 us42x5 192.168.20.215 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:31:25,250 ajp-nio-127.0.0.1-10009-exec-44 WARN zzzz 931x4335479x2 t44e0 192.168.20.163 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:31:25,251 ajp-nio-127.0.0.1-10009-exec-44 WARN villevu 931x4335479x2 t44e0 192.168.20.163 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:31:25,252 ajp-nio-127.0.0.1-10009-exec-44 WARN villevu 931x4335479x2 t44e0 192.168.20.163 /browse/AAAA-658 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:37:53,343 ajp-nio-127.0.0.1-10009-exec-44 WARN peepm 937x4340524x1 asrmn5 192.168.20.238 /browse/CCCC-374 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:37:53,345 ajp-nio-127.0.0.1-10009-exec-44 WARN peepm 937x4340524x1 asrmn5 192.168.20.238 /browse/CCCC-374 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      2018-01-22 15:37:53,346 ajp-nio-127.0.0.1-10009-exec-44 WARN peepm 937x4340524x1 asrmn5 192.168.20.238 /browse/CCCC-374 [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - name argument cannot be null'.
      

      Investigation

      1. So far it seems to not affect any functionalities.
      2. There is a similar bug traced in JSWSERVER-15307
      3. However, differing from JSWSERVER-15307, the problem is coming from the Issue View Screen. JSWSERVER-15307's problem is coming from View Board Screen.

      Workaround

      Jira Administrators can hide logging on the package by increasing logging level to ERROR.

      You can achieve this by adding these lines into log4j.properties:

      log4j.logger.com.atlassian.ozymandias  = ERROR, console, filelog
      log4j.additivity.com.atlassian.ozymandias = false
      

      For changes to make an effect, Jira restart is required.

      The file log4j.properties is located at JIRA_INSTALL_DIR/atlassian-jira/WEB-INF/classes (as of Jira 7.12.x)

      Mind, this would make the log lines disappear, yet would not address the root cause.
      The actual case had to be addressed by the plug-in vendor.

      For Plug-in Vendors

      Background

      atlassian-ozymandias is used to unify interaction Jira with the plug-ins.

      From the internal documentation:

      While any piece of code can be made safe by try/catches, as we all know, try/catch handling is verbose in Java.

      Ozymandias attempts to codify a standard call pattern and logging response to runtime exceptions.

      What safety is applied

      The ozymandias code catches all RuntimeExceptions and a handful of Errors that indicate code versioning problems, such as java.lang.LinkageError. It then logs a single line at warning level and logs the stack trace at debug level. This is a balance between knowing that a bit of code has problems and over-whelming the logs with stack traces.

      Finding the errors

      Getting low level errors
      If you are really interested in what went wrong, then many methods return List<Option<? extends ModuleAccessError>> and other variations.

      List<Option<? extends ModuleAccessError>> errList = SafePluginPointAccess.to().descriptors(descriptorList, visitor);

      There will be an Option.none() for every successful access and an Option.some() of ModuleAccessError for every one that failed.

      Additional tips for plug-in vendors:

      • use DEBUG level on com.atlassian.ozymandias to get stacktrace details
      • use debugger on the classes from the package, i.e. SafePluginPointAccess to see interactions with the plug-in.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              llee2@atlassian.com Lenard Lee
              Votes:
              41 Vote for this issue
              Watchers:
              60 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: