Skip to content

Simplify Session.CheckForSwitching() - #519

Closed
SergeiPavlov wants to merge 1 commit into
master-servicetitanfrom
CheckForSwitching
Closed

Simplify Session.CheckForSwitching()#519
SergeiPavlov wants to merge 1 commit into
master-servicetitanfrom
CheckForSwitching

Conversation

@SergeiPavlov

@SergeiPavlov SergeiPavlov commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Note

Medium Risk
This changes when the guard runs relative to the old currentSession == this no-op; confirm entity field access and auto-activation still behave like Activate(bool checkSwitching: true).

Overview
Refactors Session.CheckForSwitching() by replacing a chain of null/self/switching early returns with a single property-pattern guard that throws only when needed.

The method now throws when SessionScope.CurrentSession has a non-null Transaction and session switching is not allowed (AllowSwitching on both the activating and active session). The comment about using SessionScope.CurrentSession instead of Session.Current is preserved inline.

Reviewed by Cursor Bugbot for commit dccc554. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit dccc554. Configure here.

if (currentSession == null) {
return;
}
if (currentSession == this) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same-session access now throws

High Severity

The simplified CheckForSwitching() no longer treats the already-active session as a no-op. When SessionScope.CurrentSession is this session, has a transaction, and AllowSwitching is off, field access now throws. That is the normal entity read path, so property gets fail under default session options.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit dccc554. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant