You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kw...@apache.org on 2018/03/26 10:21:13 UTC

[1/2] lucene-solr:master: LUCENE-8220: Fix yet another case where we cannot tile.

Repository: lucene-solr
Updated Branches:
  refs/heads/master 624d128b5 -> 07d255a70


LUCENE-8220: Fix yet another case where we cannot tile.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/26ba705a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/26ba705a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/26ba705a

Branch: refs/heads/master
Commit: 26ba705a4f2537505fd75a326a751a627694bd32
Parents: 4bb02d8
Author: Karl Wright <Da...@gmail.com>
Authored: Mon Mar 26 06:20:34 2018 -0400
Committer: Karl Wright <Da...@gmail.com>
Committed: Mon Mar 26 06:20:34 2018 -0400

----------------------------------------------------------------------
 .../spatial3d/geom/GeoPolygonFactory.java       | 62 ++++++++++----------
 .../lucene/spatial3d/geom/GeoPolygonTest.java   | 28 +++++++++
 2 files changed, 60 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/26ba705a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
index d8938dc..a5a4406 100755
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
@@ -175,20 +175,20 @@ public class GeoPolygonFactory {
       holes = null;
     }
 
-    // First, exercise a sanity filter on the provided pointList, and remove identical points, linear points, and backtracks
-    //System.err.println(" filtering "+pointList.size()+" points...");
-    //final long startTime = System.currentTimeMillis();
-    final List<GeoPoint> firstFilteredPointList = filterPoints(description.points);
-    if (firstFilteredPointList == null) {
-      return null;
-    }
-    final List<GeoPoint> filteredPointList = filterEdges(firstFilteredPointList, leniencyValue);
-    //System.err.println("  ...done in "+(System.currentTimeMillis()-startTime)+"ms ("+((filteredPointList==null)?"degenerate":(filteredPointList.size()+" points"))+")");
-    if (filteredPointList == null) {
-      return null;
-    }
+    if (description.points.size() <= SMALL_POLYGON_CUTOFF_EDGES) {
+      // First, exercise a sanity filter on the provided pointList, and remove identical points, linear points, and backtracks
+      //System.err.println(" filtering "+pointList.size()+" points...");
+      //final long startTime = System.currentTimeMillis();
+      final List<GeoPoint> firstFilteredPointList = filterPoints(description.points);
+      if (firstFilteredPointList == null) {
+        return null;
+      }
+      final List<GeoPoint> filteredPointList = filterEdges(firstFilteredPointList, leniencyValue);
+      //System.err.println("  ...done in "+(System.currentTimeMillis()-startTime)+"ms ("+((filteredPointList==null)?"degenerate":(filteredPointList.size()+" points"))+")");
+      if (filteredPointList == null) {
+        return null;
+      }
 
-    if (filteredPointList.size() <= SMALL_POLYGON_CUTOFF_EDGES) {
       try {
         //First approximation to find a point
         final GeoPoint centerOfMass = getCenterOfMass(planetModel, filteredPointList);
@@ -1144,7 +1144,7 @@ public class GeoPolygonFactory {
     final MutableBoolean seenConcave,
     final EdgeBuffer edgeBuffer,
     final List<GeoPolygon> holes,
-    final GeoPoint testPoint) {
+    final GeoPoint testPoint) throws TileException {
       
     if (edgeBuffer.size() == 0) {
       return true;
@@ -1182,25 +1182,27 @@ public class GeoPolygonFactory {
       edge = edgeBuffer.getNext(edge);
     }
     
-    // Since we attempt to prevent the addition of any edge that shows up as colinear, and we filter out colinear edge parts
-    // beforehand, it isn't possible to have a colinear edge at this point.
-    if (testPoint != null && holes != null && holes.size() > 0) {
-      // No holes, for test
-      final GeoPolygon testPolygon = new GeoConcavePolygon(planetModel, points, null, internalEdges, isInternal);
-      if (testPolygon.isWithin(testPoint)) {
-        return false;
+    try {
+      if (testPoint != null && holes != null && holes.size() > 0) {
+        // No holes, for test
+        final GeoPolygon testPolygon = new GeoConcavePolygon(planetModel, points, null, internalEdges, isInternal);
+        if (testPolygon.isWithin(testPoint)) {
+          return false;
+        }
       }
-    }
-      
-    final GeoPolygon realPolygon = new GeoConcavePolygon(planetModel, points, holes, internalEdges, isInternal);
-    if (testPoint != null && (holes == null || holes.size() == 0)) {
-      if (realPolygon.isWithin(testPoint)) {
-        return false;
+        
+      final GeoPolygon realPolygon = new GeoConcavePolygon(planetModel, points, holes, internalEdges, isInternal);
+      if (testPoint != null && (holes == null || holes.size() == 0)) {
+        if (realPolygon.isWithin(testPoint)) {
+          return false;
+        }
       }
+        
+      rval.addShape(realPolygon);
+      return true;
+    } catch (IllegalArgumentException e) {
+      throw new TileException(e.getMessage());
     }
-      
-    rval.addShape(realPolygon);
-    return true;
   }
   
   /** Look for a convex polygon at the specified edge.  If we find it, create one and adjust the edge buffer.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/26ba705a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java
index 9d2aa1e..2625ba7 100755
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java
@@ -1176,4 +1176,32 @@ shape:
     Collections.reverse(points);
     polygon  = GeoPolygonFactory.makeGeoPolygon(PlanetModel.SPHERE, points);
   }
+
+  @Test
+  public void testCoplanarityConvex2() throws Exception {
+    //POLYGON((-3.488658 50.45564,-3.4898987 50.455627,-3.489865 50.455585,-3.489833 50.45551,-3.489808 50.455433,-3.489806 50.455406,-3.4898643 50.45525,-3.4892037 50.455162,-3.4891756 50.455166,-3.4891088 50.455147,-3.4890108 50.455166,-3.4889853 50.455166,-3.48895 50.45516,-3.488912 50.455166,-3.4889014 50.455177,-3.488893 50.455185,-3.488927 50.45523,-3.4890666 50.455456,-3.48905 50.455467,-3.488658 50.45564))
+    List<GeoPoint> points = new ArrayList<>();
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.45564), Geo3DUtil.fromDegrees(-3.488658)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455627), Geo3DUtil.fromDegrees(-3.4898987)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455585), Geo3DUtil.fromDegrees(-3.489865)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.45551), Geo3DUtil.fromDegrees(-3.489833)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455433), Geo3DUtil.fromDegrees(-3.489808)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455406), Geo3DUtil.fromDegrees(-3.489806)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.45525), Geo3DUtil.fromDegrees(-3.4898643)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455162), Geo3DUtil.fromDegrees(-3.4892037)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455166), Geo3DUtil.fromDegrees(-3.4891756)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455147), Geo3DUtil.fromDegrees(-3.4891088)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455166), Geo3DUtil.fromDegrees(-3.4890108)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455166), Geo3DUtil.fromDegrees(-3.4889853)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.45516), Geo3DUtil.fromDegrees(-3.48895)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455166), Geo3DUtil.fromDegrees(-3.488912)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455177), Geo3DUtil.fromDegrees(-3.4889014)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455185), Geo3DUtil.fromDegrees( -3.488893)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.45523), Geo3DUtil.fromDegrees(-3.488927)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455456), Geo3DUtil.fromDegrees(-3.4890666)));
+    points.add(new GeoPoint(PlanetModel.SPHERE, Geo3DUtil.fromDegrees(50.455467), Geo3DUtil.fromDegrees( -3.48905)));
+    GeoPolygon polygon = GeoPolygonFactory.makeGeoPolygon(PlanetModel.SPHERE, points);
+    Collections.reverse(points);
+    polygon  = GeoPolygonFactory.makeGeoPolygon(PlanetModel.SPHERE, points);
+  }
 }


[2/2] lucene-solr:master: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr

Posted by kw...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/07d255a7
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/07d255a7
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/07d255a7

Branch: refs/heads/master
Commit: 07d255a7087aede40b32c311f076a876cccdfb08
Parents: 26ba705 624d128
Author: Karl Wright <Da...@gmail.com>
Authored: Mon Mar 26 06:20:49 2018 -0400
Committer: Karl Wright <Da...@gmail.com>
Committed: Mon Mar 26 06:20:49 2018 -0400

----------------------------------------------------------------------
 lucene/common-build.xml                         |   3 +-
 lucene/ivy-versions.properties                  |  12 +-
 solr/CHANGES.txt                                |   5 +
 solr/bin/install_solr_service.sh                |   8 +-
 solr/bin/solr                                   |   8 +-
 solr/bin/solr.cmd                               |  52 ++--
 solr/bin/solr.in.cmd                            |   2 +-
 solr/bin/solr.in.sh                             |   8 +-
 .../clustering/src/test-files/log4j.properties  |  10 -
 .../clustering/src/test-files/log4j2.xml        |  37 +++
 .../src/test-files/log4j.properties             |   9 -
 .../dataimporthandler/src/test-files/log4j2.xml |  36 +++
 .../contrib/ltr/src/test-files/log4j.properties |  32 --
 solr/contrib/ltr/src/test-files/log4j2.xml      |  41 +++
 solr/contrib/prometheus-exporter/ivy.xml        |   5 +-
 solr/core/ivy.xml                               |   8 +-
 .../client/solrj/embedded/JettySolrRunner.java  |   2 +-
 .../solr/handler/admin/LoggingHandler.java      |   4 +-
 .../org/apache/solr/logging/LogWatcher.java     |  16 +-
 .../solr/logging/log4j/EventAppender.java       |  48 ---
 .../apache/solr/logging/log4j/Log4jInfo.java    |  52 ----
 .../apache/solr/logging/log4j/Log4jWatcher.java | 171 -----------
 .../apache/solr/logging/log4j/package-info.java |  23 --
 .../solr/logging/log4j2/Log4j2Watcher.java      | 289 +++++++++++++++++++
 .../solr/logging/log4j2/package-info.java       |  22 ++
 .../apache/solr/servlet/SolrDispatchFilter.java |   1 +
 .../src/java/org/apache/solr/util/SolrCLI.java  |   2 +-
 .../org/apache/solr/util/SolrLogLayout.java     |  69 +++--
 .../apache/solr/util/StartupLoggingUtils.java   |  39 ++-
 solr/core/src/test-files/log4j.properties       |  38 ---
 solr/core/src/test-files/log4j2.xml             |  39 +++
 .../apache/solr/handler/RequestLoggingTest.java |  42 ++-
 .../solr/handler/admin/LoggingHandlerTest.java  |  34 ++-
 .../org/apache/solr/logging/TestLogWatcher.java |  21 ++
 .../reporters/SolrSlf4jReporterTest.java        |   7 +-
 .../apache/solr/util/TestSolrCLIRunExample.java |   3 +
 solr/example/README.txt                         |   2 +-
 .../example-DIH/solr/db/conf/solrconfig.xml     |   2 +-
 .../example-DIH/solr/mail/conf/solrconfig.xml   |   2 +-
 .../example-DIH/solr/solr/conf/solrconfig.xml   |   2 +-
 solr/example/resources/log4j.properties         |  24 --
 solr/example/resources/log4j2.xml               |  53 ++++
 solr/licenses/disruptor-3.4.0.jar.sha1          |   1 +
 solr/licenses/disruptor-LICENSE-ASL.txt         | 201 +++++++++++++
 solr/licenses/disruptor-NOTICE.txt              |   0
 solr/licenses/log4j-1.2-api-2.11.0.jar.sha1     |   1 +
 solr/licenses/log4j-1.2.17.jar.sha1             |   1 -
 solr/licenses/log4j-api-2.11.0.jar.sha1         |   1 +
 solr/licenses/log4j-api-LICENSE-ASL.txt         | 201 +++++++++++++
 solr/licenses/log4j-api-NOTICE.txt              |  17 ++
 solr/licenses/log4j-core-2.11.0.jar.sha1        |   1 +
 solr/licenses/log4j-core-LICENSE-ASL.txt        | 201 +++++++++++++
 solr/licenses/log4j-core-NOTICE.txt             |  17 ++
 solr/licenses/log4j-slf4j-LICENSE-ASL.txt       | 201 +++++++++++++
 solr/licenses/log4j-slf4j-NOTICE.txt            |  17 ++
 solr/licenses/log4j-slf4j-impl-2.11.0.jar.sha1  |   1 +
 solr/licenses/slf4j-log4j12-1.7.24.jar.sha1     |   1 -
 solr/server/README.txt                          |   4 +-
 solr/server/ivy.xml                             |   9 +-
 solr/server/resources/log4j.properties          |  29 --
 solr/server/resources/log4j2.xml                |  53 ++++
 .../scripts/cloud-scripts/log4j.properties      |  12 -
 solr/server/scripts/cloud-scripts/log4j2.xml    |  37 +++
 .../scripts/cloud-scripts/snapshotscli.sh       |   4 +-
 solr/server/scripts/cloud-scripts/zkcli.bat     |   4 +-
 solr/server/scripts/cloud-scripts/zkcli.sh      |   4 +-
 .../conf/solrconfig.xml                         |   2 +-
 solr/solr-ref-guide/ivy.xml                     |   4 +-
 .../solr-ref-guide/src/configuring-logging.adoc |   8 +-
 .../src/solr-control-script-reference.adoc      |   4 +-
 .../src/taking-solr-to-production.adoc          |   4 +-
 solr/solrj/ivy.xml                              |   2 +-
 solr/solrj/src/test-files/log4j.properties      |  32 --
 solr/solrj/src/test-files/log4j2.xml            |  39 +++
 .../java/org/apache/solr/SolrTestCaseJ4.java    |   9 +-
 .../src/java/org/apache/solr/util/LogLevel.java |  47 +--
 .../src/test-files/log4j.properties             |  11 -
 solr/test-framework/src/test-files/log4j2.xml   |  39 +++
 .../apache/solr/TestLogLevelAnnotations.java    |  16 +-
 79 files changed, 1838 insertions(+), 680 deletions(-)
----------------------------------------------------------------------