[ https://issues.apache.org/jira/browse/SOLR-5180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott Blum resolved SOLR-5180. ------------------------------ Resolution: Fixed This is now fixed > Core admin reload for an invalid core name returns 500 rather than 400 status > code > ---------------------------------------------------------------------------------- > > Key: SOLR-5180 > URL: https://issues.apache.org/jira/browse/SOLR-5180 > Project: Solr > Issue Type: Bug > Components: multicore > Affects Versions: 4.4 > Reporter: Jack Krupansky > Assignee: Scott Blum > Priority: Major > > A core admin request to reload a nonexistent core name returns a 500 Server > Error rather than a 400 Invalid Request status code. > The request: > {code} > curl > "http://localhost:8983/solr/admin/cores?action=reload&core=bogus&indent=true" > {code} > The response: > {code} > <?xml version="1.0" encoding="UTF-8"?> > <response> > <lst name="responseHeader"> > <int name="status">500</int> > <int name="QTime">5</int> > </lst> > <lst name="error"> > <str name="msg">Error handling 'reload' action</str> > <str name="trace">org.apache.solr.common.SolrException: Error handling > 'reload' action > at > org.apache.solr.handler.admin.CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:673) > at > org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:172) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) > at > org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:655) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:246) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > at org.eclipse.jetty.server.Server.handle(Server.java:368) > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) > at > org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) > at > org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) > at > org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) > at > org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > at java.lang.Thread.run(Unknown Source) > Caused by: org.apache.solr.common.SolrException: Unable to reload core: bogus > at > org.apache.solr.core.CoreContainer.recordAndThrow(CoreContainer.java:930) > at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:685) > at > org.apache.solr.handler.admin.CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:671) > ... 30 more > Caused by: org.apache.solr.common.SolrException: No such core: bogus > at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:636) > ... 31 more > </str> > <int name="code">500</int> > </lst> > </response> > {code} > The code at CoreContainer.reload(CoreContainer.java:636) correctly throws a > Solr Bad Request Exception: > {Code} > if (core == null) > throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "No > such core: " + name ); > {code} > But then the code at > CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:673) catches it and > throws the Server Error exception: > {code} > try { > coreContainer.reload(cname); > } catch (Exception ex) { > throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error > handling 'reload' action", ex); > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org