/hg/icedtea-web: Fixed logging bottleneck
jvanek at icedtea.classpath.org
jvanek at icedtea.classpath.org
Mon Dec 3 09:08:36 PST 2012
changeset aff6fb36a9ab in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=aff6fb36a9ab
author: Jiri Vanek <jvanek at redhat.com>
date: Mon Dec 03 18:08:38 2012 +0100
Fixed logging bottleneck
Xml logging is now filtering not-unicode characters.
Logging have more propper test-method recognition
diffstat:
ChangeLog | 10 ++++
tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java | 22 ++++++++-
tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 25 ++++++++-
3 files changed, 53 insertions(+), 4 deletions(-)
diffs (96 lines):
diff -r eedc15145aa6 -r aff6fb36a9ab ChangeLog
--- a/ChangeLog Mon Dec 03 14:43:18 2012 +0100
+++ b/ChangeLog Mon Dec 03 18:08:38 2012 +0100
@@ -1,3 +1,13 @@
+2012-11-03 Jiri Vanek <jvanek at redhat.com>
+
+ Fixed logging bottleneck
+ * tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java:
+ added and used function (clearChars) which filter characters going to xml
+ from invalid ones.
+ * tests/test-extensions/net/sourceforge/jnlp/ServerAccess: getting test
+ method id by (getTestMethod) now relay on physical way to the class as
+ the only real thing differing test class and framework class.
+
2012-12-03 Pavel Tisnovsky <ptisnovs at redhat.com>
* Makefile.am: Added new target for compiling softkiller.
diff -r eedc15145aa6 -r aff6fb36a9ab tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java
--- a/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java Mon Dec 03 14:43:18 2012 +0100
+++ b/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java Mon Dec 03 18:08:38 2012 +0100
@@ -117,7 +117,7 @@
String testName = testLog.getKey();
String testLogs = testLog.getValue().toString();
w.write("<" + TESTLOG_ELEMENT + " " + TESTMETHOD_ATTRIBUTE + "=\"" + testName + "\" " + FULLID_ATTRIBUTE + "=\"" + className + "." + testName + "\" >");
- w.write(testLogs);
+ w.write(clearChars(testLogs));
w.write("</" + TESTLOG_ELEMENT + ">");
}
w.write("</" + CLASSLOG_ELEMENT + ">");
@@ -215,4 +215,24 @@
DEFAULT_STDLOGS_WRITER.newLine();
DEFAULT_STDLOGS_WRITER.flush();
}
+
+ public static String clearChars(String ss) {
+ StringBuilder s = new StringBuilder(ss);
+ for (int i = 0; i < s.length(); i++) {
+ char q = s.charAt(i);
+ if (q == '\n') {
+ continue;
+ }
+ if (q == '\t') {
+ continue;
+ }
+ int iq = (int) q;
+ if ((iq <= 31 || iq > 65533)||(iq >= 64976 && iq <= 65007)) {
+ s.setCharAt(i, 'I');
+ s.insert(i + 1, "NVALID_CHAR_" + iq);
+ i--;
+ }
+ }
+ return s.toString();
+ }
}
diff -r eedc15145aa6 -r aff6fb36a9ab tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
--- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Mon Dec 03 14:43:18 2012 +0100
+++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Mon Dec 03 18:08:38 2012 +0100
@@ -783,8 +783,27 @@
//probablky it is necessary to get out of net.sourceforge.jnlp.
//package where are right now all test-extensions
//for now keeping exactly the three clases helping yo acces the log
- if (!stack[i].getClassName().startsWith("net.sourceforge.jnlp.")) {
- break;
+ try {
+ Class clazz = Class.forName(stack[i].getClassName());
+ String path = null;
+ try {
+ path = clazz.getProtectionDomain().getCodeSource().getLocation().getPath();
+ } catch (NullPointerException ex) {
+ //silently ignoring and continuing with null path
+ }
+ if (path != null && path.contains("/tests.build/")) {
+ if (!path.contains("/test-extensions/")) {
+ break;
+ }
+ } else {
+ //running from ide
+ if (!stack[i].getClassName().startsWith("net.sourceforge.jnlp.")) {
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ ///should not happen, searching only for already loaded class
+ ex.printStackTrace();
}
}
//if nothing left in stack then we have been in ServerAccess already
@@ -793,7 +812,7 @@
if (i >= stack.length) {
return result;
}
- //now we are out of net.sourceforge.jnlp.*
+ //now we are out of test-extensions
//method we need (the test) is highest from following class
baseClass = stack[i].getClassName();
for (; i < stack.length; i++) {
More information about the distro-pkg-dev
mailing list