server: avoid NPE updating a network ACL rule with no protocol - #14046
nagaboinaramgopal wants to merge 1 commit into
Conversation
On a full (non-partial) network ACL item update, transferDataToNetworkAclRulePojo clears the protocol to null before updateIcmpCodeAndTypeFullUpgrade runs, and that method called networkACLItemVo.getProtocol().equalsIgnoreCase(...) on the null protocol, throwing NullPointerException. A full upgrade with no protocol is a valid input: the parameter is optional and the mode is meant to disregard the current configuration. Compare against the constant first so a null protocol falls through to clearing the icmp fields.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.20 #14046 +/- ##
============================================
- Coverage 16.34% 16.34% -0.01%
+ Complexity 13574 13572 -2
============================================
Files 5669 5669
Lines 501368 501368
Branches 60903 60903
============================================
- Hits 81964 81948 -16
- Misses 410219 410233 +14
- Partials 9185 9187 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@blueorangutan package |
|
@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 19186 |
|
@blueorangutan test keepEnv |
|
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-16969)
|
|
Thanks @DaanHoogland for the review and the smoke run. This needs a second review; could someone take a look? |
On a full (non-partial) network ACL item update, transferDataToNetworkAclRulePojo clears the protocol to null before updateIcmpCodeAndTypeFullUpgrade runs, and that method called networkACLItemVo.getProtocol().equalsIgnoreCase(...) on the null protocol, throwing NullPointerException. A full upgrade with no protocol is a valid input. Compare against the constant first so a null protocol falls through to clearing the icmp fields.
Tested: new unit test updateIcmpCodeAndTypeFullUpgradeHandlesNullProtocol (fails before, passes after); full NetworkACLServiceImplTest green