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]

Reply via email to