
Hi all, I am implementing the new MDC methods in the Log4j2 bridge and I have some questions on the behavior of the `popByKey/pushByKey`, that I couldn't resolve reading the Javadoc[1]. Regarding 'pushByKey(key, value)': * can the key be null? The `BasicMDCAdapter` implementation does not allow it/ignores it, but this could be a good way to reference Reload4j/Log4j's NDC, * can the value be null? The current implementation does not allow them and the Deque Javadoc discourages adding null to a deque, but SLF4J Javadoc is not precise in this matter (e.g. it does not contain '@throws NullPointerException if the value is null'), * is the Deque limited in size? Regarding `popByKey(key, value)': * the Javadoc suggests that popping an empty stack returns null, while the `BasicMDCAdapter` implementation delegates to `Deque#pop()` which throws a `NoSuchElementException`. Is it a bug or an undocumented feature? By comparison popping the NDC in Log4j/Reload4j returns null if the stack is empty, while Log4j2 throws an exception. Piotr [1] https://www.slf4j.org/api/org/slf4j/MDC.html