Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Error 'Operation not allowed on sorted list' passing start params to ISAPI dll
#1
Hello,
I'm facing a problem that appeared using 15.3.12 version and higher (I've just tried 15.4.1).
In 15.2.63 that we use in production it works good.
Also, the problem is only on ISAPI module, compiling SA executable it's ok.

In our IWForm we call the application itself to start a new session passing some parmeter that we use to automatically log in, but the content it's not important.

procedure TWMyForm.MyButtonAsyncClick(Sender: TObject; EventParams: TStringList);
...
begin
  S:='var formIris = document.forms["SubmitForm"]; ' +
    'formIris.setAttribute("action","' + GGetWebApplicationThreadVar.InternalUrlBase + '/start' + '"); ' +
    'document.getElementById("HIDDEN_xusr").value = "user"; ' +
    'document.getElementById("HIDDEN_profilo").value = "profile"; ' +
    'formIris.elements["IW_SessionID_"].value="";' +
    'formIris.elements["IW_TrackID_"].value="";' +
    'SubmitClick("' + btnConferma.HTMLName + '", "", true); ';
  GGetWebApplicationThreadVar.CallBackResponse.AddJavaScriptToExecuteAsCDATA(S);

//After several operation, a new session is going to start; the call stack show me this call:
TIWServerSession.GetStartParams (no source available, I wasn't able to debug)

//soon after in IWApplication:
class procedure TIWParamsString.EncodeParams(const AParamsList: TStrings);
var
  i: Integer;
begin
  for i := 0 to AParamsList.Count - 1 do begin
    AParamsList[i] := TURL.ParamsEncode(AParamsList[i]);
  end;
end;

we have:
- AParamsList.Text = 'azienda=AZIN'#$D#$A'BTNANNULLA='#$D#$A'BTNCHIUDI_WC012FVISUALIZZAFILEFM='#$D#$A'BTNCONFERMA='#$D#$A'BTNSENDFILE='#$D#$A'CMBPROFILONUOVO=0'#$D#$A'database=IRIS'#$D#$A'EDTAJAXFORMID=W020FCambioProfilo31591375'#$D#$A'EDTPROFILOATTUALE=D'#$D#$A'GRDMEMOAJAX='#$D#$A'IW_Action=BTNCONFERMA'#$D#$A'IW_ActionParam='#$D#$A'IW_FormClass=TW020FCambioProfilo'#$D#$A'IW_FormName=W020FCambioProfilo'#$D#$A'IW_height='#$D#$A'IW_Location_=http://localhost/Iris32/W000PIrisWEB_IIS.dll/nnIGyEVlGfm5HVTjRMrNnWpaoVS/'#$D#$A'IW_Offset=0,0'#$D#$A'IW_SessionID_='#$D#$A'IW_TrackID_='#$D#$A'IW_width='#$D#$A'IW_WindowID_=wid=FRG~vjMCuGjy6z5eTYWBoef9ggm'#$D#$A'loginesterno=S'#$D#$A'profilo=R'#$D#$A'pwd='#$D#$A'usr='#$D#$A'WR010SCROLLLEFT=0'#$D#$A'WR010SCROLLTOP=0'#$D#$A'xusr=AV2y3wiTbaBdaQK+Qa6qkecYXHC8i2nqKP46P5svn4w=    '

- AParamsList.Sorted = True  //This is the problem in ISAPI!! In SA Sorted = False

then, the line "AParamsList[i] := TURL.ParamsEncode(AParamsList[i]);" make a call to TStringList.put in System.Classes
procedure TStringList.Put(Index: Integer; const S: string);
begin
  if Sorted then Error(@SSortedListError, 0);
  --> error page:
Application Error
An unhandled application error has occured within IrisWEB
Error message: Operation not allowed on sorted list

Could you please verify why this different behavior?
Thank you
Reply


Messages In This Thread
Error 'Operation not allowed on sorted list' passing start params to ISAPI dll - by mondoedp - 10-26-2023, 02:07 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)