You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2009/04/08 06:12:14 UTC
svn commit: r762943 - in /incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH:
ChangeLog src/com/ecyrd/jspwiki/Release.java
src/com/ecyrd/jspwiki/util/WatchDog.java
Author: jalkanen
Date: Tue Apr 7 20:32:32 2009
New Revision: 762943
URL: http://svn.apache.org/viewvc?rev=762943&view=rev
Log:
* Improved WatchDog thread dump code so that it does not generate two
log events for every hung thread. Instead, all hung thread events are now
generated as a single log event. Also, thread dumps are now sent
at DEBUG level, since they are not errors per se.
Modified:
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/util/WatchDog.java
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog?rev=762943&r1=762942&r2=762943&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog Tue Apr 7 20:32:32 2009
@@ -1,3 +1,12 @@
+2008-04-04 Janne Jalkanen <ja...@apache.org>
+
+ * 2.8.3-svn-4
+
+ * Improved WatchDog thread dump code so that it does not generate two
+ log events for every hung thread. Instead, all hung thread events are now
+ generated as a single log event. Also, thread dumps are now sent
+ at DEBUG level, since they are not errors per se.
+
2009-04-07 Andrew Jaquith <ajaquith AT apache DOT org>
* 2.8.3-svn-3
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=762943&r1=762942&r2=762943&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java Tue Apr 7 20:32:32 2009
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "2";
+ public static final String BUILD = "4";
/**
* This is the generic version string you should use
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/util/WatchDog.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/util/WatchDog.java?rev=762943&r1=762942&r2=762943&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/util/WatchDog.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/util/WatchDog.java Tue Apr 7 20:32:32 2009
@@ -303,9 +303,10 @@
if( now > st.getExpiryTime() )
{
log.info("Watchable '" + m_watchable.getName() + "' exceeded timeout in state '" + st.getState() + "' by "
- + (now - st.getExpiryTime()) / 1000 + " seconds");
+ + (now - st.getExpiryTime()) / 1000 + " seconds"+(log.isDebugEnabled() ? "" : "Enable DEBUG-level logging to see stack traces."));
dumpStackTraceForWatchable();
+
m_watchable.timeoutExceeded(st.getState());
}
}
@@ -316,11 +317,18 @@
}
}
+ /**
+ * Dumps the stack traces as DEBUG level events.
+ */
private void dumpStackTraceForWatchable()
{
+ if( !log.isDebugEnabled() ) return;
+
Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
Set<Thread> threads = stackTraces.keySet();
Iterator<Thread> threadIterator = threads.iterator();
+ StringBuilder stacktrace = new StringBuilder();
+
while ( threadIterator.hasNext() )
{
Thread t = threadIterator.next();
@@ -328,21 +336,21 @@
{
if( t.getName().equals( m_watchable.getName() ) )
{
- log.error( "dumping stacktrace for too long running thread : " + t );
+ stacktrace.append( "dumping stacktrace for too long running thread : " + t );
}
else
{
- log.error( "dumping stacktrace for other running thread : " + t );
+ stacktrace.append( "dumping stacktrace for other running thread : " + t );
}
StackTraceElement[] ste = stackTraces.get( t );
- StringBuilder stacktrace = new StringBuilder( "stacktrace follows" );
for( int i = 0; i < ste.length; i++ )
{
stacktrace.append( "\n" + ste[i] );
}
- log.error( stacktrace.toString() );
}
}
+
+ log.debug( stacktrace.toString() );
}
/**