Repository: lens Updated Branches: refs/heads/master 1774ced2e -> fcc0cafd6
LENS-1158: Thread names with hive2 build are growing huge Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/fcc0cafd Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/fcc0cafd Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/fcc0cafd Branch: refs/heads/master Commit: fcc0cafd61dc8d2ea2009277c370236127e9d27e Parents: 1774ced Author: Rajat Khandelwal <[email protected]> Authored: Thu Jun 2 13:11:13 2016 +0530 Committer: Puneet <[email protected]> Committed: Thu Jun 2 13:11:14 2016 +0530 ---------------------------------------------------------------------- .../lens/server/session/LensSessionImpl.java | 22 ++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/fcc0cafd/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 82a4e15..2b84d3a 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 @@ -65,7 +65,22 @@ public class LensSessionImpl extends HiveSessionImpl { /** The session timeout. */ private long sessionTimeout; - private int acquireCount = 0; + private static class IntegerThreadLocal extends ThreadLocal<Integer> { + @Override + protected Integer initialValue() { + return 0; + } + public Integer incrementAndGet() { + set(get() + 1); + return get(); + } + public Integer decrementAndGet() { + set(get() - 1); + return get(); + } + } + private IntegerThreadLocal acquireCount = new IntegerThreadLocal(); + /** The conf. */ private Configuration conf = createDefaultConf(); @@ -228,7 +243,7 @@ public class LensSessionImpl extends HiveSessionImpl { */ public synchronized void acquire() { super.acquire(true); - acquireCount++; + acquireCount.incrementAndGet(); // Update thread's class loader with current DBs class loader ClassLoader classLoader = getClassLoader(getCurrentDatabase()); Thread.currentThread().setContextClassLoader(classLoader); @@ -242,8 +257,7 @@ public class LensSessionImpl extends HiveSessionImpl { */ public synchronized void release() { lastAccessTime = System.currentTimeMillis(); - acquireCount--; - if (acquireCount == 0) { + if (acquireCount.decrementAndGet() == 0) { super.release(true); } }
