I didn't get into it before, but my first gut reaction is .. delete that thing! :)
Anyway, it seems to have to many references, so I would advise investigating how it is constructed to understand what is being pulled in. Just begin from the container loader and work your way down with a debugger until you hit exactly the reason why this check was in place. I find this code a bit ugly, and I'd rather get rid of it if doesn't add any value (and I think it doesn't) On Wed, Jul 18, 2018 at 6:53 PM, Mathieu Lirzin <[email protected]> wrote: > Hello, > > ‘MapStack’ is a specialization of the ‘MapContext’ class which is an > implementation of ‘Map’ interface that has the particularity to store > its key-values in separate sub-maps that can mask each others. > > The whole point of ‘MapStack’ implementation is to override the Map > accessors to ensure that the key "context" is associated with ‘this’ > meaning the ‘MapStack’ instance. > > --8<---------------cut here---------------start------------->8--- > @Override > public Object get(Object key) { > if ("context".equals(key)) { > return this; > } > return super.get(key); > } > > @Override > public Object get(String name, Locale locale) { > if ("context".equals(name)) { > return this; > } > return super.get(name, locale); > } > > @Override > public Object put(K key, Object value) { > if ("context".equals(key)) { > if (value == null || this != value) { > Debug.logWarning("Putting a value in a MapStack with key > [context] that is not this MapStack, will be hidden by the current MapStack > self-reference: " + value, module); > } > } > return super.put(key, value); > } > --8<---------------cut here---------------end--------------->8--- > > I don't understand the purpose of such thing. So if someone has some > rationale to share, I would be grateful. > > Thanks. > > -- > Mathieu Lirzin > GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
