Skip to content

server: do not NPE when a VPN provider returns no per-user result - #14047

Open
nagaboinaramgopal wants to merge 1 commit into
apache:4.20from
nagaboinaramgopal:fix/vpn-users-null-apply-result
Open

server: do not NPE when a VPN provider returns no per-user result#14047
nagaboinaramgopal wants to merge 1 commit into
apache:4.20from
nagaboinaramgopal:fix/vpn-users-null-apply-result

Conversation

@nagaboinaramgopal

Copy link
Copy Markdown

applyVpnUsers sizes a Boolean[] finals to the user list but only populates it inside the if (results != null) block. A RemoteAccessVPNServiceProvider that returns null (for example when the VPN network has no router yet) leaves entries null, and the consumption loop unboxed them with if (finals[i]), throwing NullPointerException and aborting the entire apply. Treat a null entry as not-applied with Boolean.TRUE.equals.

Tested: new unit test applyVpnUsersHandlesNullProviderResultWithoutNpe (fails before, passes after); RemoteAccessVpnManagerImplTest green.

applyVpnUsers sizes a Boolean[] finals to the user list but only populates it
inside the if (results != null) block. A RemoteAccessVPNServiceProvider that
returns null (for example when the VPN network has no router yet) leaves entries
null, and the later consumption loop unboxed them with if (finals[i]), throwing
NullPointerException and aborting the entire apply/add/remove-user operation.
Treat a null entry as not-applied with Boolean.TRUE.equals.

@DaanHoogland DaanHoogland left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

clgtm, good practice but I doubt this would be a possible issue ever, the loop filling finals above seems airtight.

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 16.35%. Comparing base (2cd8c5e) to head (bf30cba).

Files with missing lines Patch % Lines
.../cloud/network/vpn/RemoteAccessVpnManagerImpl.java 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##               4.20   #14047   +/-   ##
=========================================
  Coverage     16.34%   16.35%           
- Complexity    13574    13581    +7     
=========================================
  Files          5669     5669           
  Lines        501368   501368           
  Branches      60903    60903           
=========================================
+ Hits          81964    82000   +36     
+ Misses       410219   410175   -44     
- Partials       9185     9193    +8     
Flag Coverage Δ
uitests 4.14% <ø> (ø)
unittests 17.21% <0.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants