title: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method
body: <p>my code:</p>
  
  <pre><code>myStompClient = new WebSocketStompClient(new SockJsClient(list));
  mySession = myStompClient
          .connect(WEBSOCKET_URI, bankHeaders, new StompSessionHandlerAdapter() {
              @Override
              public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
                  StompHeaders stompHeadersSubscribe = new StompHeaders();
                  stompHeadersSubscribe.setDestination(CONSUMER_TECH_QUEUE);
                  session.subscribe(stompHeadersSubscribe, new MyStompFrameHandler());// &lt;-- this line fails
                  .....
          }).get(5, TimeUnit.SECONDS);
  </code></pre>
  
  <p>Sometimes I see in logs following:</p>
  
  <pre><code>org.springframework.messaging.MessageDeliveryException: nested exception is java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method, failedMessage=GenericMessage [payload=byte[0], headers={simpMessageType=SUBSCRIBE, stompCommand=SUBSCRIBE, nativeHeaders={destination=[/user/queue/consumer/tech], id=[0]}, simpSubscriptionId=0, simpSessionId=e8a5b506-9c09-1a7b-4674-4aecb6567426, simpDestination=/user/queue/consumer/tech}]
      at org.springframework.messaging.simp.stomp.DefaultStompSession.execute(DefaultStompSession.java:281)
      at org.springframework.messaging.simp.stomp.DefaultStompSession.subscribe(DefaultStompSession.java:312)
      at com.finvale.SimpleBankSimulator$1.afterConnected(SimpleBankSimulator.java:98)
      at org.springframework.messaging.simp.stomp.DefaultStompSession.handleMessage(DefaultStompSession.java:421)
      at org.springframework.web.socket.messaging.WebSocketStompClient$WebSocketTcpConnectionHandlerAdapter.handleMessage(WebSocketStompClient.java:342)
      at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.handleMessageFrame(AbstractClientSockJsSession.java:271)
      at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.handleFrame(AbstractClientSockJsSession.java:213)
      at org.springframework.web.socket.sockjs.client.WebSocketTransport$ClientSockJsWebSocketHandler.handleTextMessage(WebSocketTransport.java:162)
      at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43)
      at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:110)
      at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:42)
      at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:81)
      at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:78)
      at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:399)
      at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:500)
      at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:295)
      at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130)
      at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:79)
      at org.apache.tomcat.websocket.WsFrameClient.access$300(WsFrameClient.java:31)
      at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:137)
      at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:120)
      at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
      at sun.nio.ch.Invoker$2.run(Invoker.java:218)
      at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
  Caused by: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method
      at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1224)
      at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textPartialStart(WsRemoteEndpointImplBase.java:1182)
      at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:222)
      at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
      at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:203)
      at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:101)
      at org.springframework.web.socket.sockjs.client.WebSocketClientSockJsSession.sendInternal(WebSocketClientSockJsSession.java:126)
      at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.sendMessage(AbstractClientSockJsSession.java:152)
      at org.springframework.web.socket.messaging.WebSocketStompClient$WebSocketTcpConnectionHandlerAdapter.send(WebSocketStompClient.java:383)
      at org.springframework.messaging.simp.stomp.DefaultStompSession.execute(DefaultStompSession.java:278)
      ... 26 more
  </code></pre>
  
  <p>Sometimes it happens, sometimes - not.</p>
  
  <p>I cannot understand reason, please clarify.</p>