We have a couple of clients running Windows 7 64 bit application server. Reports that are working with other installations (including other Windows 7 64 bit) are failing on these installs, because of some permission problem. We pass some parameters containing the images for the header and footer to the report. When we remove the images (nothing is passed to the report), the report works fine. We know the header and footer images are fine, since they work with all other installs and the same reports. The Java console output shows the following error details:
ERROR - Debug - Throwable
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : net.sf.jasperreports.engine.util.JRImageLoader.loadImage((byte[])$P{pHeader})
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:193)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:570)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:538)
at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:868)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:910)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:891)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:256)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:482)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:308)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:244)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:110)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:923)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:59)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperPrint(JasperReportRunner.java:244)
at com.servoy.plugins.jasperreports.JasperReportsServer.getJasperPrint(JasperReportsServer.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.servoy.plugins.jasperreports.JasperReportsServer_Stub.getJasperPrint(Unknown Source)
at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:369)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:290)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_jasperReport(JasperReportsProvider.java:274)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:353)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
at org.mozilla.javascript.gen.c173._c0(runOneReport:509)
at org.mozilla.javascript.gen.c173.call(runOneReport)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3127)
at org.mozilla.javascript.gen.c173.call(runOneReport)
at com.servoy.j2db.scripting.Ztb.executeFunction(Ztb.java:196)
at com.servoy.j2db.Zwb.Za(Zwb.java:741)
at com.servoy.j2db.Zwb.Za(Zwb.java:1223)
at com.servoy.j2db.Zwb.Za(Zwb.java:644)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:37)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: net.sf.jasperreports.engine.JRException: javax.imageio.IIOException: Can't create cache file!
at net.sf.jasperreports.engine.util.JRJdk14ImageReader.readImage(JRJdk14ImageReader.java:58)
at net.sf.jasperreports.engine.util.JRImageLoader.loadImage(JRImageLoader.java:245)
at Projects324532Master32Checklists_1268332368510_226654.evaluate(Projects324532Master32Checklists_1268332368510_226654:203)
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:182)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:570)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:538)
at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:868)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:910)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:891)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:256)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:482)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:308)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:244)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:110)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:923)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:59)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperPrint(JasperReportRunner.java:244)
at com.servoy.plugins.jasperreports.JasperReportsServer.getJasperPrint(JasperReportsServer.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.imageio.IIOException: Can't create cache file!
at javax.imageio.ImageIO.createImageInputStream(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at net.sf.jasperreports.engine.util.JRJdk14ImageReader.readImage(JRJdk14ImageReader.java:54)
... 33 more
Caused by: java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at javax.imageio.stream.FileCacheImageInputStream.<init>(Unknown Source)
at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(Unknown Source)
... 36 more
It would appear that the images are being written as a temp file somewhere, that Jasper is then attempting to read, without success. Any ideas on where the cache file is supposed to be created?