Repository: lens Updated Branches: refs/heads/master 66bd58e4c -> 210e31fc0
LENS-1278 : Fix too many instances of UDFClassLoader Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/210e31fc Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/210e31fc Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/210e31fc Branch: refs/heads/master Commit: 210e31fc076a884b664dbbb87f8ab09fb481dc98 Parents: 66bd58e Author: Amareshwari Sriramadasu <amareshw...@apache.org> Authored: Fri Aug 19 12:37:02 2016 +0530 Committer: Amareshwari Sriramadasu <amareshw...@apache.org> Committed: Fri Aug 19 12:37:02 2016 +0530 ---------------------------------------------------------------------- .../java/org/apache/lens/server/session/LensSessionImpl.java | 4 ++++ .../java/org/apache/lens/server/session/SessionClassLoader.java | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/210e31fc/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java index 3003ab7..a6013e7 100644 --- a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java +++ b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java @@ -221,6 +221,8 @@ public class LensSessionImpl extends HiveSessionImpl implements AutoCloseable { } sessionDbClassLoaders.clear(); } + // reset classloader in close + Thread.currentThread().setContextClassLoader(LensSessionImpl.class.getClassLoader()); } public CubeMetastoreClient getCubeMetastoreClient() throws LensException { @@ -272,6 +274,8 @@ public class LensSessionImpl extends HiveSessionImpl implements AutoCloseable { setActive(); if (acquireCount.decrementAndGet() == 0) { super.release(userAccess); + // reset classloader in release + Thread.currentThread().setContextClassLoader(LensSessionImpl.class.getClassLoader()); } } http://git-wip-us.apache.org/repos/asf/lens/blob/210e31fc/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java b/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java index f5e2068..0230db6 100644 --- a/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java +++ b/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java @@ -20,7 +20,8 @@ package org.apache.lens.server.session; import java.io.IOException; import java.net.URL; -import java.net.URLClassLoader; + +import org.apache.hadoop.hive.ql.exec.UDFClassLoader; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -29,7 +30,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @EqualsAndHashCode(callSuper = false) -public class SessionClassLoader extends URLClassLoader { +public class SessionClassLoader extends UDFClassLoader { @Getter @Setter private boolean closed;