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 ;
@@ -433,18 +432,13 @@ private void sendToClient(WebSocketSession session, StompHeaderAccessor stompAcc
433
432
}
434
433
}
435
434
436
- private StompHeaderAccessor getStompHeaderAccessor (Message <?> message ) {
435
+ private StompHeaderAccessor getStompHeaderAccessor (Message <?> message ) {
437
436
MessageHeaderAccessor accessor = MessageHeaderAccessor .getAccessor (message , MessageHeaderAccessor .class );
438
- if (accessor == null ) {
439
- // Shouldn't happen (only broker broadcasts directly to clients)
440
- throw new IllegalStateException ("No header accessor in " + message );
441
- }
442
- StompHeaderAccessor stompAccessor ;
443
437
if (accessor instanceof StompHeaderAccessor ) {
444
- stompAccessor = (StompHeaderAccessor ) accessor ;
438
+ return (StompHeaderAccessor ) accessor ;
445
439
}
446
- else if ( accessor instanceof SimpMessageHeaderAccessor ) {
447
- stompAccessor = StompHeaderAccessor .wrap (message );
440
+ else {
441
+ StompHeaderAccessor stompAccessor = StompHeaderAccessor .wrap (message );
448
442
SimpMessageType messageType = SimpMessageHeaderAccessor .getMessageType (message .getHeaders ());
449
443
if (SimpMessageType .CONNECT_ACK .equals (messageType )) {
450
444
stompAccessor = convertConnectAcktoStompConnected (stompAccessor );
@@ -466,13 +460,8 @@ else if (SimpMessageType.HEARTBEAT.equals(messageType)) {
466
460
else if (stompAccessor .getCommand () == null || StompCommand .SEND .equals (stompAccessor .getCommand ())) {
467
461
stompAccessor .updateStompCommandAsServerMessage ();
468
462
}
463
+ return stompAccessor ;
469
464
}
470
- else {
471
- // Shouldn't happen (only broker broadcasts directly to clients)
472
- throw new IllegalStateException (
473
- "Unexpected header accessor type: " + accessor .getClass () + " in " + message );
474
- }
475
- return stompAccessor ;
476
465
}
477
466
478
467
/**
0 commit comments