Author: markt Date: Tue Jan 12 21:15:18 2016 New Revision: 1724325 URL: http://svn.apache.org/viewvc?rev=1724325&view=rev Log: Use try-with-resources to simplify code Some exception logging removed since it is duplicated in [start|stop]Internal
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties tomcat/trunk/java/org/apache/catalina/session/StandardManager.java Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties?rev=1724325&r1=1724324&r2=1724325&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties Tue Jan 12 21:15:18 2016 @@ -35,11 +35,8 @@ managerBase.createSession.ise=createSess managerBase.sessionTimeout=Invalid session timeout setting {0} standardManager.loading=Loading persisted sessions from {0} standardManager.loading.exception=Exception while loading persisted sessions -standardManager.loading.cnfe=Class not found while loading persisted sessions [{0}] -standardManager.loading.ioe=IOException while loading persisted sessions [{0}] standardManager.unloading=Saving persisted sessions to {0} standardManager.unloading.debug=Unloading persisted sessions -standardManager.unloading.ioe=IOException while saving persisted sessions: {0} standardManager.unloading.nosessions=No persisted sessions to unload standardManager.managerLoad=Exception loading sessions from persistent storage standardManager.managerUnload=Exception unloading sessions to persistent storage Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties?rev=1724325&r1=1724324&r2=1724325&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties (original) +++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties Tue Jan 12 21:15:18 2016 @@ -29,7 +29,6 @@ managerBase.sessionTimeout = Valor inv\u standardManager.loading = Cargando sesiones persistidas desde {0} standardManager.loading.exception = Exception al cargar sesiones persistidas standardManager.unloading = Salvando sesiones persistidas a {0} -standardManager.unloading.ioe = IOException al salvar sesiones persistidas\: {0} standardManager.managerLoad = Excepci\u00F3n cargando sesiones desde almacenamiento persistente standardManager.managerUnload = Excepci\u00F3n descargando sesiones a almacenamiento persistente standardSession.attributeEvent = El oyente de eventos de atributo de Sesi\u00F3n lanz\u00F3 una excepci\u00F3n Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties?rev=1724325&r1=1724324&r2=1724325&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties (original) +++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties Tue Jan 12 21:15:18 2016 @@ -29,7 +29,6 @@ managerBase.sessionTimeout=R\u00e9glage standardManager.loading=Chargement des sessions qui ont persist\u00e9 depuis {0} standardManager.loading.exception="Exception" lors du chargement de sessions persistantes standardManager.unloading=Sauvegarde des sessions ayant persist\u00e9 vers {0} -standardManager.unloading.ioe="IOException" lors de la sauvegarde de sessions persistantes: {0} standardManager.managerLoad=Exception au chargement des sessions depuis le stockage persistant (persistent storage) standardManager.managerUnload=Exception au d\u00e9chargement des sessions vers le stockage persistant (persistent storage) standardSession.attributeEvent=L''\u00e9couteur d''\u00e9v\u00e8nement Attribut de Session (attribute event listener) a g\u00e9n\u00e9r\u00e9 une exception Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties?rev=1724325&r1=1724324&r2=1724325&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties (original) +++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties Tue Jan 12 21:15:18 2016 @@ -30,7 +30,6 @@ managerBase.sessionTimeout=\u7121\u52b9\ standardManager.loading={0} \u304b\u3089\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059 standardManager.loading.exception=\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30c9\u4e2d\u306bException\u304c\u767a\u751f\u3057\u307e\u3057\u305f standardManager.unloading=\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092 {0} \u306b\u4fdd\u5b58\u3057\u307e\u3059 -standardManager.unloading.ioe=\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u4fdd\u5b58\u4e2d\u306eIOException\u3067\u3059: {0} standardManager.managerLoad=\u6c38\u7d9a\u8a18\u61b6\u88c5\u7f6e\u304b\u3089\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30c9\u4e2d\u306e\u4f8b\u5916\u3067\u3059 standardManager.managerUnload=\u6c38\u7d9a\u8a18\u61b6\u88c5\u7f6e\u306b\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30a2\u30f3\u30ed\u30fc\u30c9\u4e2d\u306e\u4f8b\u5916\u3067\u3059 standardSession.attributeEvent=\u30bb\u30c3\u30b7\u30e7\u30f3\u5c5e\u6027\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u304c\u4f8b\u5916\u3092\u6295\u3052\u307e\u3057\u305f Modified: tomcat/trunk/java/org/apache/catalina/session/StandardManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardManager.java?rev=1724325&r1=1724324&r2=1724325&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/StandardManager.java (original) +++ tomcat/trunk/java/org/apache/catalina/session/StandardManager.java Tue Jan 12 21:15:18 2016 @@ -201,14 +201,10 @@ public class StandardManager extends Man if (log.isDebugEnabled()) { log.debug(sm.getString("standardManager.loading", pathname)); } - FileInputStream fis = null; - BufferedInputStream bis = null; - ObjectInputStream ois; Loader loader = null; ClassLoader classLoader = null; - try { - fis = new FileInputStream(file.getAbsolutePath()); - bis = new BufferedInputStream(fis); + try (FileInputStream fis = new FileInputStream(file.getAbsolutePath()); + BufferedInputStream bis = new BufferedInputStream(fis);) { Context c = getContext(); if (c != null) { loader = c.getLoader(); @@ -219,71 +215,40 @@ public class StandardManager extends Man if (classLoader == null) { classLoader = getClass().getClassLoader(); } - ois = new CustomObjectInputStream(bis, classLoader); + + // Load the previously unloaded active sessions + synchronized (sessions) { + try (ObjectInputStream ois = new CustomObjectInputStream(bis, classLoader)) { + Integer count = (Integer) ois.readObject(); + int n = count.intValue(); + if (log.isDebugEnabled()) + log.debug("Loading " + n + " persisted sessions"); + for (int i = 0; i < n; i++) { + StandardSession session = getNewSession(); + session.readObjectData(ois); + session.setManager(this); + sessions.put(session.getIdInternal(), session); + session.activate(); + if (!session.isValidInternal()) { + // If session is already invalid, + // expire session to prevent memory leak. + session.setValid(true); + session.expire(); + } + sessionCounter++; + } + } finally { + // Delete the persistent storage file + if (file.exists()) { + file.delete(); + } + } + } } catch (FileNotFoundException e) { if (log.isDebugEnabled()) { log.debug("No persisted data file found"); } return; - } catch (IOException e) { - log.error(sm.getString("standardManager.loading.ioe", e), e); - if (fis != null) { - try { - fis.close(); - } catch (IOException f) { - // Ignore - } - } - if (bis != null) { - try { - bis.close(); - } catch (IOException f) { - // Ignore - } - } - throw e; - } - - // Load the previously unloaded active sessions - synchronized (sessions) { - try { - Integer count = (Integer) ois.readObject(); - int n = count.intValue(); - if (log.isDebugEnabled()) - log.debug("Loading " + n + " persisted sessions"); - for (int i = 0; i < n; i++) { - StandardSession session = getNewSession(); - session.readObjectData(ois); - session.setManager(this); - sessions.put(session.getIdInternal(), session); - session.activate(); - if (!session.isValidInternal()) { - // If session is already invalid, - // expire session to prevent memory leak. - session.setValid(true); - session.expire(); - } - sessionCounter++; - } - } catch (ClassNotFoundException e) { - log.error(sm.getString("standardManager.loading.cnfe", e), e); - throw e; - } catch (IOException e) { - log.error(sm.getString("standardManager.loading.ioe", e), e); - throw e; - } finally { - // Close the input stream - try { - ois.close(); - } catch (IOException f) { - // ignored - } - - // Delete the persistent storage file - if (file.exists()) { - file.delete(); - } - } } if (log.isDebugEnabled()) { @@ -326,7 +291,6 @@ public class StandardManager extends Man * * @exception IOException if an input/output error occurs */ - @SuppressWarnings("null") protected void doUnload() throws IOException { if (log.isDebugEnabled()) @@ -345,52 +309,19 @@ public class StandardManager extends Man if (log.isDebugEnabled()) { log.debug(sm.getString("standardManager.unloading", pathname)); } - FileOutputStream fos = null; - BufferedOutputStream bos = null; - ObjectOutputStream oos = null; - boolean error = false; - try { - fos = new FileOutputStream(file.getAbsolutePath()); - bos = new BufferedOutputStream(fos); - oos = new ObjectOutputStream(bos); - } catch (IOException e) { - error = true; - log.error(sm.getString("standardManager.unloading.ioe", e), e); - throw e; - } finally { - if (error) { - if (oos != null) { - try { - oos.close(); - } catch (IOException ioe) { - // Ignore - } - } - if (bos != null) { - try { - bos.close(); - } catch (IOException ioe) { - // Ignore - } - } - if (fos != null) { - try { - fos.close(); - } catch (IOException ioe) { - // Ignore - } - } - } - } - // Write the number of active sessions, followed by the details + // Keep a note of sessions that are expired ArrayList<StandardSession> list = new ArrayList<>(); - synchronized (sessions) { - if (log.isDebugEnabled()) { - log.debug("Unloading " + sessions.size() + " sessions"); - } - try { - // oos can't be null here + + try (FileOutputStream fos = new FileOutputStream(file.getAbsolutePath()); + BufferedOutputStream bos = new BufferedOutputStream(fos); + ObjectOutputStream oos = new ObjectOutputStream(bos)) { + + synchronized (sessions) { + if (log.isDebugEnabled()) { + log.debug("Unloading " + sessions.size() + " sessions"); + } + // Write the number of active sessions, followed by the details oos.writeObject(Integer.valueOf(sessions.size())); Iterator<Session> elements = sessions.values().iterator(); while (elements.hasNext()) { @@ -400,25 +331,6 @@ public class StandardManager extends Man session.passivate(); session.writeObjectData(oos); } - } catch (IOException e) { - log.error(sm.getString("standardManager.unloading.ioe", e), e); - try { - oos.close(); - } catch (IOException f) { - // Ignore - } - throw e; - } - } - - // Flush and close the output stream - try { - oos.flush(); - } finally { - try { - oos.close(); - } catch (IOException f) { - // Ignore } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org