Mercurial > hg > release > icedtea-web-1.8
changeset 575:aff6fb36a9ab
Fixed logging bottleneck
Xml logging is now filtering not-unicode characters.
Logging have more propper test-method recognition
author | Jiri Vanek <jvanek@redhat.com> |
---|---|
date | Mon, 03 Dec 2012 18:08:38 +0100 |
parents | eedc15145aa6 |
children | 741a105054af |
files | ChangeLog tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java |
diffstat | 3 files changed, 53 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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@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@redhat.com> * Makefile.am: Added new target for compiling softkiller.
--- 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(); + } }
--- 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++) {