From 9ff3add324f77bcec8158afdcb6b60e7921f3a97 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 22 Jan 2013 17:57:27 +0000 Subject: [PATCH] latest changes from Stefan: logging and fixed to short socket timeout in config file --- notifications/java/full-eGwNotifier.jar | Bin 784426 -> 789708 bytes .../java/src/egroupwaretray/BaseHttp.java | 5 +- .../egroupwaretray/BaseHttpsTrustManager.java | 3 + .../src/egroupwaretray/EgroupwareTrayApp.java | 9 +- .../java/src/egroupwaretray/egwDebuging.java | 132 ++++++++++++++++++ .../java/src/egroupwaretray/jegwMain.java | 16 +++ .../src/egroupwaretray/jegwapplications.java | 1 + .../java/src/egroupwaretray/jegwhttp.java | 4 + .../java/src/lib/conf/egwnotifier.const.xml | 4 +- 9 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 notifications/java/src/egroupwaretray/egwDebuging.java diff --git a/notifications/java/full-eGwNotifier.jar b/notifications/java/full-eGwNotifier.jar index b6b2ff6486b9e3a8ed4659d3707d954a657a99c6..b37d4ac2662354415c108969063d0cf43331a7ee 100755 GIT binary patch delta 68331 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�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

# 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 delta 63275 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

XYzkU<-1U2KkfnSKTpsk_l1>VIy3=#YN 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 Zi=>5mUn(jV91D)Rl8TB`9ep|de*l>`ywLyv diff --git a/notifications/java/src/egroupwaretray/BaseHttp.java b/notifications/java/src/egroupwaretray/BaseHttp.java index 44e5c6f593..d4adc8873f 100755 --- a/notifications/java/src/egroupwaretray/BaseHttp.java +++ b/notifications/java/src/egroupwaretray/BaseHttp.java @@ -32,7 +32,7 @@ public class BaseHttp private boolean _isSSL = false; private boolean _isAjax = false; private String _cookie = ""; - private int _sockettimeout = 10; + private int _sockettimeout = 10000; static private BaseHttpsTrustManager _bhtm = null; @@ -215,6 +215,7 @@ public class BaseHttp } catch( Exception exp ) { + egwDebuging.log.log(Level.SEVERE, null, exp); throw new Exception("NETERROR"); } @@ -322,6 +323,7 @@ public class BaseHttp } catch(Exception exp) { + egwDebuging.log.log(Level.SEVERE, null, exp); throw new Exception("NETERROR"); } @@ -499,6 +501,7 @@ public class BaseHttp } catch( IOException ex) { + egwDebuging.log.log(Level.SEVERE, null, ex); } return false; diff --git a/notifications/java/src/egroupwaretray/BaseHttpsTrustManager.java b/notifications/java/src/egroupwaretray/BaseHttpsTrustManager.java index 85054592f4..2e1bddb0ce 100755 --- a/notifications/java/src/egroupwaretray/BaseHttpsTrustManager.java +++ b/notifications/java/src/egroupwaretray/BaseHttpsTrustManager.java @@ -20,6 +20,7 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.logging.Level; import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; @@ -86,6 +87,8 @@ public class BaseHttpsTrustManager implements javax.net.ssl.X509TrustManager } this.acceptcerts.add(cs); + + egwDebuging.log.log(Level.SEVERE, null, exp); } } } diff --git a/notifications/java/src/egroupwaretray/EgroupwareTrayApp.java b/notifications/java/src/egroupwaretray/EgroupwareTrayApp.java index e79bf58ec7..764d9ec70a 100755 --- a/notifications/java/src/egroupwaretray/EgroupwareTrayApp.java +++ b/notifications/java/src/egroupwaretray/EgroupwareTrayApp.java @@ -50,6 +50,13 @@ public class EgroupwareTrayApp extends SingleFrameApplication { public static void main(String[] args) { // Trayer Main Classe erstellen - new jegwMain(); + try + { + jegwMain jegwMain = new jegwMain(); + } + catch (Throwable uncaught) + { + egwDebuging.dumpUncaughtError(uncaught); + } } } diff --git a/notifications/java/src/egroupwaretray/egwDebuging.java b/notifications/java/src/egroupwaretray/egwDebuging.java new file mode 100644 index 0000000000..2da1189b43 --- /dev/null +++ b/notifications/java/src/egroupwaretray/egwDebuging.java @@ -0,0 +1,132 @@ +/** + * EGroupware - Notifications Java Desktop App + * + * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + * @package notifications + * @subpackage jdesk + * @link http://www.egroupware.org + * @author Stefan Werfling + * @author Maik Hüttner + */ + +package egroupwaretray; + +import java.io.*; +import java.util.Date; +import java.util.logging.FileHandler; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * egwDebuging + * + * @author Stefan Werfling + */ +public class egwDebuging { + + public static final Logger log = Logger.getLogger( egwDebuging.class.getName() ); + public static Handler handler = null; + + /** + * setLevel + * set Logging Level + * + * @param uselevel + */ + public static void setLevel(Level uselevel) + { + egwDebuging.log.setLevel(uselevel); + } + + /** + * setDebuging + * enable/disable Debuging + * + * @param enable + */ + public static void setDebuging(Boolean enable) + { + if( enable && (handler == null) ) + { + long now = System.currentTimeMillis(); + + try + { + egwDebuging.handler = new FileHandler( + String.format("egroupwarenotifier_log_%d.txt", now) ); + + egwDebuging.log.addHandler(egwDebuging.handler); + } + catch( IOException ex ) + { + Logger.getLogger(egwDebuging.class.getName()).log( + Level.SEVERE, null, ex); + } + catch (SecurityException ex) + { + Logger.getLogger(egwDebuging.class.getName()).log( + Level.SEVERE, null, ex); + } + } + else if( !enable && (handler != null) ) + { + egwDebuging.log.removeHandler(egwDebuging.handler); + egwDebuging.handler = null; + } + } + + /** + * + * @param err + */ + protected static void dumpUncaughtError(Throwable err) + { + err.printStackTrace(System.err); + + try + { + long now = System.currentTimeMillis(); + + String report = String.format("%s\n%s\n%s\n", + new Date(now), + err.getLocalizedMessage(), + egwDebuging.stackTraceToStr(err)); + + egwDebuging.writeFile( + new File(System.getProperty("java.io.tmpdir"), + String.format("egroupwarenotifier_uncaught_%d.txt", now)), + report.getBytes()); + } + catch (Throwable ignored) + { + } + } + + public static String stackTraceToStr(Throwable err) + { + StringWriter result = new StringWriter(); + PrintWriter pwr = new PrintWriter(result); + + err.printStackTrace(pwr); + + pwr.flush(); + pwr.close(); + + return result.toString(); + } + + public static void writeFile(File fl, byte[] data) throws IOException + { + FileOutputStream fos = new FileOutputStream(fl); + + try + { + fos.write(data); + } + finally + { + fos.close(); + } + } +} \ No newline at end of file diff --git a/notifications/java/src/egroupwaretray/jegwMain.java b/notifications/java/src/egroupwaretray/jegwMain.java index 5e461abc8b..2a5870074d 100755 --- a/notifications/java/src/egroupwaretray/jegwMain.java +++ b/notifications/java/src/egroupwaretray/jegwMain.java @@ -80,6 +80,15 @@ public class jegwMain implements ActionListener System.exit(0); } + // Debuging + Boolean _debuging = ( jegwConst.getConstTag("egw_debuging").trim() + == "1" ? true : false); + + egwDebuging.setDebuging(_debuging); + egwDebuging.setLevel(Level.parse( + jegwConst.getConstTag("egw_debuging_level").trim())); + // END + if( this.egwconfig.getCXMLM().countConf() < 1 ) { String turl = jegwConst.getConstTag("egw_dc_url").trim(); @@ -162,6 +171,7 @@ public class jegwMain implements ActionListener { Logger.getLogger(jegwMain.class.getName()).log(Level.SEVERE, null, ex); jegwMain.debugDialog(ex.getMessage()); + egwDebuging.log.log(Level.SEVERE, null, ex); } } @@ -412,6 +422,8 @@ public class jegwMain implements ActionListener jegwConst.getConstTag("info_info"), jegwConst.getConstTag("egw_msg_start_browser_error"), TrayIcon.MessageType.ERROR); + + egwDebuging.log.log(Level.SEVERE, null, exp); } } } @@ -479,6 +491,7 @@ public class jegwMain implements ActionListener dialog.setIconImage(hwTrayIcon.getImage(jegwConst.getConstTag("egwicon"))); } catch (IOException ex) { Logger.getLogger(hwTrayIcon.class.getName()).log(Level.SEVERE, null, ex); + egwDebuging.log.log(Level.SEVERE, null, ex); } dialog.setAlwaysOnTop(true); @@ -629,6 +642,8 @@ public class jegwMain implements ActionListener } catch(Exception exp) { + egwDebuging.log.log(Level.SEVERE, null, exp); + // Fehler this.hwtray.showBallon( jegwConst.getConstTag("info_info"), @@ -705,5 +720,6 @@ public class jegwMain implements ActionListener } Logger.getLogger(jegwMain.class.getName()).log(Level.SEVERE, null, ex); + egwDebuging.log.log(Level.SEVERE, null, ex); } } \ No newline at end of file diff --git a/notifications/java/src/egroupwaretray/jegwapplications.java b/notifications/java/src/egroupwaretray/jegwapplications.java index f7e8b24bb0..bd3125888e 100755 --- a/notifications/java/src/egroupwaretray/jegwapplications.java +++ b/notifications/java/src/egroupwaretray/jegwapplications.java @@ -150,6 +150,7 @@ public class jegwapplications dialog.setIconImage(hwTrayIcon.getImage(jegwConst.getConstTag("egwicon"))); } catch (IOException ex) { Logger.getLogger(hwTrayIcon.class.getName()).log(Level.SEVERE, null, ex); + egwDebuging.log.log(Level.SEVERE, null, ex); } ((jegwInfoDialog)dialog).setNotifiyId(app.getString("notify_id")); diff --git a/notifications/java/src/egroupwaretray/jegwhttp.java b/notifications/java/src/egroupwaretray/jegwhttp.java index e97ce217d8..5ad628c474 100755 --- a/notifications/java/src/egroupwaretray/jegwhttp.java +++ b/notifications/java/src/egroupwaretray/jegwhttp.java @@ -14,6 +14,7 @@ package egroupwaretray; import java.awt.event.ActionListener; import java.net.InetAddress; import java.util.*; +import java.util.logging.Level; import org.json.simple.parser.ContainerFactory; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -146,6 +147,7 @@ public class jegwhttp } catch( Exception exp) { + egwDebuging.log.log(Level.SEVERE, null, exp); throw new Exception("HOSTNOTFOUND"); } @@ -705,6 +707,8 @@ public class jegwhttp } catch( ParseException pe ) { + egwDebuging.log.log(Level.SEVERE, null, pe); + throw new Exception("NOAPPS"); } } diff --git a/notifications/java/src/lib/conf/egwnotifier.const.xml b/notifications/java/src/lib/conf/egwnotifier.const.xml index ebd465eb9a..220bef6725 100755 --- a/notifications/java/src/lib/conf/egwnotifier.const.xml +++ b/notifications/java/src/lib/conf/egwnotifier.const.xml @@ -15,8 +15,10 @@ - 10 + 1000 30000 + 0 + ALL Login