Benjamin Papez created PDFBOX-1512:
--------------------------------------

             Summary: TextPositionComparator is not compatible with Java 7
                 Key: PDFBOX-1512
                 URL: https://issues.apache.org/jira/browse/PDFBOX-1512
             Project: PDFBox
          Issue Type: Bug
          Components: Text extraction
    Affects Versions: 1.7.1
         Environment: Java 7
            Reporter: Benjamin Papez


The TextPostionCompartor causes the following exception running on Java 7: 
Unexpected RuntimeException from 
org.apache.tika.parser.ParserDecorator$1@9007fa2 Original cause: Comparison 
method violates its general contract!

I think the problem is with this check:

if ( yDifference < .1 ||
    (pos2YBottom >= pos1YTop && pos2YBottom <= pos1YBottom) ||
    (pos1YBottom >= pos2YTop && pos1YBottom <= pos2YBottom))

as it violates the contract requirement:

The implementor must also ensure that the relation is transitive: ((compare(x, 
y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementor must ensure that compare(x, y)==0 implies that 
sgn(compare(x, z))==sgn(compare(y, z)) for all z.

Java 7 now is strict and throws exceptions when the contract is violated.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to