You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/12/11 09:28:16 UTC

[47/47] lucene-solr:jira/http2: Merge with master

Merge with master


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

Branch: refs/heads/jira/http2
Commit: 925fb154f134598e4c7f48c7218ab687d6047901
Parents: 0ecb811 c651cbf
Author: Cao Manh Dat <da...@apache.org>
Authored: Tue Dec 11 09:27:19 2018 +0000
Committer: Cao Manh Dat <da...@apache.org>
Committed: Tue Dec 11 09:27:19 2018 +0000

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |   21 +-
 .../index/TestBackwardsCompatibility.java       |   27 +
 .../lucene/index/sorted-invalid.7.5.0.zip       |  Bin 0 -> 908443 bytes
 .../java/org/apache/lucene/document/Field.java  |   14 +-
 .../org/apache/lucene/document/StoredField.java |   13 +
 .../lucene/index/DocValuesFieldUpdates.java     |   75 +-
 .../apache/lucene/index/FieldUpdatesBuffer.java |   21 +
 .../lucene/index/FrozenBufferedUpdates.java     |    3 +-
 .../org/apache/lucene/index/IndexableField.java |    7 +
 .../org/apache/lucene/index/MultiSorter.java    |   30 +-
 .../index/NumericDocValuesFieldUpdates.java     |   31 +-
 .../java/org/apache/lucene/util/Constants.java  |    1 +
 .../util/packed/AbstractPagedMutable.java       |    3 +-
 .../lucene/index/TestDocValuesFieldUpdates.java |   59 +-
 .../lucene/index/TestFieldUpdatesBuffer.java    |   24 +-
 .../apache/lucene/index/TestIndexSorting.java   | 1738 ++++++++++--------
 lucene/ivy-versions.properties                  |    2 +-
 .../search/similarity/LegacyBM25Similarity.java |    8 +
 .../intervals/DifferenceIntervalFunction.java   |   10 +
 .../intervals/DisjunctionIntervalsSource.java   |   15 +
 .../intervals/FilteredIntervalsSource.java      |  103 ++
 .../lucene/search/intervals/IntervalFilter.java |    5 +
 .../search/intervals/IntervalFunction.java      |   54 +-
 .../search/intervals/IntervalIterator.java      |   11 +
 .../search/intervals/IntervalMatches.java       |    9 +
 .../intervals/IntervalMatchesIterator.java      |   38 +
 .../lucene/search/intervals/Intervals.java      |   23 +-
 .../intervals/LowpassIntervalsSource.java       |   90 -
 .../MinimizingConjunctionIntervalsSource.java   |    7 +-
 .../search/intervals/TermIntervalsSource.java   |    5 +
 .../lucene/search/intervals/package-info.java   |    2 +
 .../search/intervals/TestIntervalQuery.java     |   10 +
 .../lucene/search/intervals/TestIntervals.java  |   60 +-
 lucene/tools/junit4/solr-tests.policy           |   26 +-
 solr/CHANGES.txt                                |    9 +-
 .../client/solrj/embedded/JettySolrRunner.java  |    2 +-
 .../cloud/autoscaling/NodeAddedTrigger.java     |    3 +-
 .../solr/cloud/autoscaling/NodeLostTrigger.java |    3 +-
 .../solr/response/BinaryResponseWriter.java     |  121 +-
 .../org/apache/solr/response/DocsStreamer.java  |    6 +-
 .../org/apache/solr/response/ResultContext.java |    2 +
 .../java/org/apache/solr/schema/FieldType.java  |    7 +
 .../org/apache/solr/schema/IndexSchema.java     |   10 +-
 .../java/org/apache/solr/schema/StrField.java   |    6 +
 .../java/org/apache/solr/schema/TextField.java  |    5 +
 .../apache/solr/search/SolrDocumentFetcher.java |   24 +-
 .../cloud/AssignBackwardCompatibilityTest.java  |    5 +-
 .../solr/cloud/CollectionsAPISolrJTest.java     |    5 +-
 .../solr/cloud/DocValuesNotIndexedTest.java     |   29 +-
 .../apache/solr/cloud/KerberosTestServices.java |    3 +-
 .../apache/solr/cloud/MultiThreadedOCPTest.java |   11 +-
 .../solr/cloud/SaslZkACLProviderTest.java       |    2 +-
 .../apache/solr/cloud/TestCloudConsistency.java |    2 +
 .../solr/cloud/TestMiniSolrCloudClusterSSL.java |    5 +-
 .../apache/solr/cloud/TestSSLRandomization.java |    2 +
 .../cloud/TestSolrCloudWithKerberosAlt.java     |    3 +
 .../CollectionsAPIAsyncDistributedZkTest.java   |    2 +-
 .../CollectionsAPIDistributedZkTest.java        |   16 +-
 .../api/collections/CustomCollectionTest.java   |    2 +
 .../autoscaling/AutoScalingHandlerTest.java     |    1 +
 .../autoscaling/SystemLogListenerTest.java      |   46 +-
 .../cloud/autoscaling/sim/SimCloudManager.java  |    3 +-
 .../sim/SimClusterStateProvider.java            |  141 +-
 .../autoscaling/sim/SimDistribStateManager.java |   11 +-
 .../autoscaling/sim/TestSimExtremeIndexing.java |    2 -
 .../sim/TestSimGenericDistributedQueue.java     |    4 +-
 .../autoscaling/sim/TestSimLargeCluster.java    |   26 +-
 .../autoscaling/sim/TestSimNodeLostTrigger.java |    2 +-
 .../autoscaling/sim/TestSimPolicyCloud.java     |    6 +-
 .../sim/TestSimTriggerIntegration.java          |   30 +-
 .../solr/cloud/cdcr/CdcrBootstrapTest.java      |    2 +-
 .../solr/handler/TestReplicationHandler.java    |   33 +-
 .../metrics/rrd/SolrRrdBackendFactoryTest.java  |   14 +-
 .../solr/response/TestBinaryResponseWriter.java |   45 +-
 solr/licenses/zookeeper-3.4.11.jar.sha1         |    1 -
 solr/licenses/zookeeper-3.4.13.jar.sha1         |    1 +
 .../solr/client/solrj/embedded/SSLConfig.java   |    8 +-
 .../client/solrj/io/stream/FacetStream.java     |    3 +-
 .../client/solrj/io/stream/RandomStream.java    |    3 +-
 .../client/solrj/io/stream/SearchStream.java    |    3 +-
 .../solrj/io/stream/SignificantTermsStream.java |    3 +-
 .../client/solrj/io/stream/StatsStream.java     |    5 +-
 .../solrj/io/stream/TimeSeriesStream.java       |    3 +-
 .../solr/client/solrj/util/Constants.java       |    1 +
 .../solr/common/ConditionalMapWriter.java       |    8 +-
 .../apache/solr/common/LinkedHashMapWriter.java |    2 +-
 .../java/org/apache/solr/common/MapWriter.java  |    5 +
 .../org/apache/solr/common/MapWriterMap.java    |    2 +-
 .../org/apache/solr/common/SolrDocument.java    |   18 +-
 .../apache/solr/common/SolrDocumentBase.java    |    2 +-
 .../apache/solr/common/SolrInputDocument.java   |    8 +-
 .../common/util/ByteArrayUtf8CharSequence.java  |   19 +-
 .../solr/common/util/FastOutputStream.java      |    2 +-
 .../apache/solr/common/util/JavaBinCodec.java   |   25 +-
 .../org/apache/solr/common/util/NamedList.java  |    2 +-
 .../solr/common/util/Utf8CharSequence.java      |    2 +-
 .../solrj/embedded/SolrExampleJettyTest.java    |   65 +
 .../impl/HttpSolrClientSSLAuthConPoolTest.java  |    4 +
 .../solrj/io/stream/StreamExpressionTest.java   |   66 +
 .../client/solrj/io/stream/StreamingTest.java   |    2 +
 .../java/org/apache/solr/SolrTestCaseJ4.java    |    2 +-
 .../org/apache/solr/cloud/ZkTestServer.java     |   12 +-
 .../org/apache/solr/util/SSLTestConfig.java     |    2 +-
 103 files changed, 2310 insertions(+), 1165 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/lucene/ivy-versions.properties
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
----------------------------------------------------------------------
diff --cc solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
index 7d34861,0978e57..19b99c0
--- a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
@@@ -44,7 -46,9 +46,8 @@@ import org.slf4j.LoggerFactory
  @ThreadLeakFilters(defaultFilters = true, filters = {
      BadZookeeperThreadsFilter.class // Zookeeper login leaks TGT renewal threads
  })
 -
  @LuceneTestCase.Slow
+ @ThreadLeakLingering(linger = 10000) // minikdc has some lingering threads
  public class TestSolrCloudWithKerberosAlt extends SolrCloudTestCase {
  
    private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
----------------------------------------------------------------------
diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
index 4091bf7,0000000..4ea9f70
mode 100644,000000..100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
@@@ -1,166 -1,0 +1,172 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.solr.client.solrj.embedded;
 +
++import org.apache.solr.client.solrj.util.Constants;
 +import org.eclipse.jetty.util.ssl.SslContextFactory;
 +
 +/** 
 + * Encapsulates settings related to SSL Configuration.
 + * NOTE: all other settings are ignored if {@link #isSSLMode} is false.
 + * @see #setUseSSL
 + */
 +public class SSLConfig {
 +  
 +  private boolean useSsl;
 +  private boolean clientAuth;
 +  private String keyStore;
 +  private String keyStorePassword;
 +  private String trustStore;
 +  private String trustStorePassword;
 +
 +  /** NOTE: all other settings are ignored if useSSL is false; trustStore settings are ignored if clientAuth is false */
 +  public SSLConfig(boolean useSSL, boolean clientAuth, String keyStore, String keyStorePassword, String trustStore, String trustStorePassword) {
-     this.useSsl = useSSL;
++    // @AwaitsFix: SOLR-12988 - ssl issues on Java 11/12
++    if (Constants.JRE_IS_MINIMUM_JAVA11) {
++      this.useSsl = false;
++    } else {
++      this.useSsl = useSSL;
++    }
 +    this.clientAuth = clientAuth;
 +    this.keyStore = keyStore;
 +    this.keyStorePassword = keyStorePassword;
 +    this.trustStore = trustStore;
 +    this.trustStorePassword = trustStorePassword;
 +  }
 +  
 +  public void setUseSSL(boolean useSSL) {
 +    this.useSsl = useSSL;
 +  }
 +  
 +  public void setClientAuth(boolean clientAuth) {
 +    this.clientAuth = clientAuth;
 +  }
 +  
 +  /** All other settings on this object are ignored unless this is true */
 +  public boolean isSSLMode() {
 +    return useSsl;
 +  }
 +  
 +  public boolean isClientAuthMode() {
 +    return clientAuth;
 +  }
 +
 +  public String getKeyStore() {
 +    return keyStore;
 +  }
 +
 +  public String getKeyStorePassword() {
 +    return keyStorePassword;
 +  }
 +
 +  public String getTrustStore() {
 +    return trustStore;
 +  }
 +
 +  public String getTrustStorePassword() {
 +    return trustStorePassword;
 +  }
 +
 +  /**
 +   * Returns an SslContextFactory that should be used by a jetty server based on the specified 
 +   * SSLConfig param which may be null.
 +   *
 +   * if the SSLConfig param is non-null, then this method will return the results of 
 +   * {@link #createContextFactory()}.
 +   * 
 +   * If the SSLConfig param is null, then this method will return null unless the 
 +   * <code>tests.jettySsl</code> system property is true, in which case standard "javax.net.ssl.*" 
 +   * system properties will be used instead, along with "tests.jettySsl.clientAuth".
 +   * 
 +   * @see #createContextFactory()
 +   */
 +  public static SslContextFactory createContextFactory(SSLConfig sslConfig) {
 +
 +    if (sslConfig != null) {
 +      return sslConfig.createContextFactory();
 +    }
 +    // else...
 +    if (Boolean.getBoolean("tests.jettySsl")) {
 +      return configureSslFromSysProps();
 +    }
 +    // else...
 +    return null;
 +  }
 +  
 +  /**
 +   * Returns an SslContextFactory that should be used by a jetty server based on this SSLConfig instance, 
 +   * or null if SSL should not be used.
 +   *
 +   * The default implementation generates a simple factory according to the keystore, truststore, 
 +   * and clientAuth properties of this object.
 +   *
 +   * @see #getKeyStore
 +   * @see #getKeyStorePassword
 +   * @see #isClientAuthMode
 +   * @see #getTrustStore
 +   * @see #getTrustStorePassword
 +   */
 +  public SslContextFactory createContextFactory() {
 +
 +    if (! isSSLMode()) {
 +      return null;
 +    }
 +    // else...
 +    
 +    SslContextFactory factory = new SslContextFactory(false);
 +    if (getKeyStore() != null)
 +      factory.setKeyStorePath(getKeyStore());
 +    if (getKeyStorePassword() != null)
 +      factory.setKeyStorePassword(getKeyStorePassword());
 +    
 +    factory.setNeedClientAuth(isClientAuthMode());
 +    
 +    if (isClientAuthMode()) {
 +      if (getTrustStore() != null)
 +        factory.setTrustStorePath(getTrustStore());
 +      if (getTrustStorePassword() != null)
 +        factory.setTrustStorePassword(getTrustStorePassword());
 +    }
 +    return factory;
 +
 +  }
 +
 +  private static SslContextFactory configureSslFromSysProps() {
 +
 +    SslContextFactory sslcontext = new SslContextFactory(false);
 +
 +    if (null != System.getProperty("javax.net.ssl.keyStore")) {
 +      sslcontext.setKeyStorePath
 +          (System.getProperty("javax.net.ssl.keyStore"));
 +    }
 +    if (null != System.getProperty("javax.net.ssl.keyStorePassword")) {
 +      sslcontext.setKeyStorePassword
 +          (System.getProperty("javax.net.ssl.keyStorePassword"));
 +    }
 +    if (null != System.getProperty("javax.net.ssl.trustStore")) {
 +      sslcontext.setTrustStorePath
 +          (System.getProperty("javax.net.ssl.trustStore"));
 +    }
 +    if (null != System.getProperty("javax.net.ssl.trustStorePassword")) {
 +      sslcontext.setTrustStorePassword
 +          (System.getProperty("javax.net.ssl.trustStorePassword"));
 +    }
 +    sslcontext.setNeedClientAuth(Boolean.getBoolean("tests.jettySsl.clientAuth"));
 +
 +    return sslcontext;
 +  }
 +}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
----------------------------------------------------------------------
diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
index 55ca618,0000000..50633ff
mode 100644,000000..100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
@@@ -1,40 -1,0 +1,41 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +package org.apache.solr.client.solrj.util;
 +
 +import java.util.StringTokenizer;
 +
 +// Clone of org.apache.lucene.util.Constants, so SolrJ can use it
 +public class Constants {
 +  public static final String JVM_SPEC_VERSION = System.getProperty("java.specification.version");
 +  private static final int JVM_MAJOR_VERSION;
 +  private static final int JVM_MINOR_VERSION;
 +
 +  static {
 +    final StringTokenizer st = new StringTokenizer(JVM_SPEC_VERSION, ".");
 +    JVM_MAJOR_VERSION = Integer.parseInt(st.nextToken());
 +    if (st.hasMoreTokens()) {
 +      JVM_MINOR_VERSION = Integer.parseInt(st.nextToken());
 +    } else {
 +      JVM_MINOR_VERSION = 0;
 +    }
 +  }
 +
 +  public static final boolean JRE_IS_MINIMUM_JAVA9 = JVM_MAJOR_VERSION > 1 || (JVM_MAJOR_VERSION == 1 && JVM_MINOR_VERSION >= 9);
++  public static final boolean JRE_IS_MINIMUM_JAVA11 = JVM_MAJOR_VERSION > 1 || (JVM_MAJOR_VERSION == 1 && JVM_MINOR_VERSION >= 11);
 +
 +}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
----------------------------------------------------------------------
diff --cc solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
index 003463a,307f547..f6281e1
--- a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
@@@ -100,10 -97,10 +100,10 @@@ public class SSLTestConfig 
     * @see HttpClientUtil#SYS_PROP_CHECK_PEER_NAME
     */
    public SSLTestConfig(boolean useSSL, boolean clientAuth, boolean checkPeerName) {
 -    super(useSSL, clientAuth, null, TEST_KEYSTORE_PASSWORD, null, TEST_KEYSTORE_PASSWORD);
 -
 +    this.useSsl = useSSL;
 +    this.clientAuth = clientAuth;
      this.checkPeerName = checkPeerName;
-     
+ 
      final String resourceName = checkPeerName
        ? TEST_KEYSTORE_LOCALHOST_RESOURCE : TEST_KEYSTORE_BOGUSHOST_RESOURCE;
      trustStore = keyStore = Resource.newClassPathResource(resourceName);