/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