RestComm / ussdgateway

RestComm USSD Gateway
http://www.restcomm.com/
GNU Affero General Public License v3.0
89 stars 102 forks source link

NullPointer exception when XML Dialog serializing #23

Closed vetss closed 7 years ago

vetss commented 8 years ago

When a peer returns UTDS response for UnstructuredUSSD Request we have suc exception 2016-01-19 10:42:17,318 ERROR org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl Caught exception while routing EventContext[event type id = EventTypeID[name=ss7.map.DIALOG_REJECT,vendor=org.mobicents,version=1.0] , event = DialogReject [refuseReason=RemoteNodeNotReachable, alternativeApplicationContext=null, extensionContainer=null, MAPDialogSupplementaryWrapper [wrappedDialog=MAPDialog: LocalDialogId=2 RemoteDialogId=null MAPDialogState=EXPUNGED MAPApplicationContext=MAPApplicationContext [Name=networkUnstructuredSsContext, Version=version2, Oid=0, 4, 0, 0, 1, 0, 19, 2, ] TCAPDialogState=Expunged]] , local ac = RA:MAPRA:MAPDialogActivityHandle(id=2) , address = IP: localhost , serviceID = null] java.lang.NullPointerException at org.mobicents.ussdgateway.XmlMAPDialog$1.write(XmlMAPDialog.java:631) at org.mobicents.ussdgateway.XmlMAPDialog$1.write(XmlMAPDialog.java:628) at javolution.xml.XMLFormat$OutputElement.add(XMLFormat.java:836) at javolution.xml.XMLObjectWriter.write(XMLObjectWriter.java:273) at org.mobicents.ussdgateway.EventsSerializeFactory.serialize(EventsSerializeFactory.java:127) at org.mobicents.ussdgateway.slee.http.HttpServerSbb.sendHttpResponse(HttpServerSbb.java:1133) at org.mobicents.ussdgateway.slee.http.HttpServerSbb.abortHttpDialog(HttpServerSbb.java:1085) at org.mobicents.ussdgateway.slee.http.HttpServerSbb.onDialogReject(HttpServerSbb.java:719) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.mobicents.slee.runtime.sbbentity.SbbEntityImpl.invokeEventHandler(SbbEntityImpl.java:479) at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.routeQueuedEvent(EventRoutingTaskImpl.java:379) at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.run(EventRoutingTaskImpl.java:126) at org.mobicents.slee.runtime.eventrouter.EventRouterExecutorImpl$EventRoutingTaskStatsCollector.run(EventRouterExecutorImpl.java:76) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 1) we need to check if "dialog.messageType" is not null before writing to be on the safe side 2) we need to figure out why this field is not filled in this case https://telestax.zendesk.com/tickets/32672#

https://telestax.atlassian.net/browse/USSDGW-131

vetss commented 7 years ago

Fixed by:

https://github.com/RestComm/ussdgateway/commit/f825e148cc0643cf197c27636a6d4e08cc402c4c