You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by pu...@apache.org on 2018/01/23 07:37:07 UTC

lens git commit: LENS-1497: NPE while closing idle connections

Repository: lens
Updated Branches:
  refs/heads/master 3d55b642a -> d0b78e81b


LENS-1497: NPE while closing idle connections


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

Branch: refs/heads/master
Commit: d0b78e81b3299aedb81421a1ced92c56e948fd10
Parents: 3d55b64
Author: Rajitha R <ra...@gmail.com>
Authored: Tue Jan 23 13:06:07 2018 +0530
Committer: Puneet Gupta <pu...@apache.org>
Committed: Tue Jan 23 13:06:07 2018 +0530

----------------------------------------------------------------------
 .../org/apache/lens/server/BaseLensService.java    | 17 +++++++++++++----
 .../lens/server/session/HiveSessionService.java    |  4 +++-
 2 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/d0b78e81/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
index d7ce434..b9fcdd8 100644
--- a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
+++ b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
@@ -265,6 +265,11 @@ public abstract class BaseLensService extends CompositeService implements Extern
       LensSessionHandle restoredSession = new LensSessionHandle(hiveSessionHandle.getHandleIdentifier().getPublicId(),
         hiveSessionHandle.getHandleIdentifier().getSecretId());
       SESSION_MAP.put(restoredSession.getPublicId().toString(), restoredSession);
+      SessionUser sessionUser = SESSION_USER_INSTANCE_MAP.get(userName);
+      if (sessionUser == null) {
+        sessionUser = new SessionUser(userName);
+        SESSION_USER_INSTANCE_MAP.put(userName, sessionUser);
+      }
       updateSessionsPerUser(userName);
     } catch (HiveSQLException e) {
       throw new LensException("Error restoring session " + sessionHandle, e);
@@ -340,10 +345,14 @@ public abstract class BaseLensService extends CompositeService implements Extern
     }
     synchronized (sessionUser) {
       Integer sessionCount = SESSIONS_PER_USER.get(userName);
-      if (sessionCount == 1) {
-        SESSIONS_PER_USER.remove(userName);
-      } else {
-        SESSIONS_PER_USER.put(userName, --sessionCount);
+      if (null != sessionCount) {
+        if (sessionCount == 1) {
+          SESSIONS_PER_USER.remove(userName);
+        } else {
+          SESSIONS_PER_USER.put(userName, --sessionCount);
+        }
+      }else {
+        log.info("Trying to decrement session count for non existing session {} for user {}: ",sessionHandle, userName);
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/d0b78e81/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
index a9fd233..31ac358 100644
--- a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
+++ b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
@@ -347,7 +347,9 @@ public class HiveSessionService extends BaseLensService implements SessionServic
   public synchronized void start() {
     super.start();
 
-    sessionExpiryThread = Executors.newSingleThreadScheduledExecutor();
+    sessionExpiryThread = Executors.newSingleThreadScheduledExecutor(runnable
+      -> new Thread(runnable, "Session-expiry-thread"));
+
     int sessionExpiryInterval = getSessionExpiryInterval();
     sessionExpiryThread.scheduleWithFixedDelay(sessionExpiryRunnable, sessionExpiryInterval,
         sessionExpiryInterval, TimeUnit.SECONDS);