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

Isabelle Giguere commented on SOLR-14268:
-----------------------------------------

Cannot reproduce this issue on Solr 9.10.0

> Re-creating deleted Managed Stopwords lists results in error
> ------------------------------------------------------------
>
>                 Key: SOLR-14268
>                 URL: https://issues.apache.org/jira/browse/SOLR-14268
>             Project: Solr
>          Issue Type: Bug
>          Components: Schema and Analysis
>    Affects Versions: 6.6.6, 7.7.2, 8.4.1
>            Reporter: Thomas Corthals
>            Priority: Major
>              Labels: ManagedStopwordFilterFactory, REST, Solr
>
> Creating a Managed Stopwords list that has the same name as a previously 
> deleted list results in an error if the core has been reloaded after deleting 
> the list. Going through the same flow with Managed Synonyms doesn't result in 
> this unexpected behaviour.
> On a newly started standalone Solr with the techproducts core:
> {code:bash}
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=techproducts
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> {code}
> The second PUT request results in a status 500 with error msg 
> "java.util.LinkedHashMap cannot be cast to java.util.List".
> {code:json}
> {
>  "responseHeader":{
>  "status":500,
>  "QTime":2},
>  "error":{
>  "msg":"java.util.LinkedHashMap cannot be cast to java.util.List",
>  "trace":"java.lang.ClassCastException: java.util.LinkedHashMap cannot be 
> cast to java.util.List\r\n\tat 
> org.apache.solr.rest.schema.analysis.ManagedWordSetResource.applyUpdatesToManagedData(ManagedWordSetResource.java:163)\r\n\tat
>  org.apache.solr.rest.ManagedResource.doPut(ManagedResource.java:395)\r\n\tat 
> org.apache.solr.rest.RestManager$ManagedEndpoint.put(RestManager.java:343)\r\n\tat
>  
> org.restlet.resource.ServerResource.doHandle(ServerResource.java:447)\r\n\tat 
> org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:359)\r\n\tat
>  org.restlet.resource.ServerResource.handle(ServerResource.java:1044)\r\n\tat 
> org.restlet.resource.Finder.handle(Finder.java:236)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Router.doHandle(Router.java:422)\r\n\tat 
> org.restlet.routing.Router.handle(Router.java:639)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)\r\n\tat
>  org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)\r\n\tat 
> org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75)\r\n\tat
>  org.restlet.Application.handle(Application.java:385)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Router.doHandle(Router.java:422)\r\n\tat 
> org.restlet.routing.Router.handle(Router.java:639)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.routing.Router.doHandle(Router.java:422)\r\n\tat 
> org.restlet.routing.Router.handle(Router.java:639)\r\n\tat 
> org.restlet.routing.Filter.doHandle(Filter.java:150)\r\n\tat 
> org.restlet.routing.Filter.handle(Filter.java:197)\r\n\tat 
> org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)\r\n\tat 
> org.restlet.Component.handle(Component.java:408)\r\n\tat 
> org.restlet.Server.handle(Server.java:507)\r\n\tat 
> org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)\r\n\tat
>  
> org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)\r\n\tat
>  
> org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1117)\r\n\tat
>  javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\r\n\tat 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:876)\r\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)\r\n\tat
>  
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)\r\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)\r\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)\r\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)\r\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)\r\n\tat
>  org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:227)\r\n\tat 
> org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:78)\r\n\tat 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:428)\r\n\tat
>  
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:351)\r\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)\r\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)\r\n\tat
>  
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\r\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)\r\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)\r\n\tat
>  
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)\r\n\tat
>  
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)\r\n\tat
>  
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)\r\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)\r\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\r\n\tat
>  
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)\r\n\tat
>  
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\r\n\tat
>  org.eclipse.jetty.server.Server.handle(Server.java:505)\r\n\tat 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)\r\n\tat 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)\r\n\tat
>  
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)\r\n\tat
>  org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)\r\n\tat 
> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)\r\n\tat 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)\r\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)\r\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)\r\n\tat
>  
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)\r\n\tat
>  
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)\r\n\tat
>  
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)\r\n\tat
>  
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)\r\n\tat
>  java.lang.Thread.run(Unknown Source)\r\n",
>  "code":500}}
> {code}
> Similar requests for synonyms work fine, no matter how many times I repeat 
> the CREATE/DELETE/RELOAD cycle:
> {code:bash}
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory$SynonymManager"}'
>  \
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=techproducts
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory$SynonymManager"}'
>  \
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap 
> {code}
> Reloading after creating the Stopwords list but not after deleting it works 
> without error too on a fresh techproducts core (you'll have to remove the 
> directory from disk and create the core again after running the previous 
> commands).
> {code:bash}
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=techproducts
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> {code}
> And even curiouser, when doing a CREATE/DELETE for Stopwords, then a 
> CREATE/DELETE for Synonyms, and only then a RELOAD of the core, the cycle can 
> be completed twice. (Again, on a freshly created techproducts core.) Only the 
> third attempt to create a list results in an error. Synonyms can still be 
> created and deleted repeatedly after this.
> {code:bash}
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory$SynonymManager"}'
>  \
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=techproducts
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory$SynonymManager"}'
>  \
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl -X DELETE 
> http://localhost:8983/solr/techproducts/schema/analysis/synonyms/testmap
> curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=techproducts
> curl -X PUT -H 'Content-type:application/json' --data-binary \
> '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
> http://localhost:8983/solr/techproducts/schema/analysis/stopwords/testlist
> {code}
> The same successes/errors occur when running each cycle against a different 
> core if the cores share the same configset.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to