Deadlock with openfire 4.6.4

After upgrading to 4.6.4, I will get a lot of connections in a while(maybe a week or a month). If I use ls /proc/pid/fd | wc -l , I will see more than 3000 connections. Normally it is about 800. I use jstack -l pid> threadDump.log command will get StreamManager deadlock. the following is a part of threadDump.log .

threadDump10051317.log (1.5 MB)

Found one Java-level deadlock:
=============================
"TaskEngine-pool-787":
  waiting for ownable synchronizer 0x00000006d681f520, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "TaskEngine-pool-769"
"TaskEngine-pool-769":
  waiting to lock monitor 0x00005639a8021cb8 (object 0x00000006b29a2b50, a org.jivesoftware.openfire.streammanagement.StreamManager),
  which is held by "TaskEngine-pool-765"
"TaskEngine-pool-765":
  waiting for ownable synchronizer 0x00000006d681f520, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "TaskEngine-pool-769"

Java stack information for the threads listed above:
===================================================
"TaskEngine-pool-787":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006d681f520> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
	at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:621)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-769":
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:996)
	- waiting to lock <0x00000006b29a2b50> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
	at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-765":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006d681f520> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
	at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
	at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUnavailableForDirectedPresences(PresenceUpdateHandler.java:490)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:167)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
	at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
	at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
	- locked <0x00000006b29a2940> (a java.util.HashMap)
	at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
	at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
	at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
	at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
	at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
	- locked <0x00000006b29a2b50> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:605)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:309)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:166)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
	at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
	at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
	- locked <0x00000006ac7a7e68> (a java.util.HashMap)
	at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
	at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
	at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
	at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
	at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
	- locked <0x00000006ac7ad388> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:605)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:309)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:166)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
	at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
	at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
	- locked <0x00000006b35efe20> (a java.util.HashMap)
	at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
	at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
	at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
	at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
	at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
	- locked <0x00000006b35f0030> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
	at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Found one Java-level deadlock:
=============================
"Jetty-QTP-BOSH-26722":
  waiting for ownable synchronizer 0x00000006b01d9500, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "TaskEngine-pool-532"
"TaskEngine-pool-532":
  waiting to lock monitor 0x00005639a6e504a8 (object 0x00000006ad5a85e8, a org.jivesoftware.openfire.streammanagement.StreamManager),
  which is held by "Jetty-QTP-BOSH-17488"
"Jetty-QTP-BOSH-17488":
  waiting for ownable synchronizer 0x00000006b01d9500, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "TaskEngine-pool-532"

Java stack information for the threads listed above:
===================================================
"Jetty-QTP-BOSH-26722":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006b01d9500> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
	at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
	at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
	at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:118)
	at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:69)
	at org.jivesoftware.openfire.websocket.StreamManagementPacketRouter.route(StreamManagementPacketRouter.java:61)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.processStanza(XmppWebSocket.java:246)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onTextMethod(XmppWebSocket.java:116)
	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
	at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
	at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:113)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:168)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:92)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
	at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
	at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-532":
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:996)
	- waiting to lock <0x00000006ad5a85e8> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
	at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
"Jetty-QTP-BOSH-17488":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006b01d9500> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
	at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
	at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
	at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUnavailableForDirectedPresences(PresenceUpdateHandler.java:490)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:167)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
	at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
	at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
	- locked <0x00000006ad5a83d8> (a java.util.HashMap)
	at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
	at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
	at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
	at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
	at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
	at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
	at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
	at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
	- locked <0x00000006ad5a85e8> (a org.jivesoftware.openfire.streammanagement.StreamManager)
	at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToBareJID(RoutingTableImpl.java:634)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:326)
	at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
	at org.jivesoftware.openfire.MessageRouter.route(MessageRouter.java:134)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:79)
	at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:111)
	at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:66)
	at org.jivesoftware.openfire.websocket.StreamManagementPacketRouter.route(StreamManagementPacketRouter.java:61)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.processStanza(XmppWebSocket.java:246)
	at org.jivesoftware.openfire.websocket.XmppWebSocket.onTextMethod(XmppWebSocket.java:116)
	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
	at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
	at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
	at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:113)
	at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:168)
	at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:92)
	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
	at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
	at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.lang.Thread.run(Thread.java:748)

Found 2 deadlocks.