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 2016/06/28 10:30:31 UTC

[1/2] lucene-solr:branch_6x: LUCENE-7357: If the points for path segment intersections are ambiguous, throw an IllegalArgumentException.

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 09a7e4da3 -> d0346d606


LUCENE-7357: If the points for path segment intersections are ambiguous, throw an IllegalArgumentException.


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

Branch: refs/heads/branch_6x
Commit: cd1fada39341a2dec60ab94120f6b3e5c28ab665
Parents: 388d388
Author: Karl Wright <Da...@gmail.com>
Authored: Tue Jun 28 06:27:21 2016 -0400
Committer: Karl Wright <Da...@gmail.com>
Committed: Tue Jun 28 06:28:34 2016 -0400

----------------------------------------------------------------------
 .../lucene/spatial3d/geom/GeoStandardPath.java  | 35 +++++++++++++++-----
 .../apache/lucene/spatial3d/geom/XYZBounds.java |  2 +-
 .../lucene/spatial3d/geom/GeoPathTest.java      | 35 ++++++++++++++++++++
 3 files changed, 63 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cd1fada3/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoStandardPath.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoStandardPath.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoStandardPath.java
index 0f06717..51c5078 100755
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoStandardPath.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoStandardPath.java
@@ -244,12 +244,14 @@ class GeoStandardPath extends GeoBasePath {
   @Override
   public boolean isWithin(final double x, final double y, final double z) {
     for (SegmentEndpoint pathPoint : endPoints) {
-      if (pathPoint.isWithin(x, y, z))
+      if (pathPoint.isWithin(x, y, z)) {
         return true;
+      }
     }
     for (PathSegment pathSegment : segments) {
-      if (pathSegment.isWithin(x, y, z))
+      if (pathSegment.isWithin(x, y, z)) {
         return true;
+      }
     }
     return false;
   }
@@ -626,7 +628,7 @@ class GeoStandardPath extends GeoBasePath {
       this.start = start;
       this.end = end;
       this.normalizedConnectingPlane = normalizedConnectingPlane;
-        
+      
       // Either start or end should be on the correct side
       upperConnectingPlane = new SidedPlane(start, normalizedConnectingPlane, -planeBoundingOffset);
       lowerConnectingPlane = new SidedPlane(start, normalizedConnectingPlane, planeBoundingOffset);
@@ -642,21 +644,33 @@ class GeoStandardPath extends GeoBasePath {
       if (points.length == 0) {
         throw new IllegalArgumentException("Some segment boundary points are off the ellipsoid; path too wide");
       }
+      if (points.length > 1) {
+        throw new IllegalArgumentException("Ambiguous boundary points; path too short");
+      }
       this.ULHC = points[0];
       points = upperConnectingPlane.findIntersections(planetModel, endCutoffPlane, lowerSide, startSide);
       if (points.length == 0) {
         throw new IllegalArgumentException("Some segment boundary points are off the ellipsoid; path too wide");
       }
+      if (points.length > 1) {
+        throw new IllegalArgumentException("Ambiguous boundary points; path too short");
+      }
       this.URHC = points[0];
       points = lowerConnectingPlane.findIntersections(planetModel, startCutoffPlane, upperSide, endSide);
       if (points.length == 0) {
         throw new IllegalArgumentException("Some segment boundary points are off the ellipsoid; path too wide");
       }
+      if (points.length > 1) {
+        throw new IllegalArgumentException("Ambiguous boundary points; path too short");
+      }
       this.LLHC = points[0];
       points = lowerConnectingPlane.findIntersections(planetModel, endCutoffPlane, upperSide, startSide);
       if (points.length == 0) {
         throw new IllegalArgumentException("Some segment boundary points are off the ellipsoid; path too wide");
       }
+      if (points.length > 1) {
+        throw new IllegalArgumentException("Ambiguous boundary points; path too short");
+      }
       this.LRHC = points[0];
       upperConnectingPlanePoints = new GeoPoint[]{ULHC, URHC};
       lowerConnectingPlanePoints = new GeoPoint[]{LLHC, LRHC};
@@ -791,11 +805,16 @@ class GeoStandardPath extends GeoBasePath {
      */
     public void getBounds(final PlanetModel planetModel, Bounds bounds) {
       // We need to do all bounding planes as well as corner points
-      bounds.addPoint(start).addPoint(end).addPoint(ULHC).addPoint(URHC).addPoint(LRHC).addPoint(LLHC);
-      bounds.addPlane(planetModel, upperConnectingPlane, lowerConnectingPlane, startCutoffPlane, endCutoffPlane);
-      bounds.addPlane(planetModel, lowerConnectingPlane, upperConnectingPlane, startCutoffPlane, endCutoffPlane);
-      bounds.addPlane(planetModel, startCutoffPlane, endCutoffPlane, upperConnectingPlane, lowerConnectingPlane);
-      bounds.addPlane(planetModel, endCutoffPlane, startCutoffPlane, upperConnectingPlane, lowerConnectingPlane);
+      bounds.addPoint(start).addPoint(end)
+        .addPoint(ULHC).addPoint(URHC).addPoint(LRHC).addPoint(LLHC)
+        .addPlane(planetModel, upperConnectingPlane, lowerConnectingPlane, startCutoffPlane, endCutoffPlane)
+        .addPlane(planetModel, lowerConnectingPlane, upperConnectingPlane, startCutoffPlane, endCutoffPlane)
+        .addPlane(planetModel, startCutoffPlane, endCutoffPlane, upperConnectingPlane, lowerConnectingPlane)
+        .addPlane(planetModel, endCutoffPlane, startCutoffPlane, upperConnectingPlane, lowerConnectingPlane)
+        .addIntersection(planetModel, upperConnectingPlane, startCutoffPlane, lowerConnectingPlane, endCutoffPlane)
+        .addIntersection(planetModel, startCutoffPlane, lowerConnectingPlane, endCutoffPlane, upperConnectingPlane)
+        .addIntersection(planetModel, lowerConnectingPlane, endCutoffPlane, upperConnectingPlane, startCutoffPlane)
+        .addIntersection(planetModel, endCutoffPlane, upperConnectingPlane, startCutoffPlane, lowerConnectingPlane);
     }
 
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cd1fada3/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZBounds.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZBounds.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZBounds.java
index 9f44157..85659ab 100644
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZBounds.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZBounds.java
@@ -30,7 +30,7 @@ public class XYZBounds implements Bounds {
    * unacceptably large.
    * Also, see LUCENE-7290 for a description of how geometry can magnify the bounds delta.
    */
-  private static final double FUDGE_FACTOR = Vector.MINIMUM_RESOLUTION * 1000.0;
+  private static final double FUDGE_FACTOR = Vector.MINIMUM_RESOLUTION * 1e3;
   
   /** Minimum x */
   private Double minX = null;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cd1fada3/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java
index f5dd8b0..648854e 100755
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java
@@ -267,4 +267,39 @@ public class GeoPathTest {
     p.done();//at least test this doesn't bomb like it used too -- LUCENE-6520
   }
 
+  @Test
+  public void testFailure1() {
+    /*
+   GeoStandardPath: {planetmodel=PlanetModel.WGS84, width=1.117010721276371(64.0), points={[
+   [lat=2.18531083006635E-12, lon=-3.141592653589793([X=-1.0011188539924791, Y=-1.226017000107956E-16, Z=2.187755873813378E-12])], 
+   [lat=0.0, lon=-3.141592653589793([X=-1.0011188539924791, Y=-1.226017000107956E-16, Z=0.0])]]}}
+    */
+    final GeoPoint[] points = new GeoPoint[]{
+      new GeoPoint(PlanetModel.WGS84, 2.18531083006635E-12, -3.141592653589793),
+      new GeoPoint(PlanetModel.WGS84, 0.0, -3.141592653589793)};
+    
+    final GeoPath path;
+    try {
+      path = GeoPathFactory.makeGeoPath(PlanetModel.WGS84,
+        1.117010721276371, points);
+    } catch (IllegalArgumentException e) {
+      return;
+    }
+    assertTrue(false);
+    
+    final GeoPoint point = new GeoPoint(PlanetModel.WGS84, -2.848117399637174E-91, -1.1092122135274942);
+    System.err.println("point = "+point);
+      
+    final XYZBounds bounds = new XYZBounds();
+    path.getBounds(bounds);
+      
+    final XYZSolid solid = XYZSolidFactory.makeXYZSolid(PlanetModel.WGS84,
+      bounds.getMinimumX(), bounds.getMaximumX(),
+      bounds.getMinimumY(), bounds.getMaximumY(),
+      bounds.getMinimumZ(), bounds.getMaximumZ());
+      
+    assertTrue(path.isWithin(point));
+    assertTrue(solid.isWithin(point));
+  }
+  
 }


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

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


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

Branch: refs/heads/branch_6x
Commit: d0346d606e3282997c96ec7a3df12a34471a9d11
Parents: cd1fada 09a7e4d
Author: Karl Wright <Da...@gmail.com>
Authored: Tue Jun 28 06:29:56 2016 -0400
Committer: Karl Wright <Da...@gmail.com>
Committed: Tue Jun 28 06:29:56 2016 -0400

----------------------------------------------------------------------
 dev-tools/scripts/addBackcompatIndexes.py       |  30 +-
 dev-tools/scripts/addVersion.py                 |  19 +-
 dev-tools/scripts/releasedJirasRegex.py         |  93 ++++
 dev-tools/scripts/scriptutil.py                 |   7 +-
 lucene/CHANGES.txt                              |  59 +++
 .../lucene/analysis/minhash/MinHashFilter.java  | 504 +++++++++++++++++++
 .../analysis/minhash/MinHashFilterFactory.java  |  57 +++
 .../lucene/analysis/minhash/package-info.java   |  21 +
 ...ache.lucene.analysis.util.TokenFilterFactory |   1 +
 .../analysis/minhash/MinHashFilterTest.java     | 330 ++++++++++++
 .../index/TestBackwardsCompatibility.java       |   2 +
 .../org/apache/lucene/index/index.5.5.2-cfs.zip | Bin 0 -> 13722 bytes
 .../apache/lucene/index/index.5.5.2-nocfs.zip   | Bin 0 -> 13724 bytes
 .../java/org/apache/lucene/util/Version.java    |   7 +
 lucene/ivy-versions.properties                  |  12 +-
 .../org/apache/lucene/search/CheckHits.java     |   6 +-
 solr/CHANGES.txt                                | 240 ++++++++-
 .../apache/solr/hadoop/SolrRecordWriter.java    |   7 +-
 .../solr/hadoop/TreeMergeOutputFormat.java      |   5 +-
 solr/contrib/morphlines-core/ivy.xml            |   5 +-
 solr/core/ivy.xml                               |   8 +-
 .../cloud/OverseerCollectionMessageHandler.java |   4 +-
 .../org/apache/solr/core/CoreContainer.java     |   9 +
 .../apache/solr/core/HdfsDirectoryFactory.java  |  13 +-
 .../java/org/apache/solr/core/NodeConfig.java   |  20 +-
 .../org/apache/solr/core/SolrXmlConfig.java     |  12 +
 .../backup/repository/BackupRepository.java     | 166 ++++++
 .../repository/BackupRepositoryFactory.java     |  89 ++++
 .../backup/repository/HdfsBackupRepository.java | 159 ++++++
 .../repository/LocalFileSystemRepository.java   | 136 +++++
 .../core/backup/repository/package-info.java    |  23 +
 .../apache/solr/handler/OldBackupDirectory.java |  55 +-
 .../apache/solr/handler/ReplicationHandler.java |  61 ++-
 .../org/apache/solr/handler/RestoreCore.java    |  22 +-
 .../org/apache/solr/handler/SnapShooter.java    | 153 +++---
 .../solr/handler/admin/CollectionsHandler.java  |   4 +-
 .../solr/handler/admin/CoreAdminOperation.java  |  42 +-
 .../solr/highlight/DefaultSolrHighlighter.java  |  15 +-
 .../solr/store/blockcache/BlockDirectory.java   |   5 +-
 .../store/blockcache/BlockDirectoryCache.java   |   5 +-
 .../solr/store/blockcache/BufferStore.java      |   2 +-
 .../blockcache/CustomBufferedIndexInput.java    |   2 +-
 .../apache/solr/store/hdfs/HdfsDirectory.java   |  26 +-
 .../apache/solr/store/hdfs/HdfsFileReader.java  | 105 ----
 .../org/apache/solr/update/HdfsUpdateLog.java   |   6 -
 .../solr/collection1/conf/solrconfig.xml        |   5 +-
 solr/core/src/test-files/solr/solr-50-all.xml   |   4 +
 .../solr/cloud/BasicDistributedZk2Test.java     |  27 +-
 .../solr/core/TestBackupRepositoryFactory.java  | 152 ++++++
 .../org/apache/solr/core/TestLazyCores.java     |   4 +-
 .../test/org/apache/solr/core/TestSolrXml.java  |  13 +
 .../apache/solr/handler/BackupRestoreUtils.java |  67 +++
 .../apache/solr/handler/CheckBackupStatus.java  |  10 +-
 .../solr/handler/TestHdfsBackupRestoreCore.java | 251 +++++++++
 .../handler/TestReplicationHandlerBackup.java   |  39 +-
 .../apache/solr/handler/TestRestoreCore.java    |  52 +-
 .../solr/index/hdfs/CheckHdfsIndexTest.java     |   3 +-
 .../solr/store/hdfs/HdfsDirectoryTest.java      |   3 +-
 solr/licenses/hadoop-annotations-2.6.0.jar.sha1 |   1 -
 solr/licenses/hadoop-annotations-2.7.2.jar.sha1 |   1 +
 solr/licenses/hadoop-auth-2.6.0.jar.sha1        |   1 -
 solr/licenses/hadoop-auth-2.7.2.jar.sha1        |   1 +
 .../licenses/hadoop-common-2.6.0-tests.jar.sha1 |   1 -
 solr/licenses/hadoop-common-2.6.0.jar.sha1      |   1 -
 .../licenses/hadoop-common-2.7.2-tests.jar.sha1 |   1 +
 solr/licenses/hadoop-common-2.7.2.jar.sha1      |   1 +
 solr/licenses/hadoop-hdfs-2.6.0-tests.jar.sha1  |   1 -
 solr/licenses/hadoop-hdfs-2.6.0.jar.sha1        |   1 -
 solr/licenses/hadoop-hdfs-2.7.2-tests.jar.sha1  |   1 +
 solr/licenses/hadoop-hdfs-2.7.2.jar.sha1        |   1 +
 .../hadoop-mapreduce-client-app-2.6.0.jar.sha1  |   1 -
 .../hadoop-mapreduce-client-app-2.7.2.jar.sha1  |   1 +
 ...adoop-mapreduce-client-common-2.6.0.jar.sha1 |   1 -
 ...adoop-mapreduce-client-common-2.7.2.jar.sha1 |   1 +
 .../hadoop-mapreduce-client-core-2.6.0.jar.sha1 |   1 -
 .../hadoop-mapreduce-client-core-2.7.2.jar.sha1 |   1 +
 .../hadoop-mapreduce-client-hs-2.6.0.jar.sha1   |   1 -
 .../hadoop-mapreduce-client-hs-2.7.2.jar.sha1   |   1 +
 ...reduce-client-jobclient-2.6.0-tests.jar.sha1 |   1 -
 ...op-mapreduce-client-jobclient-2.6.0.jar.sha1 |   1 -
 ...reduce-client-jobclient-2.7.2-tests.jar.sha1 |   1 +
 ...op-mapreduce-client-jobclient-2.7.2.jar.sha1 |   1 +
 ...doop-mapreduce-client-shuffle-2.6.0.jar.sha1 |   1 -
 ...doop-mapreduce-client-shuffle-2.7.2.jar.sha1 |   1 +
 solr/licenses/hadoop-minikdc-2.6.0.jar.sha1     |   1 -
 solr/licenses/hadoop-minikdc-2.7.2.jar.sha1     |   1 +
 solr/licenses/hadoop-yarn-api-2.6.0.jar.sha1    |   1 -
 solr/licenses/hadoop-yarn-api-2.7.2.jar.sha1    |   1 +
 solr/licenses/hadoop-yarn-client-2.6.0.jar.sha1 |   1 -
 solr/licenses/hadoop-yarn-client-2.7.2.jar.sha1 |   1 +
 solr/licenses/hadoop-yarn-common-2.6.0.jar.sha1 |   1 -
 solr/licenses/hadoop-yarn-common-2.7.2.jar.sha1 |   1 +
 ...ver-applicationhistoryservice-2.6.0.jar.sha1 |   1 -
 ...ver-applicationhistoryservice-2.7.2.jar.sha1 |   1 +
 .../hadoop-yarn-server-common-2.6.0.jar.sha1    |   1 -
 .../hadoop-yarn-server-common-2.7.2.jar.sha1    |   1 +
 ...adoop-yarn-server-nodemanager-2.6.0.jar.sha1 |   1 -
 ...adoop-yarn-server-nodemanager-2.7.2.jar.sha1 |   1 +
 ...p-yarn-server-resourcemanager-2.6.0.jar.sha1 |   1 -
 ...p-yarn-server-resourcemanager-2.7.2.jar.sha1 |   1 +
 ...adoop-yarn-server-tests-2.6.0-tests.jar.sha1 |   1 -
 ...adoop-yarn-server-tests-2.7.2-tests.jar.sha1 |   1 +
 .../hadoop-yarn-server-web-proxy-2.6.0.jar.sha1 |   1 -
 .../hadoop-yarn-server-web-proxy-2.7.2.jar.sha1 |   1 +
 solr/licenses/htrace-core-3.0.4.jar.sha1        |   1 -
 .../htrace-core-3.2.0-incubating.jar.sha1       |   1 +
 solr/licenses/netty-3.7.0.Final.jar.sha1        |   1 -
 solr/licenses/netty-LICENSE-ASL.txt             | 202 --------
 solr/licenses/netty-NOTICE.txt                  | 121 -----
 solr/licenses/netty-all-4.0.36.Final.jar.sha1   |   1 +
 solr/licenses/netty-all-LICENSE-ASL.txt         | 202 ++++++++
 solr/licenses/netty-all-NOTICE.txt              | 121 +++++
 112 files changed, 3150 insertions(+), 723 deletions(-)
----------------------------------------------------------------------