[
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]