Hello.
I have a multi-threaded solution: one provider sets data on a queue and N consumers dequeue the data and render PDF reports.
In every ~2000 reports there are up to 3 reports with no logo, displaying "Current report item is not supported in this report format" in its place.
It occurred a whole lot more (1 out of ~100) earlier, when all threads used the same template and image files. After creating a specific work space for each thread, it happened less (1 every ~350 reports). Then I started reloading image data for each report and reduced it to the present ratio.
Any help would be much appreciated; technical details are below.
Susana Domingos
The design template section regarding this image is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="
http://www.eclipse.org/birt/2005/design" version="3.2.22" id="1">
<property name="author">BNF05059</property>
<property name="createdBy">Eclipse BIRT Designer Version 2.6.2.r262_v20110209 Build <2.6.2.v20110214-1523></property>
[snip]
<page-header>
<image name="logo111" id="258">
<property name="marginLeft">15.2cm</property>
<property name="height">1.3123333333333336cm</property>
<property name="width">4.080933333333333cm</property>
<structure name="toc"/>
<property name="source">embed</property>
<property name="imageName">logo-w3.jpg</property>
</image>
</page-header>
[snip]
<list-property name="images">
<structure>
<property name="name">logo-w3.jpg</property>
<property name="data">
/9j/4AAQSkZJRgABAQEBLAEsAAD/4QDwRXhpZgAATU0AKgAAAAgACQExAAIAAAARAAAAegEyAAIAAAAU
[snip]
GpVnN8022/MKKKKzMwooooAKKKKACiiigD//2Q==
</property>
</structure>
</list-property>
</report>
The image reloading java code is:
byte[] imageData = getBytes(new File(theLogoFile));
EmbeddedImage embeddedImage = reportDesign.findImage(logoPlaceholderName);
embeddedImage.setData(imageData);
imageData = null;