You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Svetlin Zarev (JIRA)" <ji...@apache.org> on 2018/01/08 11:33:00 UTC

[jira] [Resolved] (TOMEE-2102) IvmContext bind/unbind creates duplicate contexts

     [ https://issues.apache.org/jira/browse/TOMEE-2102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Svetlin Zarev resolved TOMEE-2102.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 7.0.4

Resolving, the pull request was merged a long time ago, but the ticket was forgotten

> 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
>             Fix For: 7.0.4
>
>
> 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)