-
Bug
-
Resolution: Unresolved
-
Blocker
-
7.0.1.Final
-
None
-
None
RESTEASY-3670 introduced ClientEntityOutputStream$PathHttpEntity, a private static inner class that instantiates EntityOutputStream$EntityInputStream directly:
// ClientEntityOutputStream.java (resteasy-client) private static class PathHttpEntity extends AbstractHttpEntity { private PathHttpEntity(final Path file) { this.file = file; this.content = new EntityInputStream(file); // <-- fails here } }
EntityInputStream was changed from private to protected in the same PR:
// EntityOutputStream.java (resteasy-core-spi) protected static class EntityInputStream extends InputStream { ... }
The problem is that protected access in Java means the member is visible to:
1. Classes in the same package (org.jboss.resteasy.spi)
2. Subclasses of the declaring class (EntityOutputStream)
ClientEntityOutputStream extends EntityOutputStream, so it can access EntityInputStream. However, PathHttpEntity is a static inner class of ClientEntityOutputStream – it does not extend EntityOutputStream. Therefore, the JVM denies access at runtime with:
java.lang.IllegalAccessError: failed to access class
org.jboss.resteasy.spi.EntityOutputStream$EntityInputStream
from class
org.jboss.resteasy.client.jaxrs.engines.ClientEntityOutputStream$PathHttpEntity
(... are in unnamed module of loader 'app')
- is caused by
-
RESTEASY-3670 With a small MaxDirectMemorySize size and a flood of POST requests an off heap OOME can occur
-
- Closed
-
- is triggered by
-
SWATCH-4569 Export requests for swatch-tally are not being consumed after latest production deployment
-
- Release Pending
-