<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=299788&amp;fmt=gif">
Skip to content

It has been said many times that good pieces of software are the result of a developer ‘scratching that itch’. While we here at Isos Technology love every part of Atlassian’s full suite of software solutions, like any long time affair little idiosyncrasies can get really irritating over time. Heck, some of the issues we have with the Atlassian suite drive us crazy. The good news is that Atlassian offers a sort of ‘software couples therapy’ in the form of an excellent software SDK.

This is a very quick story of two small but crazy Atlassian quirks that we here at Isos were able to solve in a relatively short period of time.

Plugin 1: No issue for you!

Quick, do me a favor. Send an email to your Jira instance but do not include a subject.

Ok... now wait for an issue to appear in your designated project.

Keep waiting...  waiting...  waiting...

You can stop waiting because the issue is never going to show up.  Ask anyone who has used Jira for a helpdesk.  This “feature” is a killer. Personally, I’ve had more than a few customers get upset because my team didn’t respond to an email sent to our helpdesk. Also, Atlassian has known of this issue for at least five years, though they’ve kept mum on when, or even if, they plan to fix the problem. There are some pay plugins that can fix the issue, but most people don’t need (or can’t afford) a complex plugin to fix one seemingly simple issue.

Isos to the rescue!

When long time Java guru and Isos associate Rob Hall first started learning the ins and outs of the Atlassian SDK, he had to make a decision about what his first plugin was going to do. Rob must have heard me complain about this Jira issue one too many times. Before you know it, he fashioned a rock solid solution. Because of Rob’s work, no version of Jira 5 or higher should ever drop a subject-less email.  (Well, if you are using OnDemand, you are still hosed. Please ask Atlassian to install our plugin!)

The plugin extends the functionality of the existing Jira CreateIssueHandler by adding a subject value to the plugin configuration.  Using this value a subject is applied to subject-less emails before further processing.

Check out the product page (which includes a link to the source code).

Plugin 2: That attachment is new, lemme store it! (repeat)

Confluence is really smart. You can edit a page and upon saving it, it turns out if you didn’t change any content, Confluence will not create a new revision. Either from the editor or the remote API, Confluence will make sure a new page revision is created if and only if it can detect a page change.

Recently Isos created a Confluence content synchronization tool that leaned heavily on this awesome feature. Our scripts would copy pages from an originating Confluence instance and then immediately update that page in a destination instance. The scripts could copy all pages as often as desired because Confluence would only increment the version of the destination page if the content changed. THINGS WORKED GREAT! Well, almost.

We soon noticed disk space was starting to get used up as our scripts constantly synchronized our Confluence instances. We were like, “Whoa, what’s the scoop?” We noticed the attachments directory was ballooning up to a huge size. It turns out that Confluence stores a new version of an attachment every time it’s uploaded, whether it has changed or not.

Check this out:

atlassian plugin development

... and if you don’t believe that they are identical files, check this view from the Confluence server backend:

atlassian plugin development

This is crazy. I was about to modify my sync scripts to have them download each attachment from the destination instance to see if the origin attachment needed to be uploaded but...

Isos to the rescue (again)!

.. the craziest thing happened.  Rob Hall must have heard me complaining (again) and within a day or two he cranked out a plugin to solve this issue in the correct manner on the server-side. Again, because of Rob’s work, no version of Confluence 4 or higher should ever have consecutive duplicate attachments stored.  (Well, again, if you are using OnDemand, you are still hosed. Please ask Atlassian to install our plugin!)

The plugin overrides the default attachment add/save behavior to check if the attachment already exists and has the same hash value.  If the hash value of the new attachment matches the existing attachment (i.e. it is the same), it is not re-added, thus preventing duplication.

Check out the product page (which includes a link to the source code).

Conclusion

So there you have it! Atlassian products, like any software, have their warts. However, in Atlassian’s case for any bug, issue or feature not currently covered the current software release; their extensive SDK allows you to fix it for yourself and for the common good.

See More From These Topics