ejn commented on PR #2273:
URL: https://github.com/apache/solr/pull/2273#issuecomment-1951776336

   @risdenk I got an error with the following log entry using JTS 1.15:
   `
   2024-02-16 09:30:40.817 ERROR (qtp124734309-19784) [geo shard1 core_node7 
geo_shard1_replica_n4] o.a.s.s.HttpSolrCall 500 Exception => 
java.lang.RuntimeException: java.lang.NoSuchMethodError: 
'org.locationtech.jts.geom.LinearRing 
org.locationtech.jts.geom.Polygon.getExteriorRing()'
           at 
org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:823)
   java.lang.RuntimeException: java.lang.NoSuchMethodError: 
'org.locationtech.jts.geom.LinearRing 
org.locationtech.jts.geom.Polygon.getExteriorRing()'
           at 
org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:823) ~[?:?]
           at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:596) 
~[?:?]
           at 
org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:262)
 ~[?:?]
           at 
org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilter$0(SolrDispatchFilter.java:219)
 ~[?:?]
           at 
org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:246)
 ~[?:?]
           at 
org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:215) 
~[?:?]
           at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:213)
 ~[?:?]
           at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
 ~[?:?]
           at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
~[jetty-servlet-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
 ~[jetty-servlet-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) 
~[jetty-servlet-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) 
~[jetty-security-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) 
~[jetty-servlet-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
 ~[jetty-rewrite-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) 
~[jetty-server-10.0.17.jar:10.0.17]
           at org.eclipse.jetty.server.Server.handle(Server.java:563) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
 ~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) 
~[jetty-server-10.0.17.jar:10.0.17]
           at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) 
~[jetty-server-10.0.17.jar:10.0.17]
           at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:461) 
~[jetty-server-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:193)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:208) 
~[http2-common-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:155) 
~[http2-common-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:450)
 ~[http2-common-10.0.17.jar:10.0.17]
           at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) 
~[jetty-io-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
 ~[jetty-io-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
 ~[jetty-util-10.0.17.jar:10.0.17]
           at java.lang.Thread.run(Thread.java:840) [?:?]
   Caused by: java.lang.NoSuchMethodError: 
'org.locationtech.jts.geom.LinearRing 
org.locationtech.jts.geom.Polygon.getExteriorRing()'
           at 
org.locationtech.spatial4j.shape.jts.JtsGeometry$1.filter(JtsGeometry.java:276) 
~[?:?]
           at org.locationtech.jts.geom.Polygon.apply(Polygon.java:337) ~[?:?]
           at 
org.locationtech.spatial4j.shape.jts.JtsGeometry.relate(JtsGeometry.java:256) 
~[?:?]
           at 
org.locationtech.spatial4j.shape.jts.JtsGeometry.relate(JtsGeometry.java:221) 
~[?:?]
           at 
org.apache.lucene.spatial.query.SpatialOperation$4.evaluate(SpatialOperation.java:91)
 ~[?:?]
           at 
org.apache.lucene.spatial.util.ShapeValuesPredicate$1.matches(ShapeValuesPredicate.java:70)
 ~[?:?]
           at 
org.apache.lucene.spatial.composite.IntersectsRPTVerifyQuery$1$1.matches(IntersectsRPTVerifyQuery.java:140)
 ~[?:?]
           at 
org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:329) 
~[?:?]
           at 
org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:233) ~[?:?]
           at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:38) 
~[?:?]
           at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:765) ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:720) 
~[?:?]
           at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:549) ~[?:?]
           at 
org.apache.solr.search.DocSetUtil.createDocSetGeneric(DocSetUtil.java:154) 
~[?:?]
           at 
org.apache.solr.search.DocSetUtil.createDocSet(DocSetUtil.java:141) ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getDocSetNC(SolrIndexSearcher.java:1394)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.lambda$getAndCacheDocSet$1(SolrIndexSearcher.java:989)
 ~[?:?]
           at 
org.apache.solr.search.CaffeineCache.computeAsync(CaffeineCache.java:233) ~[?:?]
           at 
org.apache.solr.search.CaffeineCache.computeIfAbsent(CaffeineCache.java:249) 
~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getAndCacheDocSet(SolrIndexSearcher.java:989)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:945)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getProcessedFilter(SolrIndexSearcher.java:1212)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1822)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1707)
 ~[?:?]
           at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:710) 
~[?:?]
           at 
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1696)
 ~[?:?]
           at 
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:422)
 ~[?:?]
           at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:467)
 ~[?:?]
           at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:226)
 ~[?:?]
           at org.apache.solr.core.SolrCore.execute(SolrCore.java:2901) ~[?:?]
           at 
org.apache.solr.servlet.HttpSolrCall.executeCoreRequest(HttpSolrCall.java:875) 
~[?:?]
           at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:561) 
~[?:?]
           ... 53 more
   `
   
   I then arrived at JTS 1.17.1 by checking the versions of Spatial4J and JTS 
referenced in Lucene for testing and then checking their changelogs (the API 
change resulting in this error message is listed in the JTS changelog). Since 
1.17.0 appears to be the version used for testing Lucene and there are API 
changes both from 1.16 to 1.17 and from 1.17 to 1.18 then using anything other 
than 1 1.17.x seems risky to me.
   
   Agree with the other comments though regarding bundling a current version of 
JTS if possible in future.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to