Problems with Remote DataSnap modules in Delphi 10.3 Rio

Problems with Remote DataSnap modules in Delphi 10.3 Rio

After upgrading our applications which are using RemObjects with RemoteDataSnap modules from Delphi 10.2 Tokyo to Delphi 10.3 Rio we’re receiving exceptions when trying to connect to DataSetProviders on TRODataSnapModule. Exceptions are occurring in runtime and also in design time, for example when clicking on drop down button in TClientDataSet.ProviderName to list providers on remote data set. I have tried different versions on RemObjects for Delphi (Remoting SDK - and also couple of older ones). The problem occurs in all tested version on Delphi 10.3. Delphi 10.2 works fine with all versions.
I have tested this problem on your DataSnap example in samples folder. The sample project works fine if unchanged. But if I add one additional provider (adding TAdoQuery and TDataSetProvider) and when I add this TDataSetProvider to PublishedProviders, even this simple example doesn’t work anymore.

If I change TROClassFactory to TPooledROClassFactory, example works OK until closing DataSnap Server when exceptions occurs.

It looks like the error is occuring when releasing an instance of the module in uRODataSnapPublishedProvidersCollection:
procedure TPublishedProviders.UnlinkProvider(iProvider: TCustomProvider);
If e.g. I comment code in this procedure, then exceptions are not occurring anymore.



pls update uRODataSnapModule.pas as

destructor TRODataSnapModule.Destroy;
  FreeOrDisposeOfAndNil(fProviders);  //changed
  FreeOrDisposeOfAndNil(fInternalRegisteredProviders); //changed

Thanks, logged as bugs://83503

bugs://83503 got closed with status fixed.

Thanks, Matjaz