[ 
https://issues.apache.org/jira/browse/PDFBOX-2685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14323290#comment-14323290
 ] 

Maruan Sahyoun commented on PDFBOX-2685:
----------------------------------------

OK - I looked at removing setDirect but it much more has the potential to cause 
regressions. In addition there are some assumptions in the current code about 
which objects have to be direct and which are not that IMHO are not inline with 
the spec.

So the current codes treats or marks objects as direct which are not required 
to be so (such as length for a cross reference stream) where others are not 
explicitly marked.

I'm a little uncertain about doing that in the 2.0 timeframe. OTOH the changes 
required would be API breaking and the current code of being able to 
potentially set everything to direct/indirect is not very useful. 

There are only a small number of items which have to be direct as there are 
some which shall be indirect. We would be better off to handle that 
specifically. Unfortunately e.g. COSWriter has not been built that way. 

WDYT?

> COS 'primitive' types are mutable
> ---------------------------------
>
>                 Key: PDFBOX-2685
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2685
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 1.8.8, 1.8.9, 2.0.0
>            Reporter: Tilman Hausherr
>            Assignee: Maruan Sahyoun
>             Fix For: 2.0.0
>
>
> From [~torakiki]:
> They are cached and they are mutable so this:
> {code}
>         COSInteger cosint = COSInteger.get(10);
>         cosint.setValue(50);
>         //lets move to a totally unrelated part of my software
>         System.out.println(COSInteger.get(10));
> {code}
> prints COSInteger(50) so basically I ask for a 10 and get a 50, isn't it 
> weird (and error prone)? ... or the way around, I call cosint.setValue(50) at 
> some point in the software and that makes it a 50 everywhere I used 
> COSInteger.get(10).
> That's of course also true for the other mutable attributes setDirect and 
> setNeedToBeUpdate.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to