JIRA 4.0 Beta Test Drive

I was keen to get my grubby mitts on the JIRA 4.0 beta to see what JQL (jira query language) was all about… this is my first test-drive, I haven't read much of the release notes or the bug reports, so I'm probably way off on some of this.

You can grab the download from here. One notable difference is a massively slower startup time for an out-of-the-box instance with no additional plugins – around 75-90 seconds versus 10 or 15 for previous versions. This seems to be down to the use of OSGi, which has been in Confluence for a long time. On the plus side one should be able to include required jars in plugin jars, and even have different plugins use different versions of third-party stuff. The slow startup time will really only be a problem in dev builds I suppose.

Finding Issues

Like I say, the main deliverable in this release is JQL. JQL will speak to literally hundreds of issues on j.a.c and probably close out shedloads of votes. So, start by hitting the Find Issues link.

At my organisation a common question is how to search across different projects, for issues fixed in the "same" version. Now that can easily be done with JQL:

project in (JRA,CONF) and fixVersion = "3.14"

That's already a big win. Another common one is how to search for issues assigned to/reported by an arbitrary list of users (creating a group is an admin-only exercise).

As you type, the query icon gives you feedback on whether your query is valid or not – although on the downside it creates an http request even when you simply move the caret around.

If you click on a previous query from the history list at left, it duplicates it and brings it to the top of the list – this is confusing, it makes it that much harder to return to the query you were just editing, as now it's second in the list – maybe it should only create a history entry when you change it, or possibly when you execute it.

It would be nice if you could filter using non-issue attributes… eg to filter on projects I am the lead for you would do: "project.owner = echlinj", or "version.releasedate > today()".

There is now a project category function to allow filtering on categories, which finally makes categories more than simply cosmetic. I don't understand why this can't be reflected in the simple view though.

Speaking of the simple view – it would be nice if the query was displayed as a tree, with the user adding fields and ANDs/ORs. Once a field is added you specify any parameters using an input form which varies according to the field's type. When you have many custom fields the simple view is rather busy and hard to use.

It's a big win to be able to search now on "empty values", eg "description is empty". However it's a shame that you cannot switch to simple view when you have used "is empty" – it's something that many users need to do but not all will be comfortable hitting anything that says Advanced. Empty could be represented by a little checkbox next to the field or some magic word or something.

More complex queries with nested clauses seem to fox it a bit:

description is empty AND (project = "Project1" or project = "Project2" or (reporter is empty and assignee is empty))
 ORDER BY priority ASC, key DESC

This failed for me previously but right now it's working. Anyroads, you can overcome this by removing one of the parenthetical clauses, saving the query, then using this query in another query:

description is empty and filter = "BasicQuery"
ORDER BY priority ASC, key DESC

Also, it would be nice to have a function that checks project role membership, eg "reporter in RoleMembers ("MyProject", "Developers")"

All in all, a huge improvement, but would like to see better round-tripping between the two query UIs – anything but the simplest filter can't be represented in the super-simple view.

Random Irritations

This is annoying. This keeps popping up, even when I hadn't actually entered any data on the page:


The dashboards have gone all netvibes and pageflakesy… you can drag and drop your portlets, and there are a number of different layouts instead of the current "one large" or "two equal columns" layouts.

The dragging and dropping can be difficult with many gadgets, as the browser scrolling can confound your efforts to drop it in the right place. Also moving a gadget from a wide to a narrow column is surprisingly difficult first thing in the morning. This is all good stuff, but not quite as slick as iGoogle right now.

On the system dashboard the styling is seriously ill (this is in Firefox, in IE it's much worse):

The portlet frame, eg "Assigned to me" doesn't display unless you mouse over it. I'm assume this is just a minor glitch that will be resolved when it's GA.

There are some minor bugs, eg dragging a gadget (read portlet) seems to lose its settings, if you haven't already switched dashboard panels and returned to the current one. Eg, select a filter for a pie chart, hit Save, then move the gadget to a different position. When the gadget lands it loses the project/filter setting.

One thing I couldn't work out was how to move a gadget from one dashboard to another.

Filter portlets and so on now have a refresh interval, so they can be updated without updating the whole page. But, the shortest interval is "every 15 mins", not enough if you are running a support desk.

All this Web 2.0 goodness is all very well, but Firefox 3.0.10 consumed vast amounts of memory just clicking through the different dashboards I was working. Suspect a memory leak or two in FF. Open two or three tabs with jira in and you start getting serious problems. Memory consumption is likely to be even worse with the browsers that run a separate process per tab (IE8, Chrome, future versions of FF). 

You should be able to use gadgets from igoogle and other places, unfortunately i couldn't get that to work. All I wanted was the London weather and a big clock in on my jira dashboard. Of more use might be having your jira portlets in some other OpenSocial container such as Yahoo!, however I don't use any of these currently. Maybe I'm missing out.

Down the track I'll be interested to see what performance is like – with all this AJAXy stuff, less happens in the same transaction, so permissions checking is going to happen more often, and possibly be more of a problem.


Whilst the users are crying out for what JQL provides I won't be in any hurry to upgrade. I'm sure the new plugin system is going to break a large number of plugins, and for better or worse, we do use a large number of plugins. I've been bitten before upgrading too early, so I'll let other people find all the plugin problems, and upgrade when they roll out 4.0.1.

10 comments to JIRA 4.0 Beta Test Drive

  • javahollic

    How did you find performance? Its a little sucky on my dev box which runs multiple VM’s and Jira 3.x instances without noticeable effect…

  • I found it sucky too… seems noticeably more lethargic than 3.13. Another reason for not upgrading until they’ve worked this out.

    At some point I’ll load test it using the same database as in previous posts…

  • You have mailed a link to this to Atlassian support, right?:-)


  • Jamie, as usual – huge thanks for the detailed feedback.

    A lot of the gadget UI things you have noted are known issues. This is still early access and is undergoing a huge amount of work. In particular the IE conformance is known to be poor currently but this will change.

    As to the annoying pop-up, the new behaviour is better than losing your data accidentally – http://www.tbray.org/ongoing/When/200x/2009/05/25/The-Wrath-of-Heaven – although maybe still not perfect. Could you please add your feedback to: http://jira.atlassian.com/browse/JRA-14031

    The advanced -> simple query round-trip experience is unlikely to be improved – one of the main reasons for JQL was to solve a lot of the things that the ‘simple’ editor could not support. If it was able to support these things then we probably wouldn’t have JQL.

    The startup time you see is a bit worrying. JIRA 4 starts up for me in about 17 secs, with the plugin system taking 12 secs. We do think there are some further improvements we can make here though and expect this to improve by final.

    I’ll make sure product management and JQL team read your improvement suggestions, they’re very ineteresting.

    Anyway, keep you feedback coming, great stuff.


  • Hi Jamie,

    Thanks a lot for the great writeup. I’m one of the JIRA developers working on the new dashboard. Just wanted to leave a couple of comments :).

    The popup issue you listed under Random Irritations is a known bug and will be fixed before we ship. We hope that this feature will become quite handy such that users don’t loose their data if they accidentally close their browser window (it’s not quite auto-save in the background, we know, but should still stop a lot of annoyances of this type).

    I agree that the drag and drop needs improvements. It’s a work in progress ;). We hope we’ll get it as good as iGoogle in the end. As far as styling of the System Dashboard is concerned: The gadgets you had there were actually all legacy portlets being displayed in the new dashboard. Before we ship 4.0 we’ll actually rewrite most of these to be proper gadgets and have upgrade tasks to convert the portlets over to gadgets. The look and feel should then be a lot more consistent. Moving gadgets from one dashboard to another is also planned. You’ll be able to drag the gadget simply to a dashboard tab to move it there.

    We’re also aware of the performance and memory issues currently and are looking into it. We should have some improvements in this area before we ship 4.0!


  • Javaholic, we havn’t done any performance tuning at all yet. The Engine Room team is just starting on this now. We hope to have at least par performance with 3.13 (apart from startup time which will almost inevitably be a bit smaller) and preferably be faster (like Confluence 3.0) than its predecessor.

    Matt, don’t worry, we watch this blog.

    Jamie, please don’t upgrade to any beta version, they are just for testing and development purposes.

  • > Jamie, please don’t upgrade to any beta version, they are just for testing and development purposes.

    Don’t worry, I won’t! But I have to get started on potential upgrade issues early, if I wait for GA we’ll be a long time before we upgrade, and the users will be clamouring for it.

    > http://www.tbray.org/ongoing/When/200x/2009/05/25/The-Wrath-of-Heaven

    Can’t believe that guy got so many comments! Personally I’ve never used a mac, so… I can’t say this will be a killer feature for me, although I have been bitten before by accidentally hitting the back button I admit. But right now, the “dirtiness” checking is not working quite right.

    Hope I didn’t come over as too negative… from my users’ point of view, the new filtering stuff is a huge stride in the right direction. Appreciate that the dashboard stuff is still maturing, will be very good when the bugs are ironed out no doubt.

    > The advanced -> simple query round-trip experience is unlikely to be improved – one of the main reasons for JQL was to solve a lot of the things that the ’simple’ editor could not support.

    Fair enough, but I’m sure the simple editor could support a category search. Still, categories are not super-useful, IMHO they need to allow for an unlimited hierarchy, where a category could contain other categories or projects. These could be displayed in a JS tree. For a megacorp like this it’s impossible to split the projects in to simple buckets.

    > You’ll be able to drag the gadget simply to a dashboard tab to move it there.

    Great, that’s what I was trying, think that’s the most intuitive action.

    Anyway, if I forgot to say, big congratulations on jira 4.

    cheers, jamie

  • Scott Harman

    I was pretty excited to play about with the v4 beta – performance is an issue on our dev platform but the new query language almost makes up for it.
    Surprised that the querying doesn’t allow partital matches on custom fields or versions – I’d like to search for all reported issues in “3.1.%” as an example, or “Customers is not NULL” or “Customers is NULL” i.e. where the customer field has been set, or the customer field has not been set as a logical test to see whether an issue is internal or external (and reported on behalf of a customer)
    Will post that in the beta feedback, but the response times to complex queries seems really quite good for a beta

  • mattdm

    Hi Jamie. Have you looked at all at updating the Groovy Runner plugin to Jira 4.0?

  • Hi Matt,

    Have not tried it yet but I don’t think certifying it for 4.0 will present any problems.

    cheers, jamie

Leave a Reply