diff --git a/.classpath b/.classpath
index 2bf8103c3..06a5e7e44 100644
--- a/.classpath
+++ b/.classpath
@@ -35,12 +35,12 @@
-
-
+
+
diff --git a/addon/YaCy.app/Contents/Info.plist b/addon/YaCy.app/Contents/Info.plist
index 1d498c03b..12fce02c8 100644
--- a/addon/YaCy.app/Contents/Info.plist
+++ b/addon/YaCy.app/Contents/Info.plist
@@ -25,7 +25,7 @@
Java
VMOptions
- -Xmx600m -Xms180m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8
+ -Xmx600m -Xms180m -XX:-UseGCOverheadLimit -XX:+UseAdaptiveSizePolicy -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8
WorkingDirectory
$APP_PACKAGE/Contents/Resources/Java
MainClass
@@ -45,7 +45,7 @@
$JAVAROOT/lib/commons-io-1.4.jar
$JAVAROOT/lib/commons-jxpath-1.3.jar
$JAVAROOT/lib/commons-logging-1.1.1.jar
- $JAVAROOT/lib/fontbox-1.1.0.jar
+ $JAVAROOT/lib/fontbox-1.2.1.jar
$JAVAROOT/lib/activation.jar
$JAVAROOT/lib/apache-mime4j-0.6.jar
$JAVAROOT/lib/J7Zip-modified.jar
@@ -58,7 +58,7 @@
$JAVAROOT/lib/log4j-1.2.15.jar
$JAVAROOT/lib/metadata-extractor-2.4.0-beta-1.jar
$JAVAROOT/lib/mysql-connector-java-5.1.12-bin.jar
- $JAVAROOT/lib/pdfbox-1.1.0.jar
+ $JAVAROOT/lib/pdfbox-1.2.1.jar
$JAVAROOT/lib/poi-3.6-20091214.jar
$JAVAROOT/lib/poi-scratchpad-3.6-20091214.jar
$JAVAROOT/lib/servlet-api.jar
diff --git a/addon/yacyInit.m4 b/addon/yacyInit.m4
index 79d5bfedd..04326d25a 100644
--- a/addon/yacyInit.m4
+++ b/addon/yacyInit.m4
@@ -57,7 +57,7 @@ SHUTDOWN_TIMEOUT=50
# Default niceness if not set in config file
NICE_VAL=0
-JAVA_ARGS="-server -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseAdaptiveSizePolicy -Djava.awt.headless=true -Dfile.encoding=UTF-8"
+JAVA_ARGS="-server -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseGCOverheadLimit -XX:+UseAdaptiveSizePolicy -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8"
#check if system supports large memory pages and enable it if possible
HUGEPAGESTOTAL="$(cat /proc/meminfo | grep HugePages_Total | sed s/[^0-9]//g)"
if [ -n "$HUGEPAGESTOTAL" ] && [ $HUGEPAGESTOTAL -ne 0 ]
diff --git a/build.xml b/build.xml
index 924c4562e..e175f7605 100644
--- a/build.xml
+++ b/build.xml
@@ -189,7 +189,7 @@
-
+
@@ -200,7 +200,7 @@
-
+
diff --git a/htroot/Threaddump_p.java b/htroot/Threaddump_p.java
index 32e46b6ae..b6d76e329 100644
--- a/htroot/Threaddump_p.java
+++ b/htroot/Threaddump_p.java
@@ -25,29 +25,19 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-// You must compile this file with
-// javac -classpath .:../Classes Blacklist_p.java
-// if the shell's current path is HTROOT
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;
import net.yacy.cora.protocol.RequestHeader;
-import net.yacy.document.parser.html.CharacterCoding;
-import net.yacy.kelondro.util.FileUtils;
+import net.yacy.kelondro.logging.ThreadDumpGenerator;
import net.yacy.kelondro.util.MemoryControl;
import de.anomic.search.Switchboard;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
-import de.anomic.tools.nxTools;
import de.anomic.yacy.yacyBuildProperties;
public class Threaddump_p {
@@ -68,14 +58,14 @@ public class Threaddump_p {
final String versionstring = yacyBuildProperties.getVersion() + "/" + yacyBuildProperties.getSVNRevision();
Runtime runtime = Runtime.getRuntime();
- bufferappend(buffer, plain, "************* Start Thread Dump " + dt + " *******************");
- bufferappend(buffer, plain, "");
- bufferappend(buffer, plain, "YaCy Version: " + versionstring);
- bufferappend(buffer, plain, "Assigned Memory = " + (runtime.maxMemory()));
- bufferappend(buffer, plain, "Used Memory = " + (runtime.totalMemory() - runtime.freeMemory()));
- bufferappend(buffer, plain, "Available Memory = " + (runtime.maxMemory() - runtime.totalMemory() + runtime.freeMemory()));
- bufferappend(buffer, plain, "");
- bufferappend(buffer, plain, "");
+ ThreadDumpGenerator.bufferappend(buffer, plain, "************* Start Thread Dump " + dt + " *******************");
+ ThreadDumpGenerator.bufferappend(buffer, plain, "");
+ ThreadDumpGenerator.bufferappend(buffer, plain, "YaCy Version: " + versionstring);
+ ThreadDumpGenerator.bufferappend(buffer, plain, "Assigned Memory = " + (runtime.maxMemory()));
+ ThreadDumpGenerator.bufferappend(buffer, plain, "Used Memory = " + (runtime.totalMemory() - runtime.freeMemory()));
+ ThreadDumpGenerator.bufferappend(buffer, plain, "Available Memory = " + (runtime.maxMemory() - runtime.totalMemory() + runtime.freeMemory()));
+ ThreadDumpGenerator.bufferappend(buffer, plain, "");
+ ThreadDumpGenerator.bufferappend(buffer, plain, "");
int multipleCount = 100;
File appPath = sb.getAppPath();
@@ -86,27 +76,27 @@ public class Threaddump_p {
traces.add(Thread.getAllStackTraces());
if (MemoryControl.available() < 20 * 1024 * 1024) break;
}
- appendStackTraceStats(appPath, buffer, traces, plain, null);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, null);
/*
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.BLOCKED);
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.RUNNABLE);
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.TIMED_WAITING);
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.WAITING);
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.NEW);
- appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.TERMINATED);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.BLOCKED);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.RUNNABLE);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.TIMED_WAITING);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.WAITING);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.NEW);
+ ThreadDumpGenerator.appendStackTraceStats(appPath, buffer, traces, plain, Thread.State.TERMINATED);
*/
} else {
// generate a single thread dump
final Map stackTraces = Thread.getAllStackTraces();
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.BLOCKED);
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.RUNNABLE);
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.TIMED_WAITING);
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.WAITING);
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.NEW);
- appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.TERMINATED);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.BLOCKED);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.RUNNABLE);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.TIMED_WAITING);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.WAITING);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.NEW);
+ ThreadDumpGenerator.appendStackTraces(appPath, buffer, stackTraces, plain, Thread.State.TERMINATED);
}
- bufferappend(buffer, plain, "************* End Thread Dump " + dt + " *******************");
+ ThreadDumpGenerator.bufferappend(buffer, plain, "************* End Thread Dump " + dt + " *******************");
prop.put("plain_count", multipleCount);
prop.put("plain_content", buffer.toString());
@@ -115,153 +105,6 @@ public class Threaddump_p {
return prop; // return from serverObjects respond()
}
- private static void appendStackTraces(final File rootPath, final StringBuilder buffer, final Map stackTraces, final boolean plain, final Thread.State stateIn) {
- bufferappend(buffer, plain, "THREADS WITH STATES: " + stateIn.toString());
- bufferappend(buffer, plain, "");
- // collect single dumps
- HashMap> dumps = dumpCollection(rootPath, stackTraces, plain, stateIn);
-
- // write dumps
- 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, "");
- }
- bufferappend(buffer, plain, "");
- }
-
- private static void appendStackTraceStats(final File rootPath, final StringBuilder buffer, final ArrayList