summaryrefslogtreecommitdiffstats
path: root/jrt
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-02-09 18:47:54 +0100
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-02-09 18:48:21 +0100
commit2285ab16617367de5a5d412589892da51e7aca35 (patch)
tree5818b1c8d703001c303425c5451190b4263e55a2 /jrt
parent3014e3e42ce93ec638eda67d0fd0c40f68431707 (diff)
Fix check for detecting existing filter being overridden
Diffstat (limited to 'jrt')
-rw-r--r--jrt/src/com/yahoo/jrt/Method.java9
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; }
/**