You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/09/23 14:51:27 UTC

ignite git commit: IGNITE-3928: Hadoop: Print warning if Hadoop is in classpath.

Repository: ignite
Updated Branches:
  refs/heads/ignite-3928 [created] f858b528c


IGNITE-3928: Hadoop: Print warning if Hadoop is in classpath.


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

Branch: refs/heads/ignite-3928
Commit: f858b528c3353d4da8a8b0aa992306a35cb0e6bf
Parents: 0e43795
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Sep 23 17:51:23 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Sep 23 17:51:23 2016 +0300

----------------------------------------------------------------------
 .../processors/hadoop/HadoopProcessor.java      | 23 ++++++++++++++++++++
 1 file changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f858b528/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopProcessor.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopProcessor.java
index 520f094..f0df1e9 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopProcessor.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopProcessor.java
@@ -40,6 +40,9 @@ import java.util.concurrent.atomic.AtomicInteger;
  * Hadoop processor.
  */
 public class HadoopProcessor extends HadoopProcessorAdapter {
+    /** Class to probe for Hadoop libraries in Ignite classpath. */
+    private static final String HADOOP_PROBE_CLS = "org.apache.hadoop.conf.Configuration";
+
     /** Job ID counter. */
     private final AtomicInteger idCtr = new AtomicInteger();
 
@@ -210,6 +213,26 @@ public class HadoopProcessor extends HadoopProcessorAdapter {
             throw new IgniteCheckedException(ioe.getMessage(), ioe);
         }
 
+        // Check if Hadoop is in parent class loader classpath.
+        try {
+            Class cls = Class.forName(HADOOP_PROBE_CLS, false, getClass().getClassLoader());
+
+            try {
+                String path = cls.getProtectionDomain().getCodeSource().getLocation().toString();
+
+                U.warn(log, "Hadoop libraries are found in Ignite classpath, this could lead to class loading " +
+                    "errors (please remove all Hadoop libraries from Ignite classpath) [path=" + path + ']');
+            }
+            catch (Throwable ignore) {
+                U.warn(log, "Hadoop libraries are found in Ignite classpath, this could lead to class loading " +
+                    "errors (please remove all Hadoop libraries from Ignite classpath)");
+            }
+        }
+        catch (Throwable ignore) {
+            // All is fine.
+        }
+
+        // Try assembling Hadoop URLs.
         HadoopClassLoader.hadoopUrls();
     }