Author: thomasm
Date: Tue Jan 16 10:55:15 2018
New Revision: 1821228
URL: http://svn.apache.org/viewvc?rev=1821228&view=rev
Log:
OAK-4521 Oak-run: add profiling and analysis tools
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/threadDump/ThreadDumpThreadNames.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java?rev=1821228&r1=1821227&r2=1821228&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
Tue Jan 16 10:55:15 2018
@@ -178,8 +178,13 @@ public class ThreadDumpCommand implement
if (file.getName().endsWith(".gz")) {
System.out.println("Extracting " + file.getAbsolutePath());
InputStream fileStream = new FileInputStream(file);
- InputStream gzipStream = new GZIPInputStream(fileStream);
- reader = new InputStreamReader(gzipStream);
+ try {
+ InputStream gzipStream = new GZIPInputStream(fileStream);
+ reader = new InputStreamReader(gzipStream);
+ } catch (EOFException e) {
+ fileStream.close();
+ return 0;
+ }
} else {
System.out.println("Reading " + file.getAbsolutePath());
reader = new FileReader(file);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/threadDump/ThreadDumpThreadNames.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/threadDump/ThreadDumpThreadNames.java?rev=1821228&r1=1821227&r2=1821228&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/threadDump/ThreadDumpThreadNames.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/threadDump/ThreadDumpThreadNames.java
Tue Jan 16 10:55:15 2018
@@ -24,6 +24,7 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
+import java.sql.Timestamp;
/**
* A tool that converts a file with date/time and thread dumps into a list of
@@ -79,9 +80,29 @@ public class ThreadDumpThreadNames {
}
if (line.startsWith("\"")) {
line = line.substring(0, line.lastIndexOf('\"') + 1);
+ line = appendTimestamp(line);
writer.write(dateAndTime + " " + line + "\n");
}
}
}
+ private static String appendTimestamp(String line) {
+ int start = line.indexOf("[");
+ if (start < 0) {
+ return line;
+ }
+ int end = line.indexOf("]", start);
+ if (end < 0) {
+ return line;
+ }
+ String millis = line.substring(start + 1, end);
+ try {
+ long m = Long.parseLong(millis);
+ String t = new Timestamp(m).toString();
+ return line + ": " + t;
+ } catch (NumberFormatException e) {
+ return line;
+ }
+ }
+
}