@SuppressWarnings({"unchecked"}) private void logIn(HttpServletRequest req, HttpServletResponse resp, PersistenceManager pm) throws IOException { LogIn loginMsg = LogIn.parseFrom(req.getInputStream()); SqlCloudSession session = lookupCloudSessionById(loginMsg.getSessionId(), pm); if (session == null) { setResponse(resp, 403, "not authenticated"); return; } DbInvocation invocation = recordInvocation(pm, loginMsg, session); recordSession(pm, session, invocation); resp.setStatus(200); }
private DbInvocation recordInvocation( PersistenceManager pm, LogIn loginMsg, SqlCloudSession session) { DbInvocation invocation = persistenceHelper.createDbInvocation(); invocation.setWho(session.getUser()); invocation.setStartTime(loginMsg.getAnalysisTimestamp()); Transaction tx = pm.currentTransaction(); tx.begin(); try { invocation = pm.makePersistent(invocation); tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } } return invocation; }