[ 
https://issues.apache.org/jira/browse/SOLR-16863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741710#comment-17741710
 ] 

Ishan Chattopadhyaya commented on SOLR-16863:
---------------------------------------------

bq. I think the best solution would be to capture a 404 error and give a 
warning to the user that they need to enable to SQL module. And we can link to 
the ref guide.

I'm wondering if either of the following would be even better.

1) If we can, we can consider, upon the page load, firing a request to the 
backend to check if the SQL module is enabled; and show an error upfront 
(before the user has issued any query). 

2) Don't even show a link to the page unless the SQL module is enabled.

Unfortunately, I don't know what it would take to do any of this in the admin 
UI.

> Class not found SQLHandler
> --------------------------
>
>                 Key: SOLR-16863
>                 URL: https://issues.apache.org/jira/browse/SOLR-16863
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Ishan Chattopadhyaya
>            Priority: Major
>
> Built latest Solr from branch_9x, created a collection, opened the Admin UI, 
> dropped down on collections and selected one, went to SQL tab, issued a basic 
> SQL query and there was no response. Clicked on the underlying query, a new 
> tab opened up with the following:
> {code}
> {
> "error":{
> "metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","java.lang.ClassNotFoundException"],
> "msg":" Error loading class 'solr.SQLHandler'",
> "trace":"org.apache.solr.common.SolrException:  Error loading class 
> 'solr.SQLHandler'\n\tat 
> org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:549)\n\tat
>  
> org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:470)\n\tat
>  org.apache.solr.core.SolrCore.createInstance(SolrCore.java:937)\n\tat 
> org.apache.solr.core.PluginBag$LazyPluginHolder.createInst(PluginBag.java:514)\n\tat
>  
> org.apache.solr.core.PluginBag$LazyPluginHolder.get(PluginBag.java:496)\n\tat 
> org.apache.solr.core.PluginBag.get(PluginBag.java:196)\n\tat 
> org.apache.solr.handler.RequestHandlerBase.getRequestHandler(RequestHandlerBase.java:313)\n\tat
>  org.apache.solr.core.SolrCore.getRequestHandler(SolrCore.java:1971)\n\tat 
> org.apache.solr.servlet.HttpSolrCall.extractHandlerFromURLPath(HttpSolrCall.java:435)\n\tat
>  org.apache.solr.servlet.HttpSolrCall.init(HttpSolrCall.java:331)\n\tat 
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:515)\n\tat 
> org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:250)\n\tat
>  
> org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilter$0(SolrDispatchFilter.java:218)\n\tat
>  
> org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:257)\n\tat
>  
> org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:227)\n\tat
>  
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:213)\n\tat
>  
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)\n\tat
>  org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)\n\tat 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)\n\tat
>  
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)\n\tat
>  
> org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228)\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat
>  
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat
>  
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822)\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat
>  org.eclipse.jetty.server.Server.handle(Server.java:563)\n\tat 
> org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)\n\tat
>  org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)\n\tat 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)\n\tat 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)\n\tat
>  
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)\n\tat
>  org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)\n\tat 
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)\n\tat
>  
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)\n\tat
>  
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)\n\tat
>  
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)\n\tat
>  
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)\n\tat
>  java.base/java.lang.Thread.run(Thread.java:834)\nCaused by: 
> java.lang.ClassNotFoundException: solr.SQLHandler\n\tat 
> java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)\n\tat 
> java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)\n\tat 
> java.base/java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:899)\n\tat
>  java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)\n\tat 
> java.base/java.lang.Class.forName0(Native Method)\n\tat 
> java.base/java.lang.Class.forName(Class.java:398)\n\tat 
> org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:533)\n\t...
>  57 more\n",
> "code":500
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to