[ 
https://issues.apache.org/jira/browse/PDFBOX-3794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Miro Mannino updated PDFBOX-3794:
---------------------------------
    Description: 
In 2.0.3 there wasn't hashCode implemented in TextPosition, and for me that was 
fine. Same instance, same hashCode.

In 2.0.6 the hashCode is now checking the fields values, which is reasonable. 
But, the hashCode in the same instance can have different results.

The problem is in the `direction` field, which is -1.0 and initialised only 
when getDir is called the first time.

For now as workaround, anytime (or just the first time) I need the 
textPosition's hashCode I call getDir before that. 

Quick example:

{code}
Object getObjectFromTextPos(TextPosition textPos) {
    textPos.getDir();
    return someHashMap.get(textPos);
}
{code}

I don't know the reason of the late assignment to direction, but I would say 
that the hashCode should call getDir() instead of getting the field

  was:
In 2.0.3 there wasn't hashCode implemented in TextPosition, and for me that was 
fine. Same instance, same hashCode.

In 2.0.6 the hashCode is now checking the fields values, which is reasonable. 
But, the hashCode in the same instance can have different results.

The problem is in the `direction` field, which is -1.0 and initialised only 
when getDir is called the first time.

For now as workaround, anytime (or just the first time) I need the 
textPosition's hashCode I call getDir before that. 

Quick example:

Object getObjectFromTextPos(TextPosition textPos) {
    textPos.getDir();
    return someHashMap.get(textPos);
}

I don't know the reason of the late assignment to direction, but I would say 
that the hashCode should call getDir() instead of getting the field


> Problem in TextPosition implementation
> --------------------------------------
>
>                 Key: PDFBOX-3794
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3794
>             Project: PDFBox
>          Issue Type: Bug
>            Reporter: Miro Mannino
>              Labels: easyfix
>
> In 2.0.3 there wasn't hashCode implemented in TextPosition, and for me that 
> was fine. Same instance, same hashCode.
> In 2.0.6 the hashCode is now checking the fields values, which is reasonable. 
> But, the hashCode in the same instance can have different results.
> The problem is in the `direction` field, which is -1.0 and initialised only 
> when getDir is called the first time.
> For now as workaround, anytime (or just the first time) I need the 
> textPosition's hashCode I call getDir before that. 
> Quick example:
> {code}
> Object getObjectFromTextPos(TextPosition textPos) {
>     textPos.getDir();
>     return someHashMap.get(textPos);
> }
> {code}
> I don't know the reason of the late assignment to direction, but I would say 
> that the hashCode should call getDir() instead of getting the field



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to