Sorry,

Why do you need the context classloader here - just adding a suppressforbidden 
is not "the right fix". You can replace this with as simple 
ZKController.class.getClassLoader() and all is fine. There is really no need to 
use context classloader!

Please change this. See also the issue from last week that fixed this. There 
are tons of examples, also in ZKController.

Uwe

-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
http://www.thetaphi.de
eMail: u...@thetaphi.de

> -----Original Message-----
> From: is...@apache.org [mailto:is...@apache.org]
> Sent: Tuesday, June 27, 2017 1:31 PM
> To: comm...@lucene.apache.org
> Subject: lucene-solr:master: SOLR-10272: Fixing precommit
> 
> Repository: lucene-solr
> Updated Branches:
>   refs/heads/master 54fc1ee44 -> e4d0bb7dc
> 
> 
> SOLR-10272: Fixing precommit
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
> Commit: http://git-wip-us.apache.org/repos/asf/lucene-
> solr/commit/e4d0bb7d
> Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/e4d0bb7d
> Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/e4d0bb7d
> 
> Branch: refs/heads/master
> Commit: e4d0bb7dc45905b6ab231b940adecd5c5a39eb8e
> Parents: 54fc1ee
> Author: Ishan Chattopadhyaya <is...@apache.org>
> Authored: Tue Jun 27 17:01:01 2017 +0530
> Committer: Ishan Chattopadhyaya <is...@apache.org>
> Committed: Tue Jun 27 17:01:01 2017 +0530
> 
> ----------------------------------------------------------------------
>  .../org/apache/solr/cloud/ZkController.java     | 22 +++++++++++++-------
>  1 file changed, 15 insertions(+), 7 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/lucene-
> solr/blob/e4d0bb7d/solr/core/src/java/org/apache/solr/cloud/ZkController.
> java
> ----------------------------------------------------------------------
> diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
> b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
> index 391f29c..f8543db 100644
> --- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
> +++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
> @@ -50,6 +50,7 @@ import java.util.concurrent.atomic.AtomicReference;
> 
>  import com.google.common.base.Strings;
>  import org.apache.commons.lang.StringUtils;
> +import org.apache.lucene.util.SuppressForbidden;
>  import org.apache.solr.client.solrj.impl.HttpSolrClient;
>  import org.apache.solr.client.solrj.impl.HttpSolrClient.Builder;
>  import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
> @@ -695,7 +696,7 @@ public class ZkController {
>     * Gets the absolute filesystem path of the _default configset to bootstrap
> from.
>     * First tries the sysprop "solr.default.confdir". If not found, tries to 
> find
>     * the _default dir relative to the sysprop "solr.install.dir".
> -   * If that fails as well, tries to get the _default from the
> +   * If that fails as well (usually for unit tests), tries to get the 
> _default from
> the
>     * classpath. Returns null if not found anywhere.
>     */
>    private static String getDefaultConfigDirPath() {
> @@ -710,16 +711,23 @@ public class ZkController {
>          new
> File(System.getProperty(SolrDispatchFilter.SOLR_INSTALL_DIR_ATTRIBUTE) +
> subPath).exists()) {
>        configDirPath = new
> File(System.getProperty(SolrDispatchFilter.SOLR_INSTALL_DIR_ATTRIBUTE) +
> subPath).getAbsolutePath();
>      } else { // find "_default" in the classpath. This one is used for tests
> -      URL classpathUrl =
> Thread.currentThread().getContextClassLoader().getResource(serverSubPath
> );
> -      try {
> -        if (classpathUrl != null && new File(classpathUrl.toURI()).exists()) 
> {
> -          configDirPath = new File(classpathUrl.toURI()).getAbsolutePath();
> -        }
> -      } catch (URISyntaxException ex) {}
> +      configDirPath = getDefaultConfigDirFromClasspath(serverSubPath);
>      }
>      return configDirPath;
>    }
> 
> +  @SuppressForbidden(reason = "This will be loaded for unit tests, and
> hence an exception can be made. "
> +      + "In regular server operation, there shouldn't be a situation where we
> reach this point.")
> +  private static String getDefaultConfigDirFromClasspath(String
> serverSubPath) {
> +    URL classpathUrl =
> Thread.currentThread().getContextClassLoader().getResource(serverSubPath
> );
> +    try {
> +      if (classpathUrl != null && new File(classpathUrl.toURI()).exists()) {
> +        return new File(classpathUrl.toURI()).getAbsolutePath();
> +      }
> +    } catch (URISyntaxException ex) {}
> +    return null;
> +  }
> +
>    private void init(CurrentCoreDescriptorProvider registerOnReconnect) {
> 
>      try {


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to