On StompProtocolManager, there is this code:
private StompSession getSession(StompConnection connection) throws Exception { StompSession stompSession = sessions.get(connection.getID()); if (stompSession == null) { stompSession = new StompSession(connection, this, server.getStorageManager().newContext(executor));
All sessions are sharing the same executor instance.
You should have each session with its own executor, just like it's done on HornetQPacketHandler.createSession:
server.getStorageManager() .newContext(server.getExecutorFactory().getExecutor()),
Notice the ExecutorFactory will be using a OrderedExecutor.
thanks clebert, i'll fix it.