OF-2289: Do not use Interner<String>
com.google.common.collect.Interner is not safe when used with Strings: as with String.intern(), an equal string value could end up being used as a mutex for unrelated code blocks (introducing the risk of deadlocks between code blocks that have no functional relation).
When an Interner instance is used with anohter immutable type, the generated mutexes are local to the Interner instance. This allows, for example, for the same JID value to be used with two different Interner instances, without the resulting mutexes influencing each-other.
This commit replaces all occurrances of Interner<String>.
OF-2315: Don't attempt to reply to IQ responses
An IQ 'result' or 'error' stanza cannot be responded to. Attempting to do so might cause endless loops of responses to responses, if the code would not have nullpointered out because of a lack of child element to respond to.
OF-2315: First log, then process
By first logging the error condition, the log file will contain a cause for the problem if processing the problem generates a (new) stacktrace (which hides the original one).
Emiel van der Herberg <emiel.van.der.herberg@marviq.com>
f62f8f6f9e674b387f1a689582f0d529ebccd72b
OF-2314 Kill s2s local connection if it already exists elsewhere in the cluster we are joining.