From 2285ab16617367de5a5d412589892da51e7aca35 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Thu, 9 Feb 2023 18:47:54 +0100 Subject: Fix check for detecting existing filter being overridden --- jrt/src/com/yahoo/jrt/Method.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'jrt/src') 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; } /** -- cgit v1.2.3