gerlowskija commented on code in PR #1682:
URL: https://github.com/apache/solr/pull/1682#discussion_r1244150135


##########
solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java:
##########
@@ -0,0 +1,255 @@
+package org.apache.solr.handler.admin.api;
+
+import static 
org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import org.apache.solr.common.MapWriter;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.cloud.SolrClassLoader;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.core.PluginInfo;
+import org.apache.solr.jersey.PermissionName;
+import org.apache.solr.jersey.SolrJerseyResponse;
+import org.apache.solr.pkg.PackageListeningClassLoader;
+import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.security.PermissionNameProvider;
+
+public class GetSchemaFieldAPI extends GetSchemaAPI {

Review Comment:
   FYI @bszabo97
   
   It looks like inheriting from GetSchemaAPI causes a minor warning when you 
enable "strict validation" of Jersey resources.  ("Strict validation" is 
governed by a setting in JerseyApplications.java.  It's disabled by default for 
speed reasons, but it's useful to enable it from time to time in dev as a way 
to lint the JAX-RS code a bit.  This bug in particular was caught by @stillalex 
- kudos to him!)
   
   ```
   [[FATAL] A resource model has ambiguous (sub-)resource method for HTTP 
method GET and input mime-types as defined by"@Consumes" and "@Produces" 
annotations at Java methods public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaInfoResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaInfo() and public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaInfoResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaInfo() at matching 
regular expression /(cores|collections)/([^/]+)/schema. These two methods 
produces and consumes exactly the same mime-types and therefore their 
invocation as a resource methods will always fail.; 
source='org.glassfish.jersey.server.model.RuntimeResource@4272ba2e', [FATAL] A 
resource model has ambiguous (sub-)resource method for HTTP method GET and 
input mime-types as defined by"@Consumes" and "@Produces" annotations at Java 
methods public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaSimilarityResponse 
org.apache.solr.hand
 ler.admin.api.GetSchemaAPI.getSchemaSimilarity() and public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaSimilarityResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaSimilarity() at 
matching regular expression /similarity. These two methods produces and 
consumes exactly the same mime-types and therefore their invocation as a 
resource methods will always fail.; 
source='org.glassfish.jersey.server.model.RuntimeResource@4651ba9d', [FATAL] A 
resource model has ambiguous (sub-)resource method for HTTP method GET and 
input mime-types as defined by"@Consumes" and "@Produces" annotations at Java 
methods public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaUniqueKeyResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaUniqueKey() and public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaUniqueKeyResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaUniqueKey() at matching 
regular expression /uniquekey. These two methods produces and co
 nsumes exactly the same mime-types and therefore their invocation as a 
resource methods will always fail.; 
source='org.glassfish.jersey.server.model.RuntimeResource@10595d07', [FATAL] A 
resource model has ambiguous (sub-)resource method for HTTP method GET and 
input mime-types as defined by"@Consumes" and "@Produces" annotations at Java 
methods public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaVersionResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaVersion() and public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaVersionResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaVersion() at matching 
regular expression /version. These two methods produces and consumes exactly 
the same mime-types and therefore their invocation as a resource methods will 
always fail.; 
source='org.glassfish.jersey.server.model.RuntimeResource@733752b1', [FATAL] A 
resource model has ambiguous (sub-)resource method for HTTP method GET and 
input mime-types as defined
  by"@Consumes" and "@Produces" annotations at Java methods public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaNameResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaName() throws 
java.lang.Exception and public 
org.apache.solr.handler.admin.api.GetSchemaAPI$SchemaNameResponse 
org.apache.solr.handler.admin.api.GetSchemaAPI.getSchemaName() throws 
java.lang.Exception at matching regular expression /name. These two methods 
produces and consumes exactly the same mime-types and therefore their 
invocation as a resource methods will always fail.; 
source='org.glassfish.jersey.server.model.RuntimeResource@24433533']
        at 
org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:375)
 ~[?:?]
        at 
org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:297)
 ~[?:?]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[?:?]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[?:?]
        at 
org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232) 
~[?:?]
        at 
org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:296)
 ~[?:?]
        at 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:261)
 ~[?:?]
        at 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:236)
 ~[?:?]
        at org.apache.solr.core.SolrCore.lambda$new$2(SolrCore.java:1155) ~[?:?]
   ```
   
   In short - GetSchemaFieldAPI inherits all of the endpoints that GetSchemaAPI 
offers, and Jersey complains because under normal circumstances you don't want 
multiple registrations for the same endpoint (as they'd shadow one another).
   
   I'll take care of this when I go to backport shortly, but figured I'd 
mention it here as a heads up to anyone that reads this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to