From f4946eaf27d635add2b8cb962756e6a21d5cd86d Mon Sep 17 00:00:00 2001 From: orbiter Date: Tue, 1 Dec 2009 22:53:36 +0000 Subject: [PATCH] - better thread dump - suppressed one server exception git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6509 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/Threaddump_p.java | 22 ++++++++++++---------- source/de/anomic/server/serverCore.java | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/htroot/Threaddump_p.java b/htroot/Threaddump_p.java index a515a6bd2..40bd1ae79 100644 --- a/htroot/Threaddump_p.java +++ b/htroot/Threaddump_p.java @@ -33,6 +33,8 @@ import java.io.File; import java.io.IOException; import java.util.Date; import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.Map.Entry; import java.util.ArrayList; import java.util.HashMap; @@ -113,12 +115,12 @@ public class Threaddump_p { bufferappend(buffer, plain, "THREADS WITH STATES: " + stateIn.toString()); bufferappend(buffer, plain, ""); // collect single dumps - HashMap> dumps = dumpCollection(rootPath, stackTraces, plain, stateIn); + HashMap> dumps = dumpCollection(rootPath, stackTraces, plain, stateIn); // write dumps - for (final Entry> entry: dumps.entrySet()) { - ArrayList threads = entry.getValue(); - for (int i = 0; i < threads.size(); i++) bufferappend(buffer, plain, threads.get(i)); + for (final Entry> entry: dumps.entrySet()) { + SortedSet threads = entry.getValue(); + for (String t: threads) bufferappend(buffer, plain, t); bufferappend(buffer, plain, entry.getKey()); bufferappend(buffer, plain, ""); } @@ -155,12 +157,12 @@ public class Threaddump_p { private static HashMap dumpStatistic(final File rootPath, final ArrayList> stackTraces, final boolean plain, final Thread.State stateIn) { Map trace; HashMap result = new HashMap(); - HashMap> x; + HashMap> x; int count; for (int i = 0; i < stackTraces.size(); i++) { trace = stackTraces.get(i); x = dumpCollection(rootPath, trace, plain, stateIn); - for (final Entry> e: x.entrySet()) { + for (final Entry> e: x.entrySet()) { Integer c = result.get(e.getKey()); count = e.getValue().size(); if (c == null) result.put(e.getKey(), Integer.valueOf(count)); @@ -173,12 +175,12 @@ public class Threaddump_p { return result; } - private static HashMap> dumpCollection(final File rootPath, final Map stackTraces, final boolean plain, final Thread.State stateIn) { + private static HashMap> dumpCollection(final File rootPath, final Map stackTraces, final boolean plain, final Thread.State stateIn) { final File classPath = new File(rootPath, "source"); Thread thread; // collect single dumps - HashMap> dumps = new HashMap>(); + HashMap> dumps = new HashMap>(); for (final Entry entry: stackTraces.entrySet()) { thread = entry.getKey(); final StackTraceElement[] stackTraceElements = entry.getValue(); @@ -220,8 +222,8 @@ public class Threaddump_p { } } String threaddump = sb.toString(); - ArrayList threads = dumps.get(threaddump); - if (threads == null) threads = new ArrayList(); + SortedSet threads = dumps.get(threaddump); + if (threads == null) threads = new TreeSet(); threads.add(threadtitle); dumps.put(threaddump, threads); } diff --git a/source/de/anomic/server/serverCore.java b/source/de/anomic/server/serverCore.java index 911112509..c8484b53c 100644 --- a/source/de/anomic/server/serverCore.java +++ b/source/de/anomic/server/serverCore.java @@ -869,7 +869,7 @@ public final class serverCore extends AbstractBusyThread implements BusyThread { return null; } catch (final IOException e) { String message = e.getMessage(); - if (logerr && !message.equals("Socket closed") && !message.equals("Connection reset")) Log.logWarning("SERVER", "receive closed by IOException: " + e.getMessage()); + if (logerr && !message.equals("Socket closed") && !message.equals("Connection reset") && !message.equals("Read timed out")) Log.logWarning("SERVER", "receive closed by IOException: " + e.getMessage()); return null; } finally { try {