4444import com .smartdevicelink .marshal .JsonRPCMarshaller ;
4545import com .smartdevicelink .protocol .ISdlServiceListener ;
4646import com .smartdevicelink .protocol .ProtocolMessage ;
47+ import com .smartdevicelink .protocol .SdlProtocolBase ;
4748import com .smartdevicelink .protocol .enums .FunctionID ;
4849import com .smartdevicelink .protocol .enums .MessageType ;
4950import com .smartdevicelink .protocol .enums .SessionType ;
@@ -987,17 +988,30 @@ public void stop() {
987988
988989 @ Override
989990 public boolean isConnected () {
990- return BaseLifecycleManager .this .session .getIsConnected ();
991+ synchronized (BaseLifecycleManager .this ) {
992+ if (BaseLifecycleManager .this .session != null ) {
993+ return BaseLifecycleManager .this .session .getIsConnected ();
994+ }
995+ }
996+ return false ;
991997 }
992998
993999 @ Override
9941000 public void addServiceListener (SessionType serviceType , ISdlServiceListener sdlServiceListener ) {
995- BaseLifecycleManager .this .session .addServiceListener (serviceType , sdlServiceListener );
1001+ synchronized (BaseLifecycleManager .this ) {
1002+ if (BaseLifecycleManager .this .session != null ){
1003+ BaseLifecycleManager .this .session .addServiceListener (serviceType , sdlServiceListener );
1004+ }
1005+ }
9961006 }
9971007
9981008 @ Override
9991009 public void removeServiceListener (SessionType serviceType , ISdlServiceListener sdlServiceListener ) {
1000- BaseLifecycleManager .this .session .removeServiceListener (serviceType , sdlServiceListener );
1010+ synchronized (BaseLifecycleManager .this ) {
1011+ if (BaseLifecycleManager .this .session != null ) {
1012+ BaseLifecycleManager .this .session .removeServiceListener (serviceType , sdlServiceListener );
1013+ }
1014+ }
10011015 }
10021016
10031017 @ Override
@@ -1064,14 +1078,25 @@ public RegisterAppInterfaceResponse getRegisterAppInterfaceResponse() {
10641078
10651079 @ Override
10661080 public boolean isTransportForServiceAvailable (SessionType serviceType ) {
1067- return BaseLifecycleManager .this .session .isTransportForServiceAvailable (serviceType );
1081+ synchronized (BaseLifecycleManager .this ) {
1082+ if (BaseLifecycleManager .this .session != null ) {
1083+ return BaseLifecycleManager .this .session .isTransportForServiceAvailable (serviceType );
1084+ }
1085+ }
1086+ return false ;
10681087 }
10691088
10701089 @ NonNull
10711090 @ Override
10721091 public SdlMsgVersion getSdlMsgVersion () {
1073- SdlMsgVersion msgVersion = new SdlMsgVersion (rpcSpecVersion .getMajor (), rpcSpecVersion .getMinor ());
1074- msgVersion .setPatchVersion (rpcSpecVersion .getPatch ());
1092+ SdlMsgVersion msgVersion ;
1093+ if (rpcSpecVersion != null ) {
1094+ msgVersion = new SdlMsgVersion (rpcSpecVersion .getMajor (), rpcSpecVersion .getMinor ());
1095+ msgVersion .setPatchVersion (rpcSpecVersion .getPatch ());
1096+ } else {
1097+ msgVersion = new SdlMsgVersion (1 ,0 );
1098+ }
1099+
10751100 return msgVersion ;
10761101 }
10771102
@@ -1083,7 +1108,12 @@ public Version getProtocolVersion() {
10831108
10841109 @ Override
10851110 public long getMtu (SessionType serviceType ) {
1086- return BaseLifecycleManager .this .session .getMtu (serviceType );
1111+ synchronized (BaseLifecycleManager .this ) {
1112+ if (BaseLifecycleManager .this .session != null ) {
1113+ return BaseLifecycleManager .this .session .getMtu (serviceType );
1114+ }
1115+ }
1116+ return SdlProtocolBase .V1_V2_MTU_SIZE ;
10871117 }
10881118
10891119 @ Override
0 commit comments