/hg/icedtea-web: Introduced logging bottleneck

jvanek at icedtea.classpath.org jvanek at icedtea.classpath.org
Wed Sep 25 09:50:44 PDT 2013


changeset a817bb6d12a6 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a817bb6d12a6
author: Jiri Vanek <jvanek at redhat.com>
date: Wed Sep 25 18:50:18 2013 +0200

	Introduced logging bottleneck


diffstat:

 ChangeLog                                                                                      |  125 +++
 netx/net/sourceforge/jnlp/AbstractLaunchHandler.java                                           |   16 +-
 netx/net/sourceforge/jnlp/AppletLog.java                                                       |   92 --
 netx/net/sourceforge/jnlp/DefaultLaunchHandler.java                                            |    4 +-
 netx/net/sourceforge/jnlp/ExtensionDesc.java                                                   |    4 +-
 netx/net/sourceforge/jnlp/GuiLaunchHandler.java                                                |    8 +-
 netx/net/sourceforge/jnlp/JNLPFile.java                                                        |   11 +-
 netx/net/sourceforge/jnlp/JNLPMatcher.java                                                     |    5 +-
 netx/net/sourceforge/jnlp/JNLPSplashScreen.java                                                |   13 +-
 netx/net/sourceforge/jnlp/Launcher.java                                                        |   31 +-
 netx/net/sourceforge/jnlp/Log.java                                                             |   79 -
 netx/net/sourceforge/jnlp/MalformedXMLParser.java                                              |    5 +-
 netx/net/sourceforge/jnlp/NetxPanel.java                                                       |   11 +-
 netx/net/sourceforge/jnlp/Parser.java                                                          |   17 +-
 netx/net/sourceforge/jnlp/PluginBridge.java                                                    |    9 +-
 netx/net/sourceforge/jnlp/SecurityDesc.java                                                    |    3 +-
 netx/net/sourceforge/jnlp/StreamEater.java                                                     |   17 +-
 netx/net/sourceforge/jnlp/XmlParser.java                                                       |    3 +-
 netx/net/sourceforge/jnlp/about/HTMLPanel.java                                                 |    3 +-
 netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java                               |   19 +-
 netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java                                |   10 +-
 netx/net/sourceforge/jnlp/browser/FirefoxPreferencesParser.java                                |    7 +-
 netx/net/sourceforge/jnlp/cache/CacheDirectory.java                                            |    6 +-
 netx/net/sourceforge/jnlp/cache/CacheEntry.java                                                |    7 +-
 netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java                                           |   15 +-
 netx/net/sourceforge/jnlp/cache/CacheUtil.java                                                 |   44 +-
 netx/net/sourceforge/jnlp/cache/NativeLibraryStorage.java                                      |   12 +-
 netx/net/sourceforge/jnlp/cache/Resource.java                                                  |   18 +-
 netx/net/sourceforge/jnlp/cache/ResourceTracker.java                                           |   55 +-
 netx/net/sourceforge/jnlp/config/Defaults.java                                                 |   20 +-
 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java                                  |  133 +-
 netx/net/sourceforge/jnlp/controlpanel/CachePane.java                                          |    5 +-
 netx/net/sourceforge/jnlp/controlpanel/CommandLine.java                                        |   90 +-
 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java                                       |    9 +-
 netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java                                     |   82 +-
 netx/net/sourceforge/jnlp/controlpanel/DocumentAdapter.java                                    |    4 +-
 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java                                           |    7 +-
 netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java                   |   15 +-
 netx/net/sourceforge/jnlp/resources/Messages.properties                                        |   11 +-
 netx/net/sourceforge/jnlp/resources/Messages_cs.properties                                     |    1 -
 netx/net/sourceforge/jnlp/resources/Messages_de.properties                                     |    1 -
 netx/net/sourceforge/jnlp/resources/Messages_pl.properties                                     |    1 -
 netx/net/sourceforge/jnlp/runtime/AppletAudioClip.java                                         |    4 +-
 netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java                                       |   11 +-
 netx/net/sourceforge/jnlp/runtime/AppletInstance.java                                          |    9 +-
 netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java                                     |   23 +-
 netx/net/sourceforge/jnlp/runtime/Boot.java                                                    |   46 +-
 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java                                   |    6 +-
 netx/net/sourceforge/jnlp/runtime/FakePacEvaluator.java                                        |    5 +-
 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java                                         |  121 +-
 netx/net/sourceforge/jnlp/runtime/JNLPPolicy.java                                              |    7 +-
 netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java                                       |   27 +-
 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java                                             |  120 +-
 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java                                     |   22 +-
 netx/net/sourceforge/jnlp/runtime/PacEvaluatorFactory.java                                     |   19 +-
 netx/net/sourceforge/jnlp/runtime/RhinoBasedPacEvaluator.java                                  |   17 +-
 netx/net/sourceforge/jnlp/security/CertWarningPane.java                                        |    7 +-
 netx/net/sourceforge/jnlp/security/CertificateUtils.java                                       |   18 +-
 netx/net/sourceforge/jnlp/security/HttpsCertVerifier.java                                      |    7 +-
 netx/net/sourceforge/jnlp/security/KeyStores.java                                              |    3 +-
 netx/net/sourceforge/jnlp/security/SecurityDialog.java                                         |   11 +-
 netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java                           |    7 +-
 netx/net/sourceforge/jnlp/security/SecurityUtil.java                                           |    3 +-
 netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java                               |    9 +-
 netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java      |    3 +-
 netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java |   16 +-
 netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java                                 |   13 +-
 netx/net/sourceforge/jnlp/services/ServiceUtil.java                                            |   11 +-
 netx/net/sourceforge/jnlp/services/XBasicService.java                                          |   16 +-
 netx/net/sourceforge/jnlp/services/XPersistenceService.java                                    |    7 +-
 netx/net/sourceforge/jnlp/services/XPrintService.java                                          |    9 +-
 netx/net/sourceforge/jnlp/services/XSingleInstanceService.java                                 |   19 +-
 netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java                                        |    7 +-
 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java          |    7 +-
 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/ErrorPainter.java         |    3 +-
 netx/net/sourceforge/jnlp/splashscreen/parts/InformationElement.java                           |    3 +-
 netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java              |   15 +-
 netx/net/sourceforge/jnlp/tools/CertInformation.java                                           |    4 +-
 netx/net/sourceforge/jnlp/tools/JarCertVerifier.java                                           |   23 +-
 netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java                                       |   11 +-
 netx/net/sourceforge/jnlp/util/FileUtils.java                                                  |   23 +-
 netx/net/sourceforge/jnlp/util/HttpUtils.java                                                  |    3 +-
 netx/net/sourceforge/jnlp/util/ImageResources.java                                             |    3 +-
 netx/net/sourceforge/jnlp/util/PropertiesFile.java                                             |    5 +-
 netx/net/sourceforge/jnlp/util/Reflect.java                                                    |    5 +-
 netx/net/sourceforge/jnlp/util/StreamUtils.java                                                |   14 +-
 netx/net/sourceforge/jnlp/util/TimedHashMap.java                                               |    9 +-
 netx/net/sourceforge/jnlp/util/UrlUtils.java                                                   |   13 +-
 netx/net/sourceforge/jnlp/util/XDesktopEntry.java                                              |   19 +-
 netx/net/sourceforge/jnlp/util/logging/FileLog.java                                            |  107 ++
 netx/net/sourceforge/jnlp/util/logging/LogConfig.java                                          |  156 +++
 netx/net/sourceforge/jnlp/util/logging/OutputController.java                                   |  398 ++++++++++
 netx/net/sourceforge/jnlp/util/logging/PrintStreamLogger.java                                  |   68 +
 netx/net/sourceforge/jnlp/util/logging/SingleStreamLogger.java                                 |   46 +
 netx/net/sourceforge/jnlp/util/logging/UnixSystemLog.java                                      |   57 +
 netx/net/sourceforge/jnlp/util/logging/WinSystemLog.java                                       |   57 +
 netx/net/sourceforge/nanoxml/XMLElement.java                                                   |   25 +-
 plugin/icedteanp/java/netscape/javascript/JSRunnable.java                                      |    3 +-
 plugin/icedteanp/java/sun/applet/JavaConsole.java                                              |   53 +-
 plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java                                 |    7 +-
 plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java                              |   15 +-
 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java                                       |   17 +-
 plugin/icedteanp/java/sun/applet/PluginDebug.java                                              |    7 +-
 plugin/icedteanp/java/sun/applet/PluginException.java                                          |    4 +-
 plugin/icedteanp/java/sun/applet/PluginMain.java                                               |   21 +-
 plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java                                    |    3 +-
 plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java                               |    4 +-
 plugin/icedteanp/java/sun/applet/PluginProxyInfoRequest.java                                   |    3 +-
 plugin/icedteanp/java/sun/applet/PluginProxySelector.java                                      |    3 +-
 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java                                      |   12 +-
 tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java                             |   71 +-
 tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java                            |   62 +-
 tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java                                   |   52 +-
 tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java                               |    4 -
 tests/netx/unit/net/sourceforge/jnlp/util/logging/FileLogTest.java                             |  178 ++++
 tests/netx/unit/net/sourceforge/jnlp/util/logging/OutputControllerTest.java                    |  367 +++++++++
 tests/netx/unit/net/sourceforge/jnlp/util/logging/PrintStreamLoggerTest.java                   |  113 ++
 tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java                      |    2 -
 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java                                   |   12 +-
 119 files changed, 2582 insertions(+), 1136 deletions(-)

diffs (truncated from 7708 to 500 lines):

diff -r a69671b1e1f1 -r a817bb6d12a6 ChangeLog
--- a/ChangeLog	Tue Sep 24 13:42:31 2013 -0400
+++ b/ChangeLog	Wed Sep 25 18:50:18 2013 +0200
@@ -1,3 +1,128 @@
+2013-09-25  Jiri Vanek  <jvanek at redhat.com>
+
+	Added logging bottleneck
+	* netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: extracted system.out/err
+	and printStackTrace in favour of outputController.log methods. Same all below
+	* netx/net/sourceforge/jnlp/DefaultLaunchHandler.java
+	* netx/net/sourceforge/jnlp/ExtensionDesc.java
+	* netx/net/sourceforge/jnlp/GuiLaunchHandler.java
+	* netx/net/sourceforge/jnlp/JNLPFile.java
+	* netx/net/sourceforge/jnlp/JNLPMatcher.java
+	* netx/net/sourceforge/jnlp/JNLPSplashScreen.java
+	* netx/net/sourceforge/jnlp/Launcher.java
+	* netx/net/sourceforge/jnlp/MalformedXMLParser.java
+	* netx/net/sourceforge/jnlp/NetxPanel.java
+	* netx/net/sourceforge/jnlp/Parser.java
+	* netx/net/sourceforge/jnlp/PluginBridge.java
+	* netx/net/sourceforge/jnlp/SecurityDesc.java
+	* netx/net/sourceforge/jnlp/StreamEater.java
+	* netx/net/sourceforge/jnlp/XmlParser.java
+	* netx/net/sourceforge/jnlp/about/HTMLPanel.java
+	* netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java
+	* netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java
+	* netx/net/sourceforge/jnlp/browser/FirefoxPreferencesParser.java
+	* netx/net/sourceforge/jnlp/cache/CacheDirectory.java
+	* netx/net/sourceforge/jnlp/cache/CacheEntry.java
+	* netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java
+	* netx/net/sourceforge/jnlp/cache/CacheUtil.java
+	* netx/net/sourceforge/jnlp/cache/NativeLibraryStorage.java
+	* netx/net/sourceforge/jnlp/cache/Resource.java
+	* netx/net/sourceforge/jnlp/cache/ResourceTracker.java
+	* netx/net/sourceforge/jnlp/config/Defaults.java
+	* netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
+	* netx/net/sourceforge/jnlp/controlpanel/CachePane.java
+	* netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
+	* netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java
+	* netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java
+	* netx/net/sourceforge/jnlp/controlpanel/DocumentAdapter.java
+	* netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java
+	* netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java
+	* netx/net/sourceforge/jnlp/resources/Messages.properties
+	* netx/net/sourceforge/jnlp/resources/Messages_cs.properties
+	* netx/net/sourceforge/jnlp/resources/Messages_de.properties
+	* netx/net/sourceforge/jnlp/resources/Messages_pl.properties
+	* netx/net/sourceforge/jnlp/runtime/AppletAudioClip.java
+	* netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java
+	* netx/net/sourceforge/jnlp/runtime/AppletInstance.java
+	* netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java
+	* netx/net/sourceforge/jnlp/runtime/Boot.java
+	* netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
+	* netx/net/sourceforge/jnlp/runtime/FakePacEvaluator.java
+	* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
+	* netx/net/sourceforge/jnlp/runtime/JNLPPolicy.java
+	* netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
+	* netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
+	* netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
+	* netx/net/sourceforge/jnlp/runtime/PacEvaluatorFactory.java
+	* netx/net/sourceforge/jnlp/runtime/RhinoBasedPacEvaluator.java
+	* netx/net/sourceforge/jnlp/security/CertWarningPane.java
+	* netx/net/sourceforge/jnlp/security/CertificateUtils.java
+	* netx/net/sourceforge/jnlp/security/HttpsCertVerifier.java
+	* netx/net/sourceforge/jnlp/security/KeyStores.java
+	* netx/net/sourceforge/jnlp/security/SecurityDialog.java
+	* netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java
+	* netx/net/sourceforge/jnlp/security/SecurityUtil.java
+	* netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java
+	* netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java
+	* netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java
+	* netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java
+	* netx/net/sourceforge/jnlp/services/ServiceUtil.java
+	* netx/net/sourceforge/jnlp/services/XBasicService.java
+	* netx/net/sourceforge/jnlp/services/XPersistenceService.java
+	* netx/net/sourceforge/jnlp/services/XPrintService.java
+	* netx/net/sourceforge/jnlp/services/XSingleInstanceService.java
+	* netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java
+	* netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java
+	* netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/ErrorPainter.java
+	* netx/net/sourceforge/jnlp/splashscreen/parts/InformationElement.java
+	* netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java
+	* netx/net/sourceforge/jnlp/tools/CertInformation.java
+	* netx/net/sourceforge/jnlp/tools/JarCertVerifier.java
+	* netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java
+	* netx/net/sourceforge/jnlp/util/FileUtils.java
+	* netx/net/sourceforge/jnlp/util/HttpUtils.java
+	* netx/net/sourceforge/jnlp/util/ImageResources.java
+	* netx/net/sourceforge/jnlp/util/PropertiesFile.java
+	* netx/net/sourceforge/jnlp/util/Reflect.java
+	* netx/net/sourceforge/jnlp/util/StreamUtils.java
+	* netx/net/sourceforge/jnlp/util/TimedHashMap.java
+	* netx/net/sourceforge/jnlp/util/UrlUtils.java
+	* netx/net/sourceforge/jnlp/util/XDesktopEntry.java
+	* netx/net/sourceforge/nanoxml/XMLElement.java
+	* plugin/icedteanp/java/netscape/javascript/JSRunnable.java
+	* plugin/icedteanp/java/sun/applet/JavaConsole.java
+	* plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java
+	* plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java
+	* plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
+	* plugin/icedteanp/java/sun/applet/PluginDebug.java
+	* plugin/icedteanp/java/sun/applet/PluginException.java
+	* plugin/icedteanp/java/sun/applet/PluginMain.java
+	* plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java
+	* plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java
+	* plugin/icedteanp/java/sun/applet/PluginProxyInfoRequest.java
+	* plugin/icedteanp/java/sun/applet/PluginProxySelector.java
+	* plugin/icedteanp/java/sun/applet/PluginStreamHandler.java
+	* tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java
+	* tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java
+	* tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java
+	* tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java
+	* tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java
+	* tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
+	* netx/net/sourceforge/jnlp/util/logging/FileLog.java: new file, derived from 
+	AppletLog. Now have responsibility to log to custom file.
+	* netx/net/sourceforge/jnlp/util/logging/LogConfig.java: new file derived from Log
+	* netx/net/sourceforge/jnlp/util/logging/OutputController.java: new bottleneck for logging
+	* netx/net/sourceforge/jnlp/util/logging/PrintStreamLogger.java: logger to std.streams
+	* netx/net/sourceforge/jnlp/util/logging/SingleStreamLogger.java: interface common to all new loggers
+	* netx/net/sourceforge/jnlp/util/logging/UnixSystemLog.java: not yet implemented  susytem log
+	* netx/net/sourceforge/jnlp/util/logging/WinSystemLog.java: not yet implemented  susytem log
+	* tests/netx/unit/net/sourceforge/jnlp/util/logging/FileLogTest.java: new set of tests
+	* tests/netx/unit/net/sourceforge/jnlp/util/logging/OutputControllerTest.java: new set of tests
+	* tests/netx/unit/net/sourceforge/jnlp/util/logging/PrintStreamLoggerTest.java: new set of tests
+	* netx/net/sourceforge/jnlp/AppletLog.java: removed
+	* netx/net/sourceforge/jnlp/Log.java: rmeoved
+	
+
 2013-09-24  Omair Majid  <omajid at redhat.com>
 
 	PR1474
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/AbstractLaunchHandler.java
--- a/netx/net/sourceforge/jnlp/AbstractLaunchHandler.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/AbstractLaunchHandler.java	Wed Sep 25 18:50:18 2013 +0200
@@ -37,16 +37,15 @@
 
 package net.sourceforge.jnlp;
 
-import java.io.PrintStream;
 
-import net.sourceforge.jnlp.runtime.JNLPRuntime;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 public abstract class AbstractLaunchHandler implements LaunchHandler {
 
-    protected final PrintStream outputStream;
+    protected final OutputController logger;
 
-    public AbstractLaunchHandler(PrintStream outputStream) {
-        this.outputStream = outputStream;
+    public AbstractLaunchHandler(OutputController logger) {
+        this.logger = logger;
     }
 
     /**
@@ -63,11 +62,10 @@
         if (ex.getCause() != null) {
             result.append(recursiveDescription(ex.getCause()));
         }
-        outputStream.println(result);
+        logger.log(OutputController.Level.MESSAGE_ALL, result.toString());
 
-        if (JNLPRuntime.isDebug()) {
-            ex.printStackTrace(outputStream);
-        }
+        logger.log(ex);
+        
     }
 
     private String recursiveDescription(Throwable throwable) {
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/AppletLog.java
--- a/netx/net/sourceforge/jnlp/AppletLog.java	Tue Sep 24 13:42:31 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/* AppletLog.java
-   Copyright (C) 2011 Red Hat, Inc.
-
-This file is part of IcedTea.
-
-IcedTea is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-IcedTea is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with IcedTea; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package net.sourceforge.jnlp;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.PrintStream;
-import java.util.logging.FileHandler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.logging.XMLFormatter;
-
-import net.sourceforge.jnlp.util.FileUtils;
-
-/**
- * This class writes log information to file.
- * 
- * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca)
- * 
- */
-class AppletLog extends Log {
-    private static Logger logger;
-    static {
-        try {
-            // If logging is enabled, we create logger.
-            if (enableLogging) {
-                String fn = icedteaLogDir + "plugin" + java.lang.System.currentTimeMillis() + ".log";
-                FileUtils.createRestrictedFile(new File(fn), true);
-                FileHandler fh = new FileHandler(fn, false);
-                fh.setFormatter(new XMLFormatter());
-                String logClassName = AppletLog.class.getName();
-                logger = Logger.getLogger(logClassName);
-                logger.setLevel(Level.ALL);
-                logger.addHandler(fh);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private AppletLog() {
-    }
-
-    /**
-     * Log the exception to file.
-     * 
-     * @param e Exception that was thrown.
-     */
-    public synchronized static void log(Throwable e) {
-        if (enableLogging && logger != null) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            PrintStream ps = new PrintStream(baos);
-            e.printStackTrace(ps);
-            logger.log(Level.FINE, baos.toString());
-        }
-    }
-}
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/DefaultLaunchHandler.java
--- a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java	Wed Sep 25 18:50:18 2013 +0200
@@ -16,9 +16,9 @@
 
 package net.sourceforge.jnlp;
 
-import java.io.PrintStream;
 
 import net.sourceforge.jnlp.runtime.*;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 /**
  * This default implementation shows prints the exception to
@@ -30,7 +30,7 @@
  */
 public class DefaultLaunchHandler extends AbstractLaunchHandler {
 
-    public DefaultLaunchHandler(PrintStream out) {
+    public DefaultLaunchHandler(OutputController out) {
         super(out);
     }
 
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/ExtensionDesc.java
--- a/netx/net/sourceforge/jnlp/ExtensionDesc.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/ExtensionDesc.java	Wed Sep 25 18:50:18 2013 +0200
@@ -23,6 +23,7 @@
 import java.util.*;
 
 import net.sourceforge.jnlp.runtime.JNLPRuntime;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 /**
  * The extension element.
@@ -122,8 +123,7 @@
         if (file == null) {
             file = new JNLPFile(location);
 
-            if (JNLPRuntime.isDebug())
-                System.out.println("Resolve: " + file.getInformation().getTitle());
+            OutputController.getLogger().log("Resolve: " + file.getInformation().getTitle());
 
             // check for it being an extension descriptor
             if (!file.isComponent() && !file.isInstaller())
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/GuiLaunchHandler.java
--- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java	Wed Sep 25 18:50:18 2013 +0200
@@ -37,7 +37,6 @@
 
 package net.sourceforge.jnlp;
 
-import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URL;
 
@@ -47,6 +46,7 @@
 import net.sourceforge.jnlp.cache.UpdatePolicy;
 import net.sourceforge.jnlp.runtime.ApplicationInstance;
 import net.sourceforge.jnlp.util.BasicExceptionDialog;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 /**
  * A {@link LaunchHandler} that gives feedback to the user using GUI elements
@@ -58,7 +58,7 @@
     private final Object mutex = new Object();
     private UpdatePolicy policy = UpdatePolicy.ALWAYS;
 
-    public GuiLaunchHandler(PrintStream outputStream) {
+    public GuiLaunchHandler(OutputController outputStream) {
         super(outputStream);
     }
 
@@ -127,7 +127,7 @@
                 // Wait till splash screen is created
                 while (splashScreen == null);
             } catch (InvocationTargetException ite) {
-                ite.printStackTrace();
+                OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ite);
             }
             try {
                 SwingUtilities.invokeAndWait(new Runnable() {
@@ -141,7 +141,7 @@
                 // Wait till splash screen is created
                 while (!splashScreen.isSplashImageLoaded());
             } catch (InvocationTargetException ite) {
-                ite.printStackTrace();
+                OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ite);
             }
 
 
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/JNLPFile.java
--- a/netx/net/sourceforge/jnlp/JNLPFile.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/JNLPFile.java	Wed Sep 25 18:50:18 2013 +0200
@@ -31,6 +31,7 @@
 import net.sourceforge.jnlp.cache.ResourceTracker;
 import net.sourceforge.jnlp.cache.UpdatePolicy;
 import net.sourceforge.jnlp.runtime.JNLPRuntime;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 /**
  * Provides methods to access the information in a Java Network
@@ -223,8 +224,7 @@
                          ((int)(Math.random()*Integer.MAX_VALUE)) + "-" +
                          location;
 
-        if (JNLPRuntime.isDebug())
-            System.err.println("UNIQUEKEY=" + this.uniqueKey);
+        OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "UNIQUEKEY=" + this.uniqueKey);
     }
 
     /**
@@ -243,8 +243,7 @@
         this(location, version, settings, policy);
         this.uniqueKey = uniqueKey;
 
-        if (JNLPRuntime.isDebug())
-            System.err.println("UNIQUEKEY (override) =" + this.uniqueKey);
+        OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "UNIQUEKEY (override) =" + this.uniqueKey);
     }
 
     /**
@@ -714,9 +713,7 @@
         } catch (ParseException ex) {
             throw ex;
         } catch (Exception ex) {
-            if (JNLPRuntime.isDebug())
-                ex.printStackTrace();
-
+            OutputController.getLogger().log(ex);
             throw new RuntimeException(ex.toString());
         }
     }
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/JNLPMatcher.java
--- a/netx/net/sourceforge/jnlp/JNLPMatcher.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java	Wed Sep 25 18:50:18 2013 +0200
@@ -47,6 +47,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedList;
+import net.sourceforge.jnlp.util.logging.OutputController;
 import net.sourceforge.nanoxml.XMLElement;
 
 /**
@@ -261,7 +262,7 @@
             try {
                 stream.close();
             } catch (Exception e) {
-                e.printStackTrace(System.err);
+                OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e);
             }
     }
 
@@ -276,7 +277,7 @@
             try {
                 stream.close();
             } catch (Exception e) {
-                e.printStackTrace(System.err);
+                OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e);
             }
     }
 }
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/JNLPSplashScreen.java
--- a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java	Wed Sep 25 18:50:18 2013 +0200
@@ -54,6 +54,7 @@
 import net.sourceforge.jnlp.splashscreen.SplashUtils;
 import net.sourceforge.jnlp.splashscreen.parts.InformationElement;
 import net.sourceforge.jnlp.util.ImageResources;
+import net.sourceforge.jnlp.util.logging.OutputController;
 import net.sourceforge.jnlp.util.ScreenFinder;
 
 public class JNLPSplashScreen extends JDialog {
@@ -91,19 +92,13 @@
                 try {
                     splashImage = ImageIO.read(resourceTracker.getCacheFile(splashImageUrl));
                     if (splashImage == null) {
-                        if (JNLPRuntime.isDebug()) {
-                            System.err.println("Error loading splash image: " + url);
-                        }
+                        OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Error loading splash image: " + url);
                     }
                 } catch (IOException e) {
-                    if (JNLPRuntime.isDebug()) {
-                        System.err.println("Error loading splash image: " + url);
-                    }
+                    OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Error loading splash image: " + url);
                     splashImage = null;
                 } catch (IllegalArgumentException argumentException) {
-                    if (JNLPRuntime.isDebug()) {
-                        System.err.println("Error loading splash image: " + url);
-                    }
+                    OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Error loading splash image: " + url);
                     splashImage = null;
                 }
             }
diff -r a69671b1e1f1 -r a817bb6d12a6 netx/net/sourceforge/jnlp/Launcher.java
--- a/netx/net/sourceforge/jnlp/Launcher.java	Tue Sep 24 13:42:31 2013 -0400
+++ b/netx/net/sourceforge/jnlp/Launcher.java	Wed Sep 25 18:50:18 2013 +0200
@@ -46,6 +46,7 @@
 import javax.swing.text.html.parser.ParserDelegator;
 import net.sourceforge.jnlp.runtime.AppletEnvironment;
 import net.sourceforge.jnlp.splashscreen.SplashUtils;
+import net.sourceforge.jnlp.util.logging.OutputController;
 
 import sun.awt.SunToolkit;
 
@@ -77,7 +78,7 @@
     /** whether to create an AppContext (if possible) */
     private boolean context = true;
 
-    /** If the application should call System.exit on fatal errors */
+    /** If the application should call JNLPRuntime.exit on fatal errors */
     private boolean exitOnFailure = true;
 
     private ParserSettings parserSettings = new ParserSettings();
@@ -229,10 +230,10 @@
                 InetAddress.getByName(file.getSourceLocation().getHost());
 
             } catch (UnknownHostException ue) {
-                System.err.println("File cannot be launched because offline-allowed tag not specified and system currently offline.");
+                OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "File cannot be launched because offline-allowed tag not specified and system currently offline.");
                 return null;
             } catch (Exception e) {
-                System.err.println(e);
+                OutputController.getLogger().log(e);
             }
         }
 
@@ -483,9 +484,7 @@
             try {
                 ServiceUtil.checkExistingSingleInstance(file);
             } catch (InstanceExistsException e) {
-                if (JNLPRuntime.isDebug()) {


More information about the distro-pkg-dev mailing list