Michaël Van Canneyt преди 2 години
родител
ревизия
8b3c9e0970
променени са 1 файла, в които са добавени 12 реда и са изтрити 7 реда
  1. 12 7
      packages/fcl-web/src/jsonrpc/fpjsonrpc.pp

+ 12 - 7
packages/fcl-web/src/jsonrpc/fpjsonrpc.pp

@@ -1283,13 +1283,18 @@ begin
     If (I<>-1) then
     If (I<>-1) then
       D:=O.Items[i]
       D:=O.Items[i]
     else if (jdoRequireClass in options) then
     else if (jdoRequireClass in options) then
-      Exit(CreateJSON2Error(SErrNoClassName,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty));
-    // Check if it is a string
-    if Not (D is TJSONString) then
-      Exit(CreateJSON2Error(SErrInvalidClassNameType,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty));
-    AClassName:=D.AsString;
-    If (AClassName='') and (jdoRequireClass in options)  then
-      Exit(CreateJSON2Error(SErrNoClassName,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty));
+      Exit(CreateJSON2Error(SErrNoClassName,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty))
+    else
+      D:=Nil;  
+    if Assigned(D) then
+     begin  
+      // Check if it is a string
+      if Not (D is TJSONString) then
+        Exit(CreateJSON2Error(SErrInvalidClassNameType,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty));
+      AClassName:=D.AsString;
+      If (AClassName='') and (jdoRequireClass in options)  then
+        Exit(CreateJSON2Error(SErrNoClassName,[ClassNameProperty],EJSONRPCInvalidRequest,ID,transactionproperty));
+      end;  
     end;
     end;
   // Get params, if they exist
   // Get params, if they exist
   I:=O.IndexOfName(ParamsProperty);
   I:=O.IndexOfName(ParamsProperty);