This page constitutes random notes from my work day as an Atlassian product consultant, put up in the vague hope they might benefit others. Expect rambling, reference to unsolved problems, and plenty of stacktraces. Check the date as any information given is likely to be stale.
Half of today was spent finding out why the Spartez Planning Poker for Jira plugin was broken on a recently upgraded Jira 8.5.1 system. Users are not able to join a session:
and atlassian-jira.log
contains an interesting tracktrace:
2019-11-26 22:49:22,854 ajp-nio-127.0.0.100-8009-exec-1668 ERROR [o.a.c.c.C.[.[localhost].[/].[servlet-module-container-servlet]] Servlet.service() for servlet [servlet-module-container-servlet] in context with path [] threw exception java.lang.NullPointerException at org.atmosphere.cpr.AsynchronousProcessor.map(AsynchronousProcessor.java:397) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:185) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:114) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:67) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2300) at com.spartez.pokerng.atmosphere.SpartezAtmosphereFilter.doFilter(SpartezAtmosphereFilter.java:109) ... 14 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
When plugins break and I've no clue as to why, my general process is to copy the plugin jar locally, load the classes into a Java decompiler and hope something leaps out:
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -cp /tmp/poker.jar -jar /opt/jd-gui/jd-gui.jar # Note: doesn't work with Java 11
In this case, nothing leapt out.
So on to the tedious business of restoring a backup from a last-known-working time, which was before the 8.5.1 upgrade.
In summary, it's Java 11. The plugin isn't compatible. I file a bug with Spartez, and am told it's already known:
Grr! Why can't companies make their issue trackers public, like Atlassian and Adaptavist? Why does every customer need to re-discover problems and re-file feature requests in 'Support' portals?