JIRA Report plugins wirtten in version 4.4.3 are not working in JIRA 5.1

I recently updated the Jira 4.4.3 to the Jira 5.1. Some of the existing report plugins aren't working. All of them showing the following exceptions:

java.lang.IncompatibleClassChangeError: Found interface com.atlassian.jira.plugin.report.ReportModuleDescriptor, but class was expected

I've check the How to migrate a plugin from Jira 4.x to Jira 5.0 document, it said: If you do receive an error like this, then you need to recompile your plugin against JIRA 5.0 to ensure that your plugin utilises the new interface implementations in JIRA 5.0.

I've tried to run the commands for my report plugins project, but it still could not solve it:

atlas-run

atlas-mvn package

Would you please tell me how to solve this problem?

Thank you in advance

Best Regards

1 answer

This widget could not be displayed.

As the docs say, you need to recompile the plugins. It's no help telling us you've run atlas-run and packaging - if you've amended your code correctly, then those commands will produce plugins that at least install and show you something where your reports are. If you haven't updated the code correctly, then they'll give you error messages.

My best guess based on what you've said is that all you've done with your plugins is recompiled them, probably without updating the version they are aimed at. So, first steps - did you edit the pom.xml BEFORE you recompiled, and put in the new version of Jira?

Not a clue, I've let the development kit decide which ones to use when recompiling my plugins, never touched the packages it was pulling in.

Just to be clear, can you confirm what you've done for one plugin? I expect you would have:

  • Edit the pom.xml for the plugin to point at Jira 5.1
  • Atlas-run
  • Go into the Jira that is now running and checked the report works.

If that fails, then where exactly are the errors happening?

Hi Nic,

Thank you for your reply. I've updated the pom file by using the version 5.1 packages before I recompiled. The following dependencies (format groupId, ArtifactId, Version) are using in my report plugin pom file:

  • com.atlassian.jira, atlassian-jira, 5.1
  • com.atlassian.jira, jira-func-tests, 5.1
  • com.atlassian.jira, jira-rest-plugin, 5.1
  • com.atlassian.jira, jira-api, 5.1
  • com.atlassian.gadgets, atlassian-gadgets-api, 1.1.5.rc1
  • com.atlassian.gadgets, atlassian-gadgets-spi, 1.1.5.rc1
  • com.atlassian.plugins.rest, atlassian-rest-common, 1.1.0.beta6
  • com.atlassian.plugins.rest, atlassian-rest-common, 1.0.2
  • com.atlassian.sal, sal-api, 2.0.16
  • com.atlassian.templaterenderer, atlassian-template-renderer-api, 1.0.5

Would you please have check the lis if I used the correct version packages?

What I have done:

  • Edit the pom.xml for the plugin to use the Jira 5.1
  • Run Atlas-package
  • Copy the jar file to my local Jira at : ..\Application Data\JIRA\plugins\installed-plugins
  • Restart the Jira
  • Select one active project at the 'Projects' tab in the Jira
  • Request a report from the 'Reports' menu
  • Error found:

Not Found (404)

Found interface com.atlassian.jira.plugin.report.ReportModuleDescriptor, but class was expected

Could not find what you were looking for. Maybe you should raise an issue.

I checked the log file, the error stack is:
2012-07-18 09:37:14,423 http-9090-4 ERROR haohongl 577x241x1 1rh887h 127.0.0.1 /secure/ConfigureReport.jspa [jira.web.dispatcher.JiraWebworkActionDispatcher] Exception thrown from action 'ConfigureReport', returning 404
java.lang.IncompatibleClassChangeError: Found interface com.atlassian.jira.plugin.report.ReportModuleDescriptor, but class was expected
at com.qxlva.jira.reports.TimeLoggedOnDayRangeVelocityReport.buildHtmlTemplate(TimeLoggedOnDayRangeVelocityReport.java:271)
at com.qxlva.jira.reports.TimeLoggedOnDayRangeVelocityReport.buildVeloctiy(TimeLoggedOnDayRangeVelocityReport.java:229)
at com.qxlva.jira.reports.TimeLoggedOnDayRangeVelocityReport.buildUserReport(TimeLoggedOnDayRangeVelocityReport.java:139)
at com.qxlva.jira.reports.TimeLoggedOnDayRangeVelocityReport.generateReportHtml(TimeLoggedOnDayRangeVelocityReport.java:96)
at com.atlassian.jira.web.action.browser.ConfigureReport.doExecute(ConfigureReport.java:121)
at webwork.action.ActionSupport.execute(ActionSupport.java:165)
at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:82)
at webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:39)
at webwork.interceptor.NestedInterceptorChain.proceed(NestedInterceptorChain.java:31)
at webwork.interceptor.ChainedInterceptor.intercept(ChainedInterceptor.java:16)
..............................................

Hmm, I'd have expected atlas-package to throw errors and not let you compile the plugin, but we're going in the right direction.

You need to debug the changes in the report API - I have to admit to cheating here and using an IDE to do a lot of the work for me - if you open up your plugin project in an IDE (I tend to use Eclipse or Netbeans mostly, or IDEA sometimes, and there are of course, others), it will probably highlight the code that's incorrect. Unfortunately there's no easy cure - you'll need to work through the API docs and your code to work out what changes you need to make.

I tried to debug it in Eclipse, but it showed Source not found when I tried to step into the class JiraResourcedModuleDescriptor for method getHtml(String , Map<String, ?>). Would you please tell me how to get the source code?

Downloaded the atlassian-jira-5.1-source.zip from Atlassian website and tried to debug the source code for

Found interface com.atlassian.jira.plugin.report.ReportModuleDescriptor, but class was expected

The problem still can't be solved.

I don't think downloading the source and trying to "debug" or include it is going to help much. You need to look at the calls you are making in your code, and re-work them to use the new API with valid calls.

Start at http://docs.atlassian.com/software/jira/docs/api/latest/ and look for the report module descriptor in there.

I'd also look at the current documentation on developing reports - maybe knock up a really simple sample from the examples there and see how that differs from your code.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in New to Jira

Are you planning to trial, or are currently trialling Jira Software? - We want to talk to you!

Hello! I'm Rayen, a product manager at Atlassian. My team and I are working hard to improve the trial experience for Jira Software Cloud. We are interested in   talking to 20 people planning t...

119 views 2 0
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you