Thanks Svetlin - I'll review later today. I'm currently getting some IvmContextTest test failures on master - I'll send over a list. Happy to help fix these.
Jon On Thu, Jul 20, 2017 at 9:19 AM, ASF GitHub Bot (JIRA) <j...@apache.org> wrote: > > [ https://issues.apache.org/jira/browse/TOMEE-2102?page= > com.atlassian.jira.plugin.system.issuetabpanels:comment- > tabpanel&focusedCommentId=16094340#comment-16094340 ] > > ASF GitHub Bot commented on TOMEE-2102: > --------------------------------------- > > GitHub user SvetlinZarev opened a pull request: > > https://github.com/apache/tomee/pull/94 > > TOMEE-2102: IvmContext bind/unbind creates duplicate contexts > > > > You can merge this pull request into a Git repository by running: > > $ git pull https://github.com/SvetlinZarev/tomee fixBindUndbind > > Alternatively you can review and apply these changes as the patch at: > > https://github.com/apache/tomee/pull/94.patch > > To close this pull request, make a commit to your master/trunk branch > with (at least) the following in the commit message: > > This closes #94 > > ---- > commit 12bf481e9bdbaec232c655abb63e1fd496d98fdd > Author: Svetlin Zarev <svetlin.za...@sap.com> > Date: 2017-07-20T06:44:11Z > > Add tests that verify the behaviour of IvmContext bind/unbind > > ---- > > > > IvmContext bind/unbind creates duplicate contexts > > ------------------------------------------------- > > > > Key: TOMEE-2102 > > URL: https://issues.apache.org/jira/browse/TOMEE-2102 > > Project: TomEE > > Issue Type: Bug > > Reporter: Svetlin Zarev > > > > Imagine you have the flowing context "a/b/object". The context tree can > be created in two ways: > > 1. Relative to the root or some > > {code} > > IvmContext root = IvmContext.createRootContext(); > > root.bind("a/b/object", new Object); > > {code} > > 2. Relative to some node: > > {code} > > IvmContext root = IvmContext.createRootContext(); > > root.bind("a", null); > > IvmContext a = root.lookup("a"); > > a.bind("b", null); > > IvmContext b = root.lookup("b") > > a.bind("object", new Object()) > > {code} > > So when one looks up "object" or "a" or "b" or object, one has to get > the very same result regardless if the context tree was created by 1 or by > 2. Yet this is not the case when it comes to the IvmContext. Maybe the most > obvious (and shocking) issue is that IvmContext allows to bind 2 different > objects to the same name ! Example: > > {code} > > IvmContext root = IvmContext.createRootContext(); > > root.bind("a/b/object", new Object()); > > IvmContext b = (IvmContext) root.lookup("a/b"); > > //already bound from root -> must fail, yet it does not > > b.bind("object", new Object()); > > {code} > > I've provided various test cases for different combinations of > bind/unbind/lookup that reproduce the issue. > > > > -- > This message was sent by Atlassian JIRA > (v6.4.14#64029) >