For example, TP.timer is set to TP.stack.timer. TP.stack belongs to an individual channel, not to the set of channels associated with a shared transport.
Disconnect the first channel and the others go boom.
Did a quick scan of usage of the 'stack' field or the 'getProtocolStack()' method in TP and its subclasses. This usage for the timer is one. Others are:
1) TCP.getConnectionTable calls cTable.setThreadFactory(getProtocolStack().getThreadFactory());
2) handleDiagnosticProbe uses stack.getChannel()