[ https://issues.apache.org/jira/browse/PDFBOX-4956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17194285#comment-17194285 ]
Jörg Waßmer commented on PDFBOX-4956: ------------------------------------- Furthermore, the static fields for the caches should be final, And COSName.clearResources() has no need to be synchronized, since using ConcurrentHashMap. > COSName.hashCode initialized after put to cache, instead before > --------------------------------------------------------------- > > Key: PDFBOX-4956 > URL: https://issues.apache.org/jira/browse/PDFBOX-4956 > Project: PDFBox > Issue Type: Bug > Affects Versions: 2.0.21 > Reporter: Jörg Waßmer > Priority: Major > > In the constructor org.apache.pdfbox.cos.COSName.COSName(String, boolean), > the field COSNam.hashCode becomes initialized after the COSName instance has > been added to the cache. > Thus, concurrent threads using the cached instance may see different values > in COSName.hashCode(). > > Just to mention, that's another problem: > The whole caching is quite dirty, because it leaks memory if the application > is not aware of calling COSName.clearResources(). > Ideally, the class COSName would not exist at all, since it has no benefit > over using strings directly. Of course, it would be quite a hard work to get > rid of it. > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org