Fixed: Prevents to uselessly clutter the logs up with SetTimeZoneFromBrowser errors (OFBIZ-13061)

Fixes this error found in trunk demo log.
SetTimeZoneFromBrowser.groovy]: (Cannot get property 'userLoginId' on null object)
It happens, at least with webpos/control/SetTimeZoneFromBrowser
It's just to prevents cluttering the logs.
diff --git a/framework/common/src/main/groovy/org/apache/ofbiz/common/SetTimeZoneFromBrowser.groovy b/framework/common/src/main/groovy/org/apache/ofbiz/common/SetTimeZoneFromBrowser.groovy
index 232e61b..49271f9 100644
--- a/framework/common/src/main/groovy/org/apache/ofbiz/common/SetTimeZoneFromBrowser.groovy
+++ b/framework/common/src/main/groovy/org/apache/ofbiz/common/SetTimeZoneFromBrowser.groovy
@@ -21,12 +21,14 @@
 import org.apache.ofbiz.service.ServiceUtil
 
 Map setTimeZoneFromBrowser() {
-    userLogin = from('UserLogin').where('userLoginId', parameters.userLogin.userLoginId).queryFirst()
-    if (userLogin) {
-        if (!userLogin.lastTimeZone || userLogin.lastTimeZone == 'null') {
-            userLogin.lastTimeZone = parameters.localeName
-            userLogin.store()
-            return ServiceUtil.returnSuccess()
+    if (parameters?.userLogin?.userLoginId) {
+        userLogin = from('UserLogin').where('userLoginId', parameters.userLogin.userLoginId).queryFirst()
+        if (userLogin) {
+            if (!userLogin.lastTimeZone || userLogin.lastTimeZone == 'null') {
+                userLogin.lastTimeZone = parameters.localeName
+                userLogin.store()
+                return ServiceUtil.returnSuccess()
+            }
         }
     }
     // Do nothing if no userLogin to prevents to uselessly clutter the logs up with very common SetTimeZoneFromBrowser errors