You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2006/10/30 18:06:23 UTC
svn commit: r469197 -
/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java
Author: stefan
Date: Mon Oct 30 09:06:23 2006
New Revision: 469197
URL: http://svn.apache.org/viewvc?view=rev&rev=469197
Log:
catch IllegalStateException when registering shutdown hook
Modified:
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java?view=diff&rev=469197&r1=469196&r2=469197
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/util/TransientFileFactory.java Mon Oct 30 09:06:23 2006
@@ -80,20 +80,26 @@
reaper.setDaemon(true);
reaper.start();
// register shutdownhook for final cleaning up
- Runtime.getRuntime().addShutdownHook(new Thread() {
- public void run() {
- // synchronize on the list before iterating over it in order
- // to avoid ConcurrentModificationException (JCR-549)
- // @see java.lang.util.Collections.synchronizedList(java.util.List)
- synchronized(trackedRefs) {
- for (Iterator it = trackedRefs.iterator(); it.hasNext();) {
- MoribundFileReference fileRef = (MoribundFileReference) it.next();
- fileRef.delete();
- }
+ try {
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ public void run() {
+ // synchronize on the list before iterating over it in order
+ // to avoid ConcurrentModificationException (JCR-549)
+ // @see java.lang.util.Collections.synchronizedList(java.util.List)
+ synchronized(trackedRefs) {
+ for (Iterator it = trackedRefs.iterator(); it.hasNext();) {
+ MoribundFileReference fileRef = (MoribundFileReference) it.next();
+ fileRef.delete();
+ }
+ }
}
- }
- });
+ });
+ } catch (IllegalStateException e) {
+ // can't register shutdownhook because
+ // jvm shutdown sequence has already begun,
+ // silently ignore...
+ }
}
//------------------------------------------------------< factory methods >