rzo1 opened a new pull request, #292: URL: https://github.com/apache/openjpa/pull/292
https://issues.apache.org/jira/browse/OPENJPA-3071 Type names in remote commit events are no longer turned into classes with `Class.forName(name, true, ...)`. `Caches.addTypesByName` resolves a name only to a persistent type of the persistence unit: from the cached metadata, or through the unit's class loader without initializing the class, accepting it only if it is persistent (enhanced or configured) and has metadata. Other names are ignored (trace log). A persistent subclass that is not loaded yet on the receiving node is still found, so cached queries on its superclass are invalidated. `Serialization.ClassResolvingObjectInputStream` now overrides `resolveProxyClass` and checks every interface name of a dynamic proxy against the class blacklist, like it does for class names. The TCP provider reads events through this stream. The reference guide notes that the JMS provider's `ObjectMessage`s are deserialized by the JMS client, so the deserialization filtering of the JMS provider has to be configured (in line with the security model). New `TestRemoteCommitTypeNames` and `TestRemoteCommitUnloadedSubclass` (both fail without the change), extended `TestSerializationClassResolving`; data cache, query cache and remote commit tests pass on the embedded database. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
