salmar / spring-websocket-chat

Chat application using Spring WebSockets
614 stars 316 forks source link

SimpMessageHeaderAccessor#getUser is now nullable. How to handle? #25

Open stefanos-kalantzis opened 5 years ago

stefanos-kalantzis commented 5 years ago

I couldn't find a better place to open this... Please redirect me if there is.

spring-messaging, since v5.0.0, has marked method SimpMessageHeaderAccessor#getUser as @Nullable. Which actually causes Findbugs to fail with code similar to your example, and rightfully so.

Specifically here: PresenceEventListener#handleSessionConnected

String username = headers.getUser().getName();

My question is how is this supposed to be handled properly? (i.e. when #getUser returns null) Should the code throw an exception? do nothing? And what does it actually mean that the user is null in this context?

Principal principal = headers.getUser();
if (principal == null) {
    // what should happen here ?
}

Thanks !