SNR#1999 시나리오에서 중복 이벤트 제거를 설정한 경우, 티켓 삭제 및 완료 처리 시 NPE 오류 발생 해결

Note
해당 이슈는 로그프레소 4.0.2205.0 이상, 4.0.2303.0 이하 버전에서 발생합니다.

실시간/배치 탐지 시나리오에서 중복 이벤트 제거를 설정한 시나리오가 있는 경우, 티켓 삭제 및 완료 처리 시에 NPE(NullPointerException) 오류가 발생하는 문제를 해결하였습니다.

  • 티켓 삭제 시 NPE 오류 로그
[2023-05-24 09:26:58,163]  WARN (TicketServiceImpl) - sonar core: ticket listener should not throw any exception
java.lang.NullPointerException
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_getMatchingKeys(AlertServiceImpl.java:840)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.getMatchingKeys(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_removeContext(AlertServiceImpl.java:851)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.removeContext(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_onRemove(AlertServiceImpl.java:831)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.onRemove(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.TicketServiceImpl.__M_removeTickets(TicketServiceImpl.java:990)
        at com.logpresso.sonar.api.impl.TicketServiceImpl.removeTickets(TicketServiceImpl.java)
        at com.logpresso.sonar.msgbus.TicketPlugin.__M_removeTickets(TicketPlugin.java:1070)
        at com.logpresso.sonar.msgbus.TicketPlugin.removeTickets(TicketPlugin.java)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.araqne.msgbus.handler.MsgbusPluginHandler.__M_handleMessage(MsgbusPluginHandler.java:201)
        at org.araqne.msgbus.handler.MsgbusPluginHandler.handleMessage(MsgbusPluginHandler.java)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.__M_invokeMessageHandler(MessageBusImpl.java:579)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.invokeMessageHandler(MessageBusImpl.java)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.__M_run(MessageBusImpl.java:569)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.run(MessageBusImpl.java)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
  • 티켓 완료 시 NPE 오류 로그
[2023-05-24 09:26:51,684]  WARN (TicketServiceImpl) - sonar core: ticket listener should not throw any exception
java.lang.NullPointerException
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_getMatchingKeys(AlertServiceImpl.java:840)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.getMatchingKeys(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_removeContext(AlertServiceImpl.java:851)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.removeContext(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.__M_onClose(AlertServiceImpl.java:826)
        at com.logpresso.sonar.api.impl.AlertServiceImpl$TicketCloseHandler.onClose(AlertServiceImpl.java)
        at com.logpresso.sonar.api.impl.TicketServiceImpl.__M_closeTicket(TicketServiceImpl.java:942)
        at com.logpresso.sonar.api.impl.TicketServiceImpl.closeTicket(TicketServiceImpl.java)
        at com.logpresso.sonar.msgbus.TicketPlugin.__M_closeTickets(TicketPlugin.java:1049)
        at com.logpresso.sonar.msgbus.TicketPlugin.closeTickets(TicketPlugin.java)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.araqne.msgbus.handler.MsgbusPluginHandler.__M_handleMessage(MsgbusPluginHandler.java:201)
        at org.araqne.msgbus.handler.MsgbusPluginHandler.handleMessage(MsgbusPluginHandler.java)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.__M_invokeMessageHandler(MessageBusImpl.java:579)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.invokeMessageHandler(MessageBusImpl.java)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.__M_run(MessageBusImpl.java:569)
        at org.araqne.msgbus.impl.MessageBusImpl$TaskRunner.run(MessageBusImpl.java)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)