Author: markt Date: Wed Apr 8 12:59:21 2009 New Revision: 763228 URL: http://svn.apache.org/viewvc?rev=763228&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46967 and make behaviour consistent when running under a security manager. Based on a patch provided by Kirk Wolf
Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=763228&r1=763227&r2=763228&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Wed Apr 8 12:59:21 2009 @@ -223,7 +223,11 @@ private class PrivilegedSetRandomFile implements PrivilegedAction<DataInputStream>{ - public DataInputStream run(){ + public PrivilegedSetRandomFile(String s) { + devRandomSource = s; + } + + public DataInputStream run(){ try { File f=new File( devRandomSource ); if( ! f.exists() ) return null; @@ -233,8 +237,18 @@ log.debug( "Opening " + devRandomSource ); return randomIS; } catch (IOException ex){ + log.warn("Error reading " + devRandomSource, ex); + if (randomIS != null) { + try { + randomIS.close(); + } catch (Exception e) { + log.warn("Failed to close randomIS."); + } + } + devRandomSource = null; + randomIS=null; return null; - } + } } } @@ -505,10 +519,10 @@ * - so use it if available. */ public void setRandomFile( String s ) { - // as a hack, you can use a static file - and genarate the same + // as a hack, you can use a static file - and generate the same // session ids ( good for strange debugging ) if (Globals.IS_SECURITY_ENABLED){ - randomIS = AccessController.doPrivileged(new PrivilegedSetRandomFile()); + randomIS = AccessController.doPrivileged(new PrivilegedSetRandomFile(s)); } else { try{ devRandomSource=s; @@ -519,12 +533,15 @@ if( log.isDebugEnabled() ) log.debug( "Opening " + devRandomSource ); } catch( IOException ex ) { - try { - randomIS.close(); - } catch (Exception e) { - log.warn("Failed to close randomIS."); + log.warn("Error reading " + devRandomSource, ex); + if (randomIS != null) { + try { + randomIS.close(); + } catch (Exception e) { + log.warn("Failed to close randomIS."); + } } - + devRandomSource = null; randomIS=null; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org