diff options
author | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-02-09 18:47:54 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-02-09 18:48:21 +0100 |
commit | 2285ab16617367de5a5d412589892da51e7aca35 (patch) | |
tree | 5818b1c8d703001c303425c5451190b4263e55a2 /jrt/src/com/yahoo | |
parent | 3014e3e42ce93ec638eda67d0fd0c40f68431707 (diff) |
Fix check for detecting existing filter being overridden
Diffstat (limited to 'jrt/src/com/yahoo')
-rw-r--r-- | jrt/src/com/yahoo/jrt/Method.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/jrt/src/com/yahoo/jrt/Method.java b/jrt/src/com/yahoo/jrt/Method.java index a5e5e7280d9..790aafd2743 100644 --- a/jrt/src/com/yahoo/jrt/Method.java +++ b/jrt/src/com/yahoo/jrt/Method.java @@ -43,7 +43,8 @@ public class Method { private String[] returnName; private String[] returnDesc; - private RequestAccessFilter filter = RequireCapabilitiesFilter.unclassified(); + private static final RequireCapabilitiesFilter defaultFilter = RequireCapabilitiesFilter.unclassified(); + private RequestAccessFilter filter = defaultFilter; private static final String undocumented = "???"; @@ -152,14 +153,16 @@ public class Method { return this; } - public Method requestAccessFilter(RequestAccessFilter filter) { this.filter = filter; return this; } + public Method requestAccessFilter(RequestAccessFilter filter) { verifyNoFilterAssigned(); this.filter = filter; return this; } public Method requireCapabilities(Capability... capabilities) { return requireCapabilities(CapabilitySet.from(capabilities)); } public Method requireCapabilities(CapabilitySet capabilities) { - if (filter != null) throw new IllegalStateException(); + verifyNoFilterAssigned(); filter = new RequireCapabilitiesFilter(capabilities); return this; } + private void verifyNoFilterAssigned() { if (filter != null && filter != defaultFilter) throw new IllegalStateException(); } + public RequestAccessFilter requestAccessFilter() { return filter; } /** |