34
34
import org .springframework .context .ApplicationEventPublisherAware ;
35
35
import org .springframework .messaging .Message ;
36
36
import org .springframework .messaging .MessageChannel ;
37
- import org .springframework .messaging .MessageHeaders ;
38
37
import org .springframework .messaging .simp .SimpAttributes ;
39
38
import org .springframework .messaging .simp .SimpAttributesContextHolder ;
40
39
import org .springframework .messaging .simp .SimpMessageHeaderAccessor ;
@@ -463,18 +462,13 @@ private void sendToClient(WebSocketSession session, StompHeaderAccessor stompAcc
463
462
}
464
463
}
465
464
466
- private StompHeaderAccessor getStompHeaderAccessor (Message <?> message ) {
465
+ private StompHeaderAccessor getStompHeaderAccessor (Message <?> message ) {
467
466
MessageHeaderAccessor accessor = MessageHeaderAccessor .getAccessor (message , MessageHeaderAccessor .class );
468
- if (accessor == null ) {
469
- // Shouldn't happen (only broker broadcasts directly to clients)
470
- throw new IllegalStateException ("No header accessor in " + message );
471
- }
472
- StompHeaderAccessor stompAccessor ;
473
467
if (accessor instanceof StompHeaderAccessor ) {
474
- stompAccessor = (StompHeaderAccessor ) accessor ;
468
+ return (StompHeaderAccessor ) accessor ;
475
469
}
476
- else if ( accessor instanceof SimpMessageHeaderAccessor ) {
477
- stompAccessor = StompHeaderAccessor .wrap (message );
470
+ else {
471
+ StompHeaderAccessor stompAccessor = StompHeaderAccessor .wrap (message );
478
472
SimpMessageType messageType = SimpMessageHeaderAccessor .getMessageType (message .getHeaders ());
479
473
if (SimpMessageType .CONNECT_ACK .equals (messageType )) {
480
474
stompAccessor = convertConnectAcktoStompConnected (stompAccessor );
@@ -496,13 +490,8 @@ else if (SimpMessageType.HEARTBEAT.equals(messageType)) {
496
490
else if (stompAccessor .getCommand () == null || StompCommand .SEND .equals (stompAccessor .getCommand ())) {
497
491
stompAccessor .updateStompCommandAsServerMessage ();
498
492
}
493
+ return stompAccessor ;
499
494
}
500
- else {
501
- // Shouldn't happen (only broker broadcasts directly to clients)
502
- throw new IllegalStateException (
503
- "Unexpected header accessor type: " + accessor .getClass () + " in " + message );
504
- }
505
- return stompAccessor ;
506
495
}
507
496
508
497
/**
0 commit comments