We talked at Bischofstein workshop about the ability to preserve the iDempiere session between sucessive webservice calls.
This can help to improve the speed - and also for traceabilty as you can see in Session Audit all what the webservices do within one session record instead of thousands.
Perfect! code changes seems to be good.
I am sorry I didn't get much time to prepare the SOAP test request and scenario which can reproduce the issue.
Anyways, its good that the issue is resolved
I found one issue which definitely i would not be able to send you any SOAP request or test data. In order to reproduce the issue, you might to do the following,
Create one web service with run process
Implement the code in run process which uses ctx variables like Env.getAD_Client_ID(Env.getCtx())
Call webservice from postman and with Stage as 1 (1 Minute i believe)
Call webservice again before 1 min ends which means second request would be served from cache (login perspective)
Call webservice after a delay of 2 mins where session would have expired
In the last call of webservice after session is expired, login will be done and if you log value of Env.getAD_Client_ID(Env.getCtx()) in your process it would be 0 instead of actual client passed in webservice request.
We need to comment below code from all webservice methods like createData, queryData etc
All below code to AbstractService.java#login method
I have attached the patch for understanding
Sorry I cant attach patch as story is closed
, please open a new ticket related to this to report new incidences.
Hi , I made a new commit that must solve what you reported above.