Important update on 9 Jan 2020: bug fixed!
Atlassian has finally released Jira 8.5.3 and 8.6.1 which fix the bug mentioned in this blog post. Therefore, this blog post is not relevant anymore, but it is left here to preserve the complete history.
Please read the follow-up blog post for details and guides.
What happened with Jira 8.6.0?
Jira 8.6.0 has been released on 17 December 2019. On 6 January 2020, the following Midori apps are still not available for this recent release:
- Better PDF Exporter
- Better PDF Automation
- Better Excel Exporter
- Better Excel Automation
First off, we understand your frustration and apologize for all inconvenience. As you probably know, we typically release the compatibility versions of our apps within a couple of days after a new Jira release. (Frequently, it is available on the same day.)
This is the practice that we tried to follow also this time, but an unfortunate bug in Jira disallowed it and still disallows it on 6 January.
The Midori team has been busy with working on the problem over the Christmas season. This blog post is to summarize what happened and what is current status.
Problem
Due to the incompatibility problem described in this blog post, the last versions of Better PDF Exporter or Better Excel Exporter are not marked as compatible with Jira 8.6.0 on their Atlassian Marketplace listings.
Symptom
Nevertheless, if you decide to install these to Jira 8.6.0, your exports will fail with this error:
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.
()V
(Note that in a low number of cases, the exports may eventually succeed.)
Root cause
We spent quite some time with looking for the root cause. Without going into technical details, the problem is that the OSGi wiring logic which connects OSGi bundles (app modules) after an app gets installed to Jira has been modified in Jira 8.5.2. Unfortunately, this modification introduced a major bug.
As this change has been introduced in 8.5.2, the bug affects Jira 8.5.2 and all newer versions, including Jira 8.6.0.
Also note that Midori apps are not the only apps affected, and other app vendors reported other symptoms caused by the same root cause.
Solution
The bad news is that the bug is in Jira, therefore only Atlassian can fix it. We made several attempts to work around this on the app side, at least as a temporary solution, but we concluded that it is not possible to do so.
Current status
On 24 Dec 2019, we reported the problem to Atlassian and urged them to fix it.
On 3 Jan 2020, Atlassian confirmed the bug and promised that it will be fixed "in the upcoming days".
On 6 Jan 2020, the Jira bugfix versions are not available yet. The problem is tracked as JRASERVER-70445 at Atlassian. Please watch that public issue for updates. We will also publish a new blog post when we know more.
Our recommendation: we strongly suggest to wait until Atlassian releases the Jira version with the bugfix. If you cannot wait for that, consider the workarounds in the next section at your own risk.
Workarounds
Reliable workaround
We found that there is only one guaranteed way to get it working: downgrading the JAR file in Jira that introduced this bug to the JAR version that was shipped with Jira 8.5.1 (the last version in which the bug is not present). Although we know that it is not practical to downgrade Jira JARs, we wanted to describe this technique.
Steps:
- Stop Jira.
- Delete the
atlassian-jira/WEB-INF/lib/atlassian-plugins-osgi-5.3.3.jar
file from the Jira installation directory. - Add the
atlassian-plugins-osgi-5.2.2.jar
file (shipped with Jira 8.5.1) to the same directory. (We made it available for download.) - Start Jira.
- Reinstall the Better PDF Exporter or the Better Excel Exporter app.
- Try an export.
Alternative workaround
Some users reported that they successfully solved the problem by repeatedly uninstalling and re-installing the app until it starts working. It is very inconsistent, but in their experience if it starts working, then it works consistently.
It may be an alternative temporary solution that you can consider if the JAR downgrade is not an option in your environment.