TROInMemoryEventRepository.DoStoreEventData

Hi, we are using synapsupertcpserver and TROInMemorySessionManager

After update to the version 10.0.0.1545 we start to see a very strange behavior when using our internal chat, the callback is sending to many session and not respecting the SessionList

After dig in the code we could fix the problem changing the code in the file
RemObjects Software\RemObjects SDK for Delphi\Source\uROEventRepository.pas

the function is DoStoreEventData

as far as we know this code have a problem after not location 1 session in the list all next sessions will send the callback

if l_isFiltered then begin
          l_isFiltered := (l_filteredSessionList.IndexOf(l_sessionID) >= 0);
          if ExcludeSessionList then begin
            if l_isFiltered then Continue;
          end
          else begin
            if not l_isFiltered then Continue;
          end;
        end;

in the version 1463 the code was

if isfiltered then begin
          if ExcludeSessionList then begin
            if (filteredsessionslist.IndexOf(currsessionid)>=0)
              then Continue;
          end
          else begin
            if not (filteredsessionslist.IndexOf(currsessionid)>=0)
              then Continue;
          end;
        end;

Logged as bugs://D19288.

bugs://D19288 was closed as fixed.

Hi,

Thanks for report.
it should be

var  l_isFiltered1: Boolean;
...
        if l_isFiltered then begin
          l_isFiltered1 := (l_filteredSessionList.IndexOf(l_sessionID) >= 0);
          if ExcludeSessionList then begin
            if l_isFiltered1 then Continue;
          end
          else begin
            if not l_isFiltered1 then Continue;
          end;
        end;

new build (.1549) was released

1 Like