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

Tim Allison commented on COMPRESS-721:
--------------------------------------

{noformat}
Caused by: java.lang.reflect.InaccessibleObjectException
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at 
java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
        at 
org.apache.commons.lang3.reflect.FieldUtils.getField(FieldUtils.java:205)
        at 
org.apache.commons.lang3.reflect.FieldUtils.readField(FieldUtils.java:450)
        at 
org.apache.commons.compress.harmony.unpack200.Pack200UnpackerAdapter.readField(Pack200UnpackerAdapter.java:138)
        at 
org.apache.commons.compress.harmony.unpack200.Pack200UnpackerAdapter.unwrap(Pack200UnpackerAdapter.java:155)
        at 
org.apache.commons.compress.harmony.unpack200.Pack200UnpackerAdapter.newBoundedInputStream(Pack200UnpackerAdapter.java:75)
        at 
org.apache.commons.compress.harmony.unpack200.Archive.<init>(Archive.java:79)
        at 
org.apache.commons.compress.harmony.unpack200.Pack200UnpackerAdapter.unpack(Pack200UnpackerAdapter.java:193)
        at 
org.apache.commons.compress.compressors.pack200.Pack200CompressorInputStream.<init>(Pack200CompressorInputStream.java:141)
        at 
org.apache.commons.compress.compressors.pack200.Pack200CompressorInputStream.<init>(Pack200CompressorInputStream.java:175)
        at 
org.apache.commons.compress.compressors.pack200.Pack200CompressorInputStream.<init>(Pack200CompressorInputStream.java:128)
        at 
org.apache.commons.compress.compressors.CompressorStreamFactory.createCompressorInputStream(CompressorStreamFactory.java:636)
        at 
org.apache.commons.compress.compressors.CompressorStreamFactory.createCompressorInputStream(CompressorStreamFactory.java:584)
        at o.a.t.parser.pkg.CompressorParser.parse(CompressorParser.java:236)
        at o.a.t.parser.CompositeParser.parse(CompositeParser.java:298)
        ... 27 more
{noformat}

> Pack200 and jdk > 16
> --------------------
>
>                 Key: COMPRESS-721
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-721
>             Project: Commons Compress
>          Issue Type: Task
>            Reporter: Tim Allison
>            Priority: Minor
>
> On regression tests on Apache Tika comparing 4.x (jdk 17) against 3.x (jdk 
> 11), we noticed new exceptions on pack200 files:
> {noformat}
> Caused by: java.lang.reflect.InaccessibleObjectException
>       at 
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
>       at 
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
>       at 
> java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
>       at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
>       at 
> org.apache.commons.lang3.reflect.FieldUtils.getField(FieldUtils.java:205)
>       at 
> org.apache.commons.lang3.reflect.FieldUtils.readField(FieldUtils.java:450)
>       at 
> org.apache.commons.compress.harmony.unpack200.Pack200UnpackerAdapter.readField(Pack200UnpackerAdapter.java:138)
> {noformat}
> We can use {{--add-opens java.base/java.io=ALL-UNNAMED}}, but a cleaner fix 
> would be to refactor the reflection unpack200.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to