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

ASF subversion and git services commented on OPENJPA-3071:
----------------------------------------------------------

Commit baf3086b39fad9318d85d4b7c99fdd86734fbccc in openjpa's branch 
refs/heads/OPENJPA-2935 from Richard Zowalla
[ https://gitbox.apache.org/repos/asf?p=openjpa.git;h=baf3086b3 ]

[OPENJPA-3071] Find persistent types of remote commit events that are not 
loaded yet

A remote commit event can name a persistent subclass that the receiving
node has not loaded yet. Ignoring it left cached query results of its
superclass stale. Resolve names the repository does not know through the
configured class loader without initializing the class, and only accept
enhanced or configured persistent types, which are then initialized and
get their metadata. The static PCRegistry is no longer consulted, so types
of other class loaders with the same name are not picked up.

The name lookup of the repository's metadata is built once per event and
duplicate names are skipped, instead of resolving all metadata again for
every name that is not known.

Document that events of the JMS provider are deserialized by the JMS
client, which the serialization blacklist of OpenJPA does not cover.


> Resolve type names of remote commit events through the metadata repository
> --------------------------------------------------------------------------
>
>                 Key: OPENJPA-3071
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-3071
>             Project: OpenJPA
>          Issue Type: Improvement
>            Reporter: Richard Zowalla
>            Assignee: Richard Zowalla
>            Priority: Major
>             Fix For: 4.2.0
>
>
> When a remote commit event arrives, the data and query caches turn the type 
> names it contains into classes with Class.forName, which also loads and 
> initializes classes that are not persistent types. Look the names up in the 
> metadata repository instead and ignore unknown names. Also check the 
> interface names of dynamic proxies when OpenJPA reads serialized objects, 
> like it does for class names.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to