[#5784] - Attribute 'uuid' is not allowed to appear in element

Category:
Bug report
Priority:
High
Status:
Assigned
Project: Severity:
Critical
Resolution:
Not Fixable
Component: Reproducibility:
Always
Assigned to:

I have installed iReport 4.6.0 and imported reports built with previous version. I modified it and when i published the updated report to my JasperServer 4.5, it crashed with the following error:

com.jaspersoft.jasperserver.api.JSExceptionWrapper: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element '...'.

I opened the xml file generated by the 4.6.0 and i noticed an 'uuid' attribute on each element (jasperReport, reportElement, jr:column, ...).

federico.cattozzi's picture
Joined: Sep 22 2009 - 4:34am
Last seen: 8 years 10 months ago

27 Comments:

#1

Hi, this is a JasperReports related problem. In 4.6.0 the new attribute uuid has been introduced. Technically, if you select the compatibility mode in iReport preferences, you should not experience the problem, but if you are using tables, you will get this error since the table is a custom component and it is not possible for iReport to intercept code not compatible with previous JasperReports versions.
Wordaround: open the jrxml code and remove all the uuid attributes, save and reopen with an older version of iReport.

Giulio

#2

You are right, now I have this problem only with jr:column.
Thank you

#3

I am having the same problem. However, I am not using JasperReports server.

We are using iReports 4.6.0 with jasperreports 4.6 jars.

Steps to reproduce:
1. Open jrxml file in 4.5 format.
2. Change something.
3. Save.
4. UUID added anywhere.
5. Close and re-open jrxml.
6. Error as described.

Maybe some xsd wrong?

#4

I have come across this problem as well and I would be very interested in a solution for it.

#5

1 - org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'

So WHY is 4.6.0 STILL available on the download site?
and WHY does the compatibility mode not default to something lower ,with a user warning?

I just spent 4 hours on a customers job making modifications with the new 4.6.0 and now all the reports are failing:

#6

Jrxml produced with newer versions of the library are not declared to be compatible with older versions of JR (even if you can use newer version of the library with old reports).
This is clearly stated in the JasperReports documentation, but more than that this is the only way to be able to improve the library and the designer, see?
We are aware that some time this such of improvements may cause troubles. This was the case when we removed the "class" attribute to the expressions. But how easier is for someone new don't have to think about specify a java type for an expressions (especially if this person does not even know what a java type is...).
We do our best to keep iReport and JasperReports versions in sync. iReport 4.6.0 comes with JasperReports 4.6.0. If you are using an older version of JasperReports, you should use an older version of iReport to be 100% sure you will not break your jrxmls (and by the way to produce valid jasper files), or either a newer version of JasperReports (or JasperReports Server, if available).

Anyway, you should be able to easily fix the problem by stripping out the uuid attributes from your jrxmls.

Thanks

Giulio

#7

Hi, I do not understand it. Is this a bug or not?
From the comment I think to understand it is not considered a bug. But with fresh install of 4.6.0 (which includes jasperreport 4.6.0) I am having this problem?

Am I doing something wrong or is the release not stable?

#8

Giulio,
It really is not acceptable no matter what spin you put on it.
I have no problem with you making 'updates' , but to suddenly implement something as radical as this without CLEARLY outlining it is unacceptable.

It has the potential to create a MASSIVE amount of work and cost.
The CORRECT way to implement this would be to store a jasper report revision number with the report and then ASK the user before back stuffing details that are likely to radically BREAK the reporting systems. Especially for production.

If the user selects NO, then the design system should AUTOMATICALLY drop its features to match the level of the report that was read in.

My customer is fairly well pissed.
Because I used the latest Ireports designer. The work i produced for him was broken on his server.

Not to mention that now I have to maintain MULTIPLE design environments depending on what server each of my customers have installed.
Please don't maintain such a myopic view of HOW reports are developed and utilized.

monty241070, its not a 'bug' just an ill conceived update.

#9

totally unacceptable for this sort of update. Developer not going to maintain different version for new and old ya.
Last time we complain Microsoft for their un-considering....now iReport.

#10

i think to be fair to everyone, iReport should provide sort of converter to convert last version to new latest version converter. Example version 4.5 to version 4.6 but not for version 4.4 to latest version 4.6. If version 4.4 want to sync with version 4.6, the developer have to go thru the version 4.5 converter before it can be sync 4.6.
Everyone do their part...because we still looking forward for new features added on yet simplify developer to update their version as well. Added new features surely is a must cause competitive market and user friendliness ya.
Hope i m not asking too much from iReport Team.
Anyway, iReport team have done the good job ya.

#11

Will you come out with some converter from old version 4.5 to new 4.6 ?
We have plenty of reports awaiting to convert ya.

#12

Here is a quick and dirty xslt that will strip out the pesky uuid attribute you can run your jrxml files through this using xsltproc or whatever similar tool you might use:

<xsl:stylesheet id="style1"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="@uuid" />
</xsl:stylesheet>

#13

I think this issue still need some clarification. The issue is not related to JasperReports server, but is a attribute introduced in the jrxml by JasperReports. This new attribute (uuid) is specified for each element. If you are using an old version of JasperReports (<4.6), you need to set in iReport the compatibility mode. Otherwise you have to upgrade. Use the compatibility mode still fails in case of component based elements (table, lists).

I would finally make clear that this is not a bug, simply
JasperReports does not assure an old version of the library to work with a newer report format.

In terms of migration (4.5 to 4.6), this should not be a problem, JasperReports assures an old version of a report to work with a newer version of the library.

Giulio

#14

Giulio, with all respect…please stop trying to spin it.
It has cost a lot of people a lot of time and effort.

The product should be far more 'stable", using a more up todate report generator should not cause the server to "puke".
The server should be far more rugged as regards to rejecting elements it does not understand.

it would be a good time to introduce a system where updates can be flagged in version numbers stored in the report, then "features" that are not present ignored.

And it IS a bug, because:
"A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result"(http://en.wikipedia.org/wiki/Software_bug)

AS one of my customers said, "the project has some real potential, if it was not for the continued damned flakiness of the components"

#15

Harfcorefs, I totally agree with you, and this sounds like a clear message about where the product should be strongly improved.
You are right in particular about the fact that must be something that prevents errors like that.

Today compatibility is managed by iReport, which allows users to generate code compatible with older versions of JR (compatibility mode). This is done adding inside iReport old JasperReport jrxml writers.
But this should be done by JasperReports, not by iReport, and this is what we are trying to push with the JasperReports team.

Giulio

#16

I wanted to use a report I had made in iReports 4.0.0 to iReports 4.6.0
I saved the report to a new name but iReport could not re-open it - gives the uuid error. I then set the file compatibility to 4.5 and closed the options dialog and saved again - this worked.

My question is: I cannot use this file again except with this compatibility mode - I would have to start again from scratch or edit the jrxml outside of iReport to remove the uuid?

#17

I just wanted to add my experience quickly to the comments. I opened an old Jasper 3.5 report - modified it using iReport 4.7 - then I tried to post it to Jasper Server 4.5, and received the UUID error. I used the compatibility trick to back save my report to 4.5 and it worked.

However, what I wanted to add was that reports that I open (that are currently loaded on Jasper Server 4.5 and created by ireport 4.5) can be opened and modified in iReport 4.7 and successfully loaded back to the server without this issue.

I add this only because I had not seen any reference to the 4.7 version of iReport in the comments above.

#18

I am currently evaluating jasper reports for use within our organization.

I downloaded the latest jasper server (4.5.0) from http://jasperforge.org/projects/jasperserver and the latest iReport Designer (4.6.0) from http://jasperforge.org/projects/ireport, however, I ran into the impedance mismatched reported in this bug report.

This is a confusing hurdle for new users, given that the versions of these two pieces of software available on the website are not compatible with each other.

#19

I'm need a workaround for this.

#20

Please fix that bug!

#21

I am being hit by the same bug - I find this ridiculous that it is not fixed immediately. I will be looking at a Pentaho solution if this is not fixed soon.

#22

I don't know if this could be useful but I have the same problem from JasperServer 4.5.0 to JasperServer 4.7.0.
I've imported all my reports from 4.5.0 TO 4.7.0 and everything was alright. Reports are running under JasperReports 4.7.0. I try to open the report unit from iReport 4.7.0 and I optain the same 'uuid-trouble'. Why must I set compatibility to 4.5.0 if I'm working with iReport and jasperreports 4.7.0 ... ??? I want to use tamplates on my 4.7.0 not on my 4.5.0 !!!

#23

This is a BUG! You add functionality and then dont know what to do with it?

#24

Please fix this it is really annoying. I can't understand why the resolution is set to "not fixable" - just create a new xsd for newer versions that supports uuid?!

#25

My observation on this:
- recently (Jan 4th) installed jasper server 5.0 CE with bundled iReport and was confused to see that it had installed iReport 4.8
- separately installed iReport 5.0 CE
- when I create a new report from scratch in iReport 5.0 I get this error after giving report a name. The report designer pane is blank.
- if I then manually remove the uuid element from the XML then the designer pane shows the bands as normal and the report becomes editable
- after adding elements to the report and previewing, the XML now includes the uuid elements again. However, the report appears to be working and can be uploaded to server where it also appears to be working.

So:

Why is server 5.0 bundled with iReport 4.8?

Why does this error occur when creating a new report in the latest version of iReport? And why does the error then go away after removing the uuid element and compiling the report (at which time the uuid element is present again)?

#26

Following previous comment, I got the new report working on the server, closed it in iReport, then re-opened it in iReport from the server -> error happened again.

This is extremely annoying and can only be described as a bug. There is no way to spin this as anything else. There are no version compatibility issues because everything has been created in iReport 5.0 and deployed only to server 5.0.
This really does need to be fixed with very high priority.

I will be trialling the professional edition as well because our requirements include ad hoc reporting. I sincerely hope that this bug is not present there.

#27

Hi, I also came across that issue and my solution was not to import old settings from previous releases.
So I fixed it by deleting c:\%HOMEPATH%\.ireport\5.0.1. Open iReport again but cancel the import settings.
Thanks to this guy http://thinkinginsoftware.blogspot.co.at/2012/10/ireport-attribute-uuid-...

Regards, Peter

Feedback