Exception: Resource RODLFILE not found

Hello,

I’m upgrading from Delphi Berlin 10.1 with RO SDK 9.5.111.1397 to Delphi 11 with RO SDK 10.0.0.1549.

When I start the application I get an exception: Exception : Resource RODLFILE not found

I can skip procedure TROServer.RebuildServices, but this can’t be the sollution.

The exception is thrown in uRODLSupport.pas:
function ReadRODLResource(AnInstance: THandle): TCustomMemoryStream;
begin

  • Result := TResourceStream.Create(AnInstance, res_RODLFile, RT_RCDATA);*
    end;

But when I use ResourceTuner to inspect the generated exe, I can see RODLFILE in RC Data.

Can you help me to solve this?

1 Like

Hi,

I can’t reproduce this issue with simple testcase created by ROD wizard.

Can you create a simple testcase that reproduce this issue, pls?
You can drop email to support@ for keeping privacy

Logged as bugs://D19298.

bugs://D19298 was closed as fixed.

Hi,

I have tried to create a simple testcase and I’m also unable to reproduce the issue there.

So I have changed uRODLSupport.ReadRODLResource where the exceptions is thrown to:
function ReadRODLResource(AnInstance: THandle): TCustomMemoryStream;
begin
*** var iRes := FindResource(HInstance, res_RODLFile, RT_RCDATA);***
*** try***
*** var resourceStream := TResourceStream.Create(HInstance, res_RODLFile, RT_RCDATA);***

*** var stringStream := TStringStream.Create();***
*** stringStream.CopyFrom(resourceStream);***
*** finally***
*** end;***

  • Result := TResourceStream.Create(AnInstance, res_RODLFile, RT_RCDATA);*
    end;

I also added the additional code to the procedure where the ROIndyHTTPServer is activated.
Reading the resource just before activating works, but in ReadRODLResource it crashes.

I attached two callstacks, one from my application (Callstack with Exeption.txt) and one from the example (callstack without exception.txt).

Callstack with Exception.txt (1.1 KB)
Callstack without Exception.txt (900 Bytes)

I hope you can give me a hint where to look.

Thanks.

Hi,

Thx.
Drop email to support@ , I’ve send to you updated files that fixed this issue

I have send an email. Sender is a.konijnendijk@bcs.nl

check PM

Your fix seems to be working.
I can know start my server.

1 Like

How do we get the fix for this?

Check PM

Thanks Evgeny, that worked.

Hello,

I have just updated to the latest version, 1553, and I’m getting this same exception. I have been using a “custom” RODL reader… not really sure why, I think it was because my apps use runtime packages, several of them, are C++Builder based… not really sure why in this moment to be honest.

But, the app produces the error before even reaching the DoReadRODLResource in my custom reader.

The only thing that changed was the version, I was on version 1541.

Thanks for your help.

Hi,

this issue was fixed after .1553 had been released.


Check PM

.1555 was released with this fix

1 Like

Hello,

I’m having this issue again. I’m on .1555 (but I’m updating to the latest available to see if that fixes it). The only change is that I added an HTTPApiDispatcher, and the callstack actually has it:

main thread ($4a80):
53250bff +006f rtl280.bpl                     System.Classes           10049   +5 Error
53250c56 +0026 rtl280.bpl                     System.Classes           10054   +2 TResourceStream.Initialize
53250b19 +0035 rtl280.bpl                     System.Classes           10028   +2 TResourceStream.Create
018a114c +0010 RemObjects_Core_D28.bpl        Urodlsupport                        ReadRODLResource
018a0f2d +00d1 RemObjects_Core_D28.bpl        Urodlsupport                        GetRodl
018a109b +005f RemObjects_Core_D28.bpl        Urodlsupport                        GetRodlLibrary
01896ce5 +0085 RemObjects_Core_D28.bpl        Urocustomrodlreader                 TROCustomRODLReader.ReadRODLResource
018a0f0f +00b3 RemObjects_Core_D28.bpl        Urodlsupport                        GetRodl
018a109b +005f RemObjects_Core_D28.bpl        Urodlsupport                        GetRodlLibrary
01ad9640 +0048 RemObjects_Server_D28.bpl      Urohttpapidispatcher                TROHttpApiDispatcher.ResetCache
01ad87da +0012 RemObjects_Server_D28.bpl      Urohttpapidispatcher                TROHttpApiDispatcher.Activate
01a9f7b4 +0048 RemObjects_Server_D28.bpl      Urohttpdispatch                     TROExtendedHTTPDispatcherList.ActivateDispatchers
01aa1eb3 +001f RemObjects_Server_D28.bpl      Urocustomhttpserver                 TROCustomHTTPServer.IntSetActive
7a3d4423 +000b RemObjects_Server_Indy_D28.bpl Uroindyhttpserver                   TROIndyHTTPServer.IntSetActive
01a922f9 +007d RemObjects_Server_D28.bpl      Uroserver                           TROServer.SetActive
007e5a0a +0b42 TS4Server.exe                  VDataModuleServerTS4.cpp    83  +40 TDataModuleServerTS4.Create
52e9542a +0076 vcl280.bpl                     Vcl.Forms                11607  +13 TApplication.CreateForm
006f9d4c +1778 TS4Server.exe                  TS4Server.cpp              175 +132 wWinMain
018d09dc +0044 RemObjects_Core_D28.bpl        Urorttisupport                      RORTTI_RegisterROClass
53158d0c +0010 rtl280.bpl                     System                   39031  +10 @IntfClear
7bb1a011 +012d CC32280MT.DLL                                                      __wstartup
76aa7d57 +0017 KERNEL32.DLL                                                       BaseThreadInitThunk

Maybe there is something special to handle in that case? I already had the HTTPServer working, the only new thing is the API dispatcher.

Thanks!

With the latest version, .1559, I am getting an AV even before getting into the HTTPAPI dispatcher code:

exception message  : Access violation at address 53150638 in module 'rtl280.bpl'. Read of address F8C48323.

main thread ($41c8):
53150638 +0004 rtl280.bpl                System                   19152   +2 TObject.InheritsFrom
53156a84 +0204 rtl280.bpl                System                   36819 +106 DynArraySetLength
01d06eb9 +0085 RemObjects_Core_D28.bpl   Urocustomrodlreader                 TROCustomRODLReader.ReadRODLResource
01d110e3 +00b3 RemObjects_Core_D28.bpl   Urodlsupport                        GetRodl
01d1126f +005f RemObjects_Core_D28.bpl   Urodlsupport                        GetRodlLibrary
01f1216c +005c RemObjects_Server_D28.bpl Uroserver                           TROServer.RebuildServices
01f1231d +0091 RemObjects_Server_D28.bpl Uroserver                           TROServer.SetActive
00a6553c +0674 TS4Server.exe             VDataModuleServerTS4.cpp    73  +30 TDataModuleServerTS4.Create
52e9542a +0076 vcl280.bpl                Vcl.Forms                11607  +13 TApplication.CreateForm
00979d4c +1778 TS4Server.exe             TS4Server.cpp              175 +132 wWinMain
01d40bc8 +0044 RemObjects_Core_D28.bpl   Urorttisupport                      RORTTI_RegisterROClass
53158d0c +0010 rtl280.bpl                System                   39031  +10 @IntfClear
7bb1a011 +012d CC32280MT.DLL                                                 __wstartup
76aa7d57 +0017 KERNEL32.DLL                                                  BaseThreadInitThunk

My custom TROCustomRODLReader class is correctly setup (it was working!) but the DoReadRODLResource code is not yet called when the AV occurs.

Any idea?

Update: I removed the custom reader, and did not assign any RODLReader for the Message and I am still getting the error.

Hi,

can you drop simple testcase that reproduces this issue to support@, pls?
I’ll review what causes AV

Hello Evgeny,

Thanks for the reply.

I am trying to create a test case in a new project, and just dropping a SuperTcpServer into a form and setting it to active I get an AV, with this call stack, it might be easier to track:

[53150638]{rtl280.bpl  } System.TObject.InheritsFrom (Line 19152, "System.pas" + 2) + $0
[52E53338]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5872, "Vcl.Themes.pas" + 11) + $11
[531EF334]{rtl280.bpl  } System.Rtti.TRttiObject.GetAttributes (Line 5730, "System.Rtti.pas" + 2) + $8
[531F1443]{rtl280.bpl  } System.Rtti.TRttiInstanceType.GetAttributes (Line 6637, "System.Rtti.pas" + 3) + $4
[53150492]{rtl280.bpl  } System.@IsClass (Line 18878, "System.pas" + 1) + $8
[531504BD]{rtl280.bpl  } System.@AsClass (Line 18884, "System.pas" + 2) + $8
[531EF75B]{rtl280.bpl  } System.Rtti.TRttiType.GetTypeData (Line 6015, "System.Rtti.pas" + 0) + $3
[27422A47]{RemObjects_Server_D28.bpl} System. + $0
[2742B836]{RemObjects_Server_D28.bpl} System. + $0
[2742BA6D]{RemObjects_Server_D28.bpl} System. + $0
[2742BAB6]{RemObjects_Server_D28.bpl} System. + $0
[531491FB]{rtl280.bpl  } System.SysAllocMem (Line 4849, "GETMEM.INC" + 5) + $0
[27432756]{RemObjects_Server_D28.bpl} Urorttiserversupport.TRORTTIInvoker.RTTIInvoke + $21C2
[27106EB9]{RemObjects_Core_D28.bpl} Urocustomrodlreader.TROCustomRODLReader.ReadRODLResource + $85
[271110E3]{RemObjects_Core_D28.bpl} Urodlsupport.GetRodl + $B3
[2711126F]{RemObjects_Core_D28.bpl} Urodlsupport.GetRodlLibrary + $5F
[2745216C]{RemObjects_Server_D28.bpl} Uroserver.TROServer.RebuildServices + $5C
[2745231D]{RemObjects_Server_D28.bpl} Uroserver.TROServer.SetActive + $91
[531B5FF6]{rtl280.bpl  } System.TypInfo.SetOrdProp (Line 2534, "System.TypInfo.pas" + 33) + $0
[53F8237A]{designide280.bpl} DesignEditors.TPropertyEditor.SetOrdValue (Line 840, "DesignEditors.pas" + 2) + $E
[5400D0D5]{designide280.bpl} VCLEditors.TBooleanProperty.MouseUp (Line 2018, "VCLEditors.pas" + 5) + $10
[52A7ACF3]{vclide280.bpl} PropBox.TCustomPropListBox.ItemMouseUp (Line 1867, "PropBox.pas" + 17) + $1B
[52A7AF37]{vclide280.bpl} PropBox.TCustomPropListBox.MouseUp (Line 1947, "PropBox.pas" + 1) + $D
[52D489B8]{vcl280.bpl  } Vcl.Controls.TControl.DoMouseUp (Line 7835, "Vcl.Controls.pas" + 2) + $25
[52D48A46]{vcl280.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7848, "Vcl.Controls.pas" + 9) + $6
[52A81900]{vclide280.bpl} IDEInspListBox.TInspListBox.WMLButtonUp (Line 1793, "IDEInspListBox.pas" + 3) + $4
[52D4802E]{vcl280.bpl  } Vcl.Controls.TControl.WndProc (Line 7591, "Vcl.Controls.pas" + 91) + $6
[52D4D1F5]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10644, "Vcl.Controls.pas" + 170) + $6
[53150B24]{rtl280.bpl  } System.TMonitor.Destroy (Line 19911, "System.pas" + 0) + $0
[53154B37]{rtl280.bpl  } System.@FinalizeRecord (Line 33214, "System.pas" + 72) + $2
[52D50419]{vcl280.bpl  } Vcl.Controls.TWinControl.Update (Line 12746, "Vcl.Controls.pas" + 1) + $12
[52D50431]{vcl280.bpl  } Vcl.Controls.TWinControl.Repaint (Line 12752, "Vcl.Controls.pas" + 2) + $4
[52E9A44D]{vcl280.bpl  } Vcl.Forms.TScrollingStyleHook.PaintScroll (Line 14325, "Vcl.Forms.pas" + 5) + $2
[52E9AD02]{vcl280.bpl  } Vcl.Forms.TScrollingStyleHook.WMLButtonUp (Line 14683, "Vcl.Forms.pas" + 41) + $4
[52E570E5]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7713, "Vcl.Themes.pas" + 38) + $6
[52E572C6]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7812, "Vcl.Themes.pas" + 1) + $4
[52E9B410]{vcl280.bpl  } Vcl.Forms.TScrollingStyleHook.WndProc (Line 14905, "Vcl.Forms.pas" + 0) + $0
[52D7D2A3]{vcl280.bpl  } Vcl.StdCtrls.TListBoxStyleHook.WndProc (Line 11237, "Vcl.StdCtrls.pas" + 22) + $4
[52E5690A]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7418, "Vcl.Themes.pas" + 20) + $6
[52D4C918]{vcl280.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 10384, "Vcl.Controls.pas" + 1) + $9
[52E53338]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5872, "Vcl.Themes.pas" + 11) + $11
[52D4D1F5]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10644, "Vcl.Controls.pas" + 170) + $6
[52D76ACF]{vcl280.bpl  } Vcl.StdCtrls.TCustomListBox.WndProc (Line 7934, "Vcl.StdCtrls.pas" + 55) + $5
[52D4C700]{vcl280.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 10321, "Vcl.Controls.pas" + 3) + $6
[53265C1C]{rtl280.bpl  } System.Classes.StdWndProc (Line 18517, "System.Classes.pas" + 8) + $0
[52E95263]{vcl280.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 11488, "Vcl.Forms.pas" + 23) + $1
[52E952A6]{vcl280.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 11518, "Vcl.Forms.pas" + 1) + $4
[52E955E5]{vcl280.bpl  } Vcl.Forms.TApplication.Run (Line 11657, "Vcl.Forms.pas" + 27) + $3
[002980A2]{bds.exe     } bds.bds (Line 227, "" + 16) + $2

In any case I’m going to send it to support. It’s a C++Builder 11.3 project, I am not sure if that makes a difference.

Hi,

RTTI stuff may not work with C++Builder.

try to add {$UNDEF RO_RTTI_Support} to RemObjects_user.inc and relaunch C:\Program Files (x86)\RemObjects Software\Build\install_DA.cmd (or install_RO.cmd) with admin rights.

retest this case