Alexios Giotis commented on FOP-2307:

I was not able to reproduce this in FOP 1.1 or trunk by executing
fop -fo _border.fo -pdf _border.pdf

What do you reproduce it ?

I assume that many PDFs are created since there are "hashCode() collisions". 
This is an INFO message to inform that a FOP internal cache is not optimally 
used and it should not be related to any color problems.

In more details, this means that the FOP internal cache is filled with 
org.apache.fop.fo.properties.ColorProperty objects that have the same hashCode 
but are not equal. The key of the cache is the hashCode so only one of them can 
be cached. New instances are created for the other ones, so there is a 
suboptimal use of the cache.

Having a look at the code, this happens when ColorProperty objects (put in the 
cache) have a color that is an instance of  
org.apache.xmlgraphics.java2d.color.ColorWithAlternatives. In that case, the 
hashCode is generated using only the RGB value of the java.awt.Color and not 
taking into account the alternativeColors.

I could submit a patch to avoid collisions and make better use of the cache but 
I don't think it will resolve the main issue reported here.

> Weird border color inheritance (hashCode collisions)
> ----------------------------------------------------
>                 Key: FOP-2307
>                 URL: https://issues.apache.org/jira/browse/FOP-2307
>             Project: Fop
>          Issue Type: Bug
>          Components: pdf
>    Affects Versions: 1.1
>         Environment: Windows 7/64-bit, Oracle JDK 7.0.45 64-bit
>            Reporter: Jan Tošovský
>              Labels: border, cmyk, color
> When I define an object with a specific border and the thickness of this 
> border matches with the one defined in the static-content, the latter color 
> is used instead. But it appears only if my object color is specified using 
> the pseudo #CMYK profile.
> It can be tested with this simplified test case:
> http://drifted.in/other/_border.fo
> http://drifted.in/other/_border.pdf
> The first object border uses the standard color so it is unaffected.
> The second is affected.
> The third uses a different thickness (3.5pt instead of 2.5) so it is also 
> unaffected.
> In the generating log there are lot of following hashCode collisions so I 
> suppose it relates together:
> X 23, 2013 5:09:34 ODP. org.apache.fop.fo.properties.PropertyCache fetch
> INFO: 60 hashCode() collisions for org.apache.fop.fo.properties.ColorProperty
> X 23, 2013 5:09:34 ODP. org.apache.fop.fo.properties.PropertyCache fetch
> INFO: 70 hashCode() collisions for org.apache.fop.fo.properties.ColorProperty

This message was sent by Atlassian JIRA

Reply via email to