Why does the following code call twice the paint bean on FF (when the page is loaded) and never on MSIE 8 ???
On FF, I see the paint object called twice (and the same PDF is always displayed).
<rich:panel> <h:panelGrid id="previsu"> <a4j:mediaOutput element="object" value="constante" uriAttribute="data" createContent="#{ReportBean.paint}" mimeType="application/pdf" id="pdf-preview" cacheable="false" session="true" width="300" height="300"> </a4j:mediaOutput> </h:panelGrid> </rich:panel> Bean public void paint(OutputStream out, Object data) throws IOException { i++; File file= null; log.info(" Debug called " + i); // flip flop between two test files... if (i % 2 == 0) file = new File("c:/temp/File2.pdf"); else file = new File("c:/tempFile1.pdf"); FileInputStream in=null; byte[] bytes; try { in = new FileInputStream (file); long length = file.length(); if (length > Integer.MAX_VALUE) { throw new IOException("The file is too big"); } // Create the byte array to hold the data bytes = new byte[(int)length]; // Read in the bytes int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=in.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; } // Ensure all the bytes have been read in if (offset < bytes.length) { throw new IOException("The file was not completely read: " + file.getName()); } } finally { if (in != null) { in.close(); } } log.info("Paint " + bytes.length + "bytes"); out.write(bytes); }