In my report, I define an image in the following way: -Image expression: new File("./path/to/image.jpg") -Expression class: java.io.File When I save the report design using iReport 5.1.0 the resulting jrxml image expression looks like this: <imageExpression><![CDATA[new java.io.File(".... What I want to have is this: <imageExpression class="java.io.File"><![CDATA[new File(".... Of course, when I close and open the report again in iReport, the field is reset to "java.lang.String". Is there something I am missing? Background: Ever since jasperreports 4.5 (?) I have had trouble with image expression paths, giving me a "byte data not found at location"-exception and producing empty PDFs with my Java application, that fills and compiles the reports and exports them as PDF. With jasper 5 I don't even get the exception any more, PDFs are just empty. Using a "new File()" was a workaround I could live with and that worked very well, but now it's just a pain in the butt: I have to open all edited jrxml files in an editor and add the image expression class tag myself (search -> replace). The reports compile and export just like they used to afterwards, as long as I don't change something using iReport 5.1.0 - because that removes the tag and Jasper defaults back to String.