[
https://issues.apache.org/jira/browse/GEODE-6822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16867035#comment-16867035
]
ASF subversion and git services commented on GEODE-6822:
--------------------------------------------------------
Commit a51015ac467336c0731c010f8918e4c6364e4d26 in geode's branch
refs/heads/develop from Jason Huynh
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=a51015a ]
GEODE-6822: Deploying jars only creates new classloader for the newly deployed
jar (#3537)
* Deserialized objects of classes unrelated to the latest deployed jar should
now compare correctly after an unrelated new jar is deployed
* This solution causes each deployed jar to create it's own class loader and
chains them together.
* The class loaders are now child first class loaders and If a class cannot
be found, it will search all 'sibling'/other deployed jars
* When a jar is redeployed (new version), we keep some meta data in a map so
we no longer crawl the 'old' jar when possible and only search through the
latest version of a specific jar.
* Java does some caching of classes and in the undeploy scenario, we may
still be able to load classes that have been "removed" from the new jar (only
if it was already cached by some other class loader). This can happen when we
have inter jar dependencies.
* Geode also caches classes, so whenever a redeploy occurs, the geode class
cache gets wiped, and first lookups take a minor performance hit, but
subsequent lookups go through geodes caching of the classes (so the for name
and class lookups through chaining should have a minimal impact)
> Deploying a jar causes a new class loader to be created, causing possible
> mismatch
> ----------------------------------------------------------------------------------
>
> Key: GEODE-6822
> URL: https://issues.apache.org/jira/browse/GEODE-6822
> Project: Geode
> Issue Type: Bug
> Reporter: Jason Huynh
> Assignee: Jason Huynh
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> When a jar is deployed, a new class loader is created. Deserialized objects
> in the system will no longer match because the objects classes are from
> different loaders. This is true even if the newly deployed jar is unrelated
> to the deserialized objects This can be problematic if we have non primitive
> region keys.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)