Click on a Record List after session expires causes exception

Click on a Record List after session expires causes exception

  

Hello,

If I have a Table Records and let the session expires, when trying to click on a table row to go to a screen action, if my screen is not set to anonymous, a security exception is raised and user is forwarded to the Login page.

But if instead of a Table Records I have a List Records in the screen, when trying to click after the session expires causes an "Object reference no set" exception.

Is this the expected behavior? I was expecting the Table Records and List Records to have almost (if not the same) core and thus I don't see what would be the difference that cause this. 

We have an application with a "dynamic" menu that relay on the List Records widget and it is annoying to the user (and not good for us) to have this "error" message instead of being redirected to the Login's screen.

There is any "workaround" to this?

Thanks for any clarifying and help. 

Hi Jauch,

It should behave same in both the cases if the session expired , did you check the service center log?. Also does the object reference error only comes when the session expires?


Regards

-PJ-

Hello,

Yes. The stack trace is this one:

Object reference not set to an instance of an object.
   at OutSystems.HubEdition.WebWidgets.Iterator.OnBubbleEvent(Object sender, EventArgs args)
   at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   at OutSystems.HubEdition.WebWidgets.LinkButton.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

As far as we know, the error happens only when the session expires and you try to click in a link in the list records pointing to a screen action.
If the link points to another screen (navigate), the user navigates to the login page as expected.

Cheers,
Eduardo Jauch

Was there ever a solution found for this problem? I am experiencing the same problem in an application I am working on.

Chrome on Android has the tendency to refresh a page if the tab wasn't closed the previous time it was used. If this happens in my case, the page is retrieved from browser cache, but the AJAX refresh which is always triggered  in the background on that page does run.

This AJAX refresh is triggered also in a ListRecord with a LinkButton and an expired session, so it sounds awfully the same as the description above.

Hello Joris,

Not that I know.

Cheers,
Eduardo Jauch

I tried replacing the Link with a Button, but that just gives the same problem with a slightly different stack trace.

Object reference not set to an instance of an object.
   at OutSystems.HubEdition.WebWidgets.Iterator.OnBubbleEvent(Object sender, EventArgs args)
   at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   at OutSystems.HubEdition.WebWidgets.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

This is a bug.

I'll report to the support.

Cheers

Eduardo Jauch

I'm going to do the same thing and reference this thread.