I Declare non-nullable in my entity class but when I access these variables I get NullPointerException. I face following type of error:
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.String
at com.nilmani.chatdemochat.controller.ChatController.addUser(ChatController.kt:31) ~[main/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMatch(AbstractMethodMessageHandler.java:569) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:511) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:94) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessageInternal(AbstractMethodMessageHandler.java:524) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessage(AbstractMethodMessageHandler.java:458) ~[spring-messaging-5.3.13.jar:5.3.13]
at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:144) ~[spring-messaging-5.3.13.jar:5.3.13]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
ChatMessage.kt
package com.nilmani.chatdemochat.model
import com.nilmani.chatdemochat.enum.MessageType
data class ChatMessage (
var messageType: MessageType?=null,
val content:String="",
var sender:String="")
ChatController.kt
@MessageMapping("/chat/{roomId}/addUser")
fun addUser(@DestinationVariable roomId: String,@Payload chatMessage: ChatMessage,messageHeader:SimpMessageHeaderAccessor){
val currentRoomId: String = messageHeader.sessionAttributes?.put("roo_id",roomId) as String
if (currentRoomId != null){
val leaveMessage = ChatMessage()
leaveMessage.messageType = MessageType.LEAVE
leaveMessage.sender = chatMessage.sender
messageingTemplate.convertAndSend(format("/channel/%s",currentRoomId),leaveMessage)
}
messageHeader.sessionAttributes?.set("username", chatMessage.sender)
messageingTemplate.convertAndSend(format("/channel/%s",roomId),chatMessage)
}
I get NullPointerException at this line:
val currentRoomId: String =
messageHeader.sessionAttributes?.put("roo_id",roomId) as String
When joining another user for chatting it gives this type of error and the newly entred user is not able to connect with the chat application.