You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by aa...@apache.org on 2020/01/16 03:22:08 UTC

[hadoop] branch trunk updated: YARN-9512. [JDK11] TestAuxServices#testCustomizedAuxServiceClassPath fails because of ClassCastException. (#1806)

This is an automated email from the ASF dual-hosted git repository.

aajisaka pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 14c2c3d  YARN-9512. [JDK11] TestAuxServices#testCustomizedAuxServiceClassPath fails because of ClassCastException. (#1806)
14c2c3d is described below

commit 14c2c3d69d1864889f2d20ec79e2bf8e62e56a17
Author: Akira Ajisaka <aa...@apache.org>
AuthorDate: Thu Jan 16 12:21:50 2020 +0900

    YARN-9512. [JDK11] TestAuxServices#testCustomizedAuxServiceClassPath fails because of ClassCastException. (#1806)
---
 .../containermanager/TestAuxServices.java          | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
index da0b9cd..19bcee8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
@@ -61,10 +61,11 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
+import java.util.stream.Collectors;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
@@ -242,13 +243,20 @@ public class TestAuxServices {
     @Override
     public ByteBuffer getMetaData() {
       ClassLoader loader = Thread.currentThread().getContextClassLoader();
-      URL[] urls = ((URLClassLoader)loader).getURLs();
-      List<String> urlString = new ArrayList<String>();
-      for (URL url : urls) {
-        urlString.add(url.toString());
+      try {
+        URL[] urls = ((URLClassLoader) loader).getURLs();
+        String joinedString = Arrays.stream(urls)
+            .map(URL::toString)
+            .collect(Collectors.joining(","));
+        return ByteBuffer.wrap(joinedString.getBytes());
+      } catch (ClassCastException e) {
+        // In Java 11+, Thread.currentThread().getContextClassLoader()
+        // returns jdk.internal.loader.ClassLoaders$AppClassLoader
+        // by default and it cannot cast to URLClassLoader.
+        // This exception does not happen when the custom class loader is
+        // used from AuxiliaryServiceWithCustomClassLoader.
+        return super.meta;
       }
-      String joinedString = StringUtils.join(",", urlString);
-      return ByteBuffer.wrap(joinedString.getBytes());
     }
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org