Index: apisupport/jackpotrules/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/nbproject/project.properties,v retrieving revision 1.1 retrieving revision 1.1.8.2 diff -u -r1.1 -r1.1.8.2 --- apisupport/jackpotrules/nbproject/project.properties 4 Apr 2006 17:21:21 -0000 1.1 +++ apisupport/jackpotrules/nbproject/project.properties 9 Jun 2006 14:51:47 -0000 1.1.8.2 @@ -0,0 +1,24 @@ +# Sun Public License Notice +# +# The contents of this file are subject to the Sun Public License +# Version 1.0 (the "License"). You may not use this file except in +# compliance with the License. A copy of the License is available at +# http://www.sun.com/ +# +# The Original Code is NetBeans. The Initial Developer of the Original +# Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun +# Microsystems, Inc. All Rights Reserved. + + +test.unit.cp.extra=\ + ${openide/fs.dir}/core/org-openide-filesystems.jar:\ + ${openide/masterfs.dir}/modules/org-netbeans-modules-masterfs.jar:\ + ${openide/util.dir}/lib/org-openide-util.jar:\ + ${openide/modules.dir}/lib/org-openide-modules.jar:\ + ${jackpot/engine.dir}/modules/org-netbeans-jackpot.jar:\ + ${jackpot.dir}/modules/org-netbeans-modules-jackpot.jar:\ + ${jackpot.dir}/modules/ext/javac-api.jar:\ + ${jackpot.dir}/modules/ext/javac-impl.jar:\ + + + Index: apisupport/jackpotrules/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/nbproject/project.xml,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- apisupport/jackpotrules/nbproject/project.xml 3 Jun 2006 12:09:37 -0000 1.2 +++ apisupport/jackpotrules/nbproject/project.xml 14 Jun 2006 16:43:03 -0000 1.2.2.1 @@ -12,6 +12,12 @@ 1.4.5 + + org.netbeans.modules.jackpot.rules + + 1.2.3 + + Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/Bundle.properties,v retrieving revision 1.2 retrieving revision 1.1.8.1 diff -u -r1.2 -r1.1.8.1 Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerJackpot.rules =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerJackpot.rules,v retrieving revision 1.1 retrieving revision 1.1.8.2 diff -u -r1.1 -r1.1.8.2 Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules,v retrieving revision 1.1 retrieving revision 1.1.8.11 diff -u -r1.1 -r1.1.8.11 --- apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules 4 Apr 2006 17:21:23 -0000 1.1 +++ apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules 15 Jun 2006 07:34:25 -0000 1.1.8.11 @@ -1,3 +1,76 @@ +// +// attachMessage: +// + +$ErrMgr.annotate($nue, org.openide.ErrorManager.UNKNOWN, $msg, null, null, null) => Exceptions.attachMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.annotate($nue, org.openide.ErrorManager.INFORMATIONAL, $msg, null, null, null) => Exceptions.attachMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.annotate($nue, org.openide.ErrorManager.EXCEPTION, $msg, null, null, null) => Exceptions.attachMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + + +// +// attachLocalizedMessage: +// + +$ErrMgr.annotate($nue, $msg) => Exceptions.attachLocalizedMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.annotate($nue, org.openide.ErrorManager.EXCEPTION, null, $msg, null, null) => Exceptions.attachLocalizedMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.annotate($nue, org.openide.ErrorManager.UNKNOWN, null, $msg, null, null) => Exceptions.attachLocalizedMessage($nue, $msg) +:: $nue instanceof java.lang.Throwable, $msg instanceof java.lang.String, $ErrMgr instanceof org.openide.ErrorManager; + +// +// friend contract for annotate(USER) +// + +$ErrMgr.annotate($nue, org.openide.ErrorManager.USER, $msg, $locmsg, $cause, $date) +=> UIException.annotateUser($nue, $msg, $locmsg, $cause, $date) +:: $nue instanceof java.lang.Throwable, + $cause instanceof java.lang.Throwable, + $msg instanceof java.lang.String, + $locmsg instanceof java.lang.String, + $date instanceof java.util.Date, + $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.annotate($nue, org.openide.ErrorManager.USER, null, $locmsg, null, null) +=> UIException.annotateUser($nue, null, $locmsg, null, null) +:: $nue instanceof java.lang.Throwable, + $locmsg instanceof java.lang.String, + $ErrMgr instanceof org.openide.ErrorManager; + +// +// ErrorManager.notify(Throwable t): +// + +$ErrMgr.notify($nue) => Exceptions.printStackTrace($nue) +:: $nue instanceof java.lang.Throwable, $ErrMgr instanceof org.openide.ErrorManager; + + +$ErrMgr.notify(org.openide.ErrorManager.USER, $nue) => DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Exception($nue)) +:: $nue instanceof java.lang.Throwable, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.notify(org.openide.ErrorManager.INFORMATIONAL, $nue) => Logger.global.log(Level.WARNING, null, $nue); +:: $nue instanceof java.lang.Throwable, $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.notify(org.openide.ErrorManager.WARNING, $nue) => Logger.global.log(Level.WARNING, null, $nue); +:: $nue instanceof java.lang.Throwable, $ErrMgr instanceof org.openide.ErrorManager; + +// +// remove unused variables +// + +//$EM $err = $EM.getDefault(); => ; :: !referenced($err), $EM instanceof org.openide.ErrorManager; + +// +// initCause rules: +// + { $before$; $E $nue = new $E($orig.getMessage()); $ErrMgr.annotate($nue, $orig); @@ -10,6 +83,23 @@ :: $E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable, $ErrMgr instanceof org.openide.ErrorManager; + +{ $before$; +$E $nue = new $E($orig.getMessage()); +$ErrMgr.copyAnnotation($nue, $orig); +throw $nue; +} +=> +{ $before$; +throw ($E) new $E($orig.toString()).initCause($orig); +} +:: +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable, + $ErrMgr instanceof org.openide.ErrorManager; + +$ErrMgr.copyAnnotation($nue, $orig) => $nue.initCause($orig) +:: $ErrMgr instanceof org.openide.ErrorManager, $nue instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable; + { $before$; $E $nue = new $E($orig.getLocalizedMessage()); Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/filesystems.rules =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/filesystems.rules,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/layer.xml =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/layer.xml,v retrieving revision 1.5 retrieving revision 1.2.2.5 diff -u -r1.5 -r1.2.2.5 Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/lookup-convenience.rules =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/lookup-convenience.rules,v retrieving revision 1.2 retrieving revision 1.1.8.1 diff -u -r1.2 -r1.1.8.1 Index: apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/nbmrules.xml =================================================================== RCS file: /shared/data/ccvs/repository/apisupport/jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/nbmrules.xml,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerTest.java =================================================================== RCS file: apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerTest.java diff -N apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerTest.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerTest.java 15 Jun 2006 07:34:25 -0000 1.1.2.8 @@ -0,0 +1,323 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.netbeans.modules.apisupport.jackpotrules; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.logging.Level; + +import org.netbeans.junit.NbTestCase; + +/** + * + * @author Jaroslav Tulach + */ +public final class ErrorManagerTest extends NbTestCase { + + private URL script; + + + public ErrorManagerTest(String s) { + super(s); + } + + protected Level logLevel() { + return Level.INFO; + } + + protected void setUp() throws Exception { + clearWorkDir(); + script = ErrorManagerTest.class.getResource("/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules"); + assertNotNull(script); + } + + public void testRenameNotifyToPst() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " Exception e = new Exception();\n" + + " org.openide.ErrorManager.getDefault().notify(e);\n" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + } + + public void testErrMgrAnnoMsg() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "import javax.swing.JButton;" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " org.openide.ErrorManager.getDefault().annotate(" + + " npe, \"localizedText\");" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (txt.indexOf("attachLocalizedMessage") < 0) { + fail("There should be a localized message usage:\n" + txt); + } + } + public void testErrMgrUnknown() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "import javax.swing.JButton;" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " org.openide.ErrorManager.getDefault().annotate(" + + " npe, org.openide.ErrorManager.UNKNOWN," + + " \"msg\", null, null, null);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + } + + public void testErrMgrException() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "import javax.swing.JButton;" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " JButton r = new JButton();\n" + + " String icon = null;\n" + + " NullPointerException npe = new NullPointerException();\n" + + " org.openide.ErrorManager.getDefault().annotate(" + + " npe, org.openide.ErrorManager.EXCEPTION," + + " \"Probably an ImageIcon with a null source image: \" + icon + \" - \" + //NOI18N\n" + + " r.getText(), null, null, null\n" + + "); //NOI18N\n" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + } + + public void testConvertToLogging() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException e = new NullPointerException();\n" + + " org.openide.ErrorManager.getDefault().notify(org.openide.ErrorManager.INFORMATIONAL, e);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + if (!txt.replace('\n', ' ').matches(".*Logger.global.log *\\(Level.WARNING, *null, *e *\\).*")) { + fail("Logger.global shall be there:\n" + txt); + } + } + + public void testGetRidOfCopyAnnotation() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " java.io.IOException io = null;\n" + + " org.openide.ErrorManager.getDefault().copyAnnotation(npe, io);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace("\n", " ").matches(".*npe.initCause *\\( *io *\\).*")) { + fail("initCause shall be used:\n" + txt); + } + } + + public void testNonLocalizedAnnotation() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " String msg = \"nonlocmsg\";\n" + + " org.openide.ErrorManager.getDefault().annotate(npe, org.openide.ErrorManager.UNKNOWN, null, msg, null, null);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace("\n", " ").matches(".*Exceptions.attachLocalizedMessage.*")) { + fail("initCause shall be used:\n" + txt); + } + } + + + public void testFriendContractWithOwnLevel() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " String msg = \"nonlocmsg\";\n" + + " org.openide.ErrorManager.getDefault().annotate(npe, " + + " org.openide.ErrorManager.USER, msg == null ? \"\" : npe.getMessage()," + + " msg, npe, new java.util.Date()); //NOI18N\n" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace("\n", " ").matches(".*UIException.annotateUser *\\( *npe.*")) { + fail("UIException shall be used:\n" + txt); + } + } + + public void testWarningGoesToLogging() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException npe = new NullPointerException();\n" + + " org.openide.ErrorManager.getDefault().notify(org.openide.ErrorManager.WARNING, npe);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace('\n', ' ').matches(".*Logger.global.log *\\(Level.WARNING, *null, *npe *\\).*")) { + fail("Logger.global shall be there:\n" + txt); + } + } + + public void testAnnotateWithInfo() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " NullPointerException cnfe = new NullPointerException();\n" + + " String msg = \"ahoj\";\n" + + " org.openide.ErrorManager.getDefault().annotate(cnfe, org.openide.ErrorManager.INFORMATIONAL, msg, null, null, null);" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace('\n', ' ').matches(".*Exceptions.attachMessage *\\(*cnfe, *msg\\).*")) { + fail("Exceptions.attachMessage shall be there:\n" + txt); + } + + } + + public void testRenamesEditor() throws Exception { + File f = JackpotUtils.extractString(new File(getWorkDir(), "A.java"), + "package test;\n" + + "class A {\n" + + " public static void main(String[] args) {\n" + + " try {" + + " System.exit(0);\n" + + " } catch( IllegalArgumentException iaE ) {" + + " org.openide.ErrorManager.getDefault().annotate(iaE, org.openide.ErrorManager.USER, null, iaE.getLocalizedMessage(), null, null);\n" + + " throw iaE;\n" + + " }" + + " }\n" + + "}\n" + ); + + JackpotUtils.apply(getWorkDir(), script); + + String txt = JackpotUtils.readFile(f, false); + + if (txt.indexOf("ErrorManager") >= 0) { + fail("No ErrorManager shall be there:\n" + txt); + } + + if (!txt.replace('\n', ' ').matches(".*UIException.*")) { + fail("UIException shall be there:\n" + txt); + } + if (txt.replace('\n', ' ').indexOf("$") >= 0) { + fail("NO $ shall be there:\n" + txt); + } + } + +} Index: apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/JackpotUtils.java =================================================================== RCS file: apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/JackpotUtils.java diff -N apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/JackpotUtils.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ apisupport/jackpotrules/test/unit/src/org/netbeans/modules/apisupport/jackpotrules/JackpotUtils.java 9 Jun 2006 14:51:46 -0000 1.1.2.1 @@ -0,0 +1,123 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.netbeans.modules.apisupport.jackpotrules; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.net.URL; +import java.util.zip.GZIPInputStream; + +import junit.framework.Assert; + +import org.netbeans.jackpot.engine.*; +import org.netbeans.jackpot.transform.Transformer; + +import org.openide.filesystems.FileObject; +import org.openide.filesystems.FileUtil; +import org.openide.filesystems.Repository; + +/** + * + * @author Jaroslav Tulach + */ +public final class JackpotUtils { + + /** Creates a new instance of JackpotUtils */ + private JackpotUtils() { + } + + public static void apply(File dir, URL rules) throws Exception { + DefaultApplicationContext context = new DefaultApplicationContext(); + JackpotEngine eng = EngineFactory.createEngine(context); + + File rulesFile = extractResource(rules); + + int errors = eng.initialize(dir.getPath(), System.getProperty("java.class.path"), "1.4"); + Assert.assertEquals("No errors during compilation", 0, errors); + eng.runScript("q", "t", rulesFile.getPath()); + + Assert.assertTrue("There is something to commit", eng.needsCommit()); + Assert.assertTrue("commit ok", eng.commit()); + } + + final static String readFile (java.io.File f, boolean gzip) throws java.io.IOException { + if (!gzip) { + int s = (int)f.length (); + byte[] data = new byte[s]; + Assert.assertEquals ("Read all data", s, new FileInputStream (f).read (data)); + + return new String (data); + } else { + GZIPInputStream is = new GZIPInputStream(new FileInputStream(f)); + byte[] arr = new byte[256 * 256]; + int first = 0; + for(;;) { + int len = is.read(arr, first, arr.length - first); + if (first + len < arr.length) { + return new String(arr, 0, first + len); + } + } + } + } + + final static File extractString(String res) throws Exception { + File f = File.createTempFile("res", ".xml"); + f.deleteOnExit (); + return extractString(f, res); + } + + final static File extractString (File f, String res) throws Exception { + FileOutputStream os = new FileOutputStream(f); + InputStream is = new ByteArrayInputStream(res.getBytes("UTF-8")); + for (;;) { + int ch = is.read (); + if (ch == -1) break; + os.write (ch); + } + os.close (); + + return f; + } + + final static File extractResource(String res) throws Exception { + URL u = JackpotUtils.class.getResource(res); + Assert.assertNotNull ("Resource should be found " + res, u); + return extractResource(u); + } + + final static File extractResource(URL u) throws Exception { + Assert.assertNotNull ("Resource should be found " + u, u); + + File f = File.createTempFile("res", ".xml"); + f.deleteOnExit (); + + FileOutputStream os = new FileOutputStream(f); + InputStream is = u.openStream(); + for (;;) { + int ch = is.read (); + if (ch == -1) break; + os.write (ch); + } + os.close (); + + return f; + } + +} Index: core/arch/arch-core-launcher.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/arch/arch-core-launcher.xml,v retrieving revision 1.43 retrieving revision 1.42.4.2 diff -u -r1.43 -r1.42.4.2 Index: core/arch/arch-core-multiview.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/arch/arch-core-multiview.xml,v retrieving revision 1.14 retrieving revision 1.13.10.1 diff -u -r1.14 -r1.13.10.1 Index: core/arch/arch-core-palette.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/arch/arch-core-palette.xml,v retrieving revision 1.13 retrieving revision 1.12.10.1 diff -u -r1.13 -r1.12.10.1 Index: core/bootstrap/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/nbproject/project.properties,v retrieving revision 1.11 retrieving revision 1.10.6.1 diff -u -r1.11 -r1.10.6.1 Index: core/bootstrap/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/nbproject/project.xml,v retrieving revision 1.9 retrieving revision 1.7.6.2 diff -u -r1.9 -r1.7.6.2 Index: core/bootstrap/src/org/netbeans/CLIHandler.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/CLIHandler.java,v retrieving revision 1.43 retrieving revision 1.41.2.2 diff -u -r1.43 -r1.41.2.2 Index: core/bootstrap/src/org/netbeans/Events.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/Events.java,v retrieving revision 1.5 retrieving revision 1.4.2.1 diff -u -r1.5 -r1.4.2.1 Index: core/bootstrap/src/org/netbeans/FixedModule.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/FixedModule.java,v retrieving revision 1.8 retrieving revision 1.6.6.2 diff -u -r1.8 -r1.6.6.2 Index: core/bootstrap/src/org/netbeans/JarClassLoader.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/JarClassLoader.java,v retrieving revision 1.24 retrieving revision 1.23.6.1 diff -u -r1.24 -r1.23.6.1 Index: core/bootstrap/src/org/netbeans/MainImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/MainImpl.java,v retrieving revision 1.4 retrieving revision 1.1.6.2 diff -u -r1.4 -r1.1.6.2 Index: core/bootstrap/src/org/netbeans/Module.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/Module.java,v retrieving revision 1.14 retrieving revision 1.12.6.2 diff -u -r1.14 -r1.12.6.2 Index: core/bootstrap/src/org/netbeans/ModuleManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/ModuleManager.java,v retrieving revision 1.16 retrieving revision 1.12.6.2 diff -u -r1.16 -r1.12.6.2 Index: core/bootstrap/src/org/netbeans/PatchByteCode.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/PatchByteCode.java,v retrieving revision 1.8 retrieving revision 1.6.6.1 diff -u -r1.8 -r1.6.6.1 Index: core/bootstrap/src/org/netbeans/ProxyClassLoader.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/ProxyClassLoader.java,v retrieving revision 1.28 retrieving revision 1.26.6.2 diff -u -r1.28 -r1.26.6.2 Index: core/bootstrap/src/org/netbeans/StandardModule.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/StandardModule.java,v retrieving revision 1.10 retrieving revision 1.6.6.3 diff -u -r1.10 -r1.6.6.3 Index: core/bootstrap/src/org/netbeans/Util.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/src/org/netbeans/Util.java,v retrieving revision 1.9 retrieving revision 1.7.6.1 diff -u -r1.9 -r1.7.6.1 Index: core/bootstrap/test/unit/src/org/netbeans/CLIHowHardIsToGuessKeyTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/bootstrap/test/unit/src/org/netbeans/CLIHowHardIsToGuessKeyTest.java,v retrieving revision 1.3 retrieving revision 1.2.6.1 diff -u -r1.3 -r1.2.6.1 Index: core/execution/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/nbproject/project.properties,v retrieving revision 1.9 retrieving revision 1.8.10.1 diff -u -r1.9 -r1.8.10.1 Index: core/execution/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/nbproject/project.xml,v retrieving revision 1.10 retrieving revision 1.9.30.1 diff -u -r1.10 -r1.9.30.1 Index: core/execution/src/org/netbeans/core/execution/ExecutionEngine.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/ExecutionEngine.java,v retrieving revision 1.9 retrieving revision 1.8.60.1 diff -u -r1.9 -r1.8.60.1 Index: core/execution/src/org/netbeans/core/execution/IOPermissionCollection.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/IOPermissionCollection.java,v retrieving revision 1.3 retrieving revision 1.2.328.1 diff -u -r1.3 -r1.2.328.1 Index: core/execution/src/org/netbeans/core/execution/IOTable.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/IOTable.java,v retrieving revision 1.5 retrieving revision 1.4.148.1 diff -u -r1.5 -r1.4.148.1 Index: core/execution/src/org/netbeans/core/execution/Install.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/Install.java,v retrieving revision 1.27 retrieving revision 1.26.10.1 diff -u -r1.27 -r1.26.10.1 Index: core/execution/src/org/netbeans/core/execution/ProcessNode.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/ProcessNode.java,v retrieving revision 1.5 retrieving revision 1.4.204.1 diff -u -r1.5 -r1.4.204.1 Index: core/execution/src/org/netbeans/core/execution/ProcessNodeItem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/ProcessNodeItem.java,v retrieving revision 1.7 retrieving revision 1.6.120.1 diff -u -r1.7 -r1.6.120.1 Index: core/execution/src/org/netbeans/core/execution/SecMan.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/SecMan.java,v retrieving revision 1.3 retrieving revision 1.2.328.1 diff -u -r1.3 -r1.2.328.1 Index: core/execution/src/org/netbeans/core/execution/WindowTable.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/WindowTable.java,v retrieving revision 1.3 retrieving revision 1.2.328.1 diff -u -r1.3 -r1.2.328.1 Index: core/execution/src/org/netbeans/core/execution/beaninfo/editors/NbClassPathCustomEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/execution/src/org/netbeans/core/execution/beaninfo/editors/NbClassPathCustomEditor.java,v retrieving revision 1.7 retrieving revision 1.4.232.3 diff -u -r1.7 -r1.4.232.3 Index: core/favorites/test/unit/src/org/netbeans/modules/favorites/VisibilityQueryWorksTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/favorites/test/unit/src/org/netbeans/modules/favorites/VisibilityQueryWorksTest.java,v retrieving revision 1.4 retrieving revision 1.3.36.1 diff -u -r1.4 -r1.3.36.1 Index: core/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/nbproject/project.properties,v retrieving revision 1.24 retrieving revision 1.22.10.1 diff -u -r1.24 -r1.22.10.1 Index: core/options/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/options/apichanges.xml,v retrieving revision 1.3 retrieving revision 1.2.38.1 diff -u -r1.3 -r1.2.38.1 Index: core/options/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/core/options/manifest.mf,v retrieving revision 1.8 retrieving revision 1.7.10.1 diff -u -r1.8 -r1.7.10.1 Index: core/options/module-auto-deps.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/options/module-auto-deps.xml,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 Index: core/output2/src/org/netbeans/core/output2/OutWriter.java =================================================================== RCS file: /shared/data/ccvs/repository/core/output2/src/org/netbeans/core/output2/OutWriter.java,v retrieving revision 1.31 retrieving revision 1.30.6.1 diff -u -r1.31 -r1.30.6.1 Index: core/palette/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/manifest.mf,v retrieving revision 1.9 retrieving revision 1.8.12.1 diff -u -r1.9 -r1.8.12.1 Index: core/palette/module-auto-deps.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/module-auto-deps.xml,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 Index: core/palette/api/doc/changes/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/api/doc/changes/apichanges.xml,v retrieving revision 1.11 retrieving revision 1.10.6.1 diff -u -r1.11 -r1.10.6.1 Index: core/palette/src/org/netbeans/spi/palette/DragAndDropHandler.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/src/org/netbeans/spi/palette/DragAndDropHandler.java,v retrieving revision 1.3 retrieving revision 1.2.34.1 diff -u -r1.3 -r1.2.34.1 Index: core/palette/src/org/netbeans/spi/palette/PaletteActions.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/src/org/netbeans/spi/palette/PaletteActions.java,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: core/palette/src/org/netbeans/spi/palette/PaletteController.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/src/org/netbeans/spi/palette/PaletteController.java,v retrieving revision 1.5 retrieving revision 1.4.26.1 diff -u -r1.5 -r1.4.26.1 Index: core/palette/src/org/netbeans/spi/palette/PaletteFactory.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/src/org/netbeans/spi/palette/PaletteFactory.java,v retrieving revision 1.5 retrieving revision 1.4.34.1 diff -u -r1.5 -r1.4.34.1 Index: core/palette/src/org/netbeans/spi/palette/PaletteFilter.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/src/org/netbeans/spi/palette/PaletteFilter.java,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: core/palette/test/unit/src/org/netbeans/spi/palette/PaletteItemTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/palette/test/unit/src/org/netbeans/spi/palette/PaletteItemTest.java,v retrieving revision 1.5 retrieving revision 1.4.30.1 diff -u -r1.5 -r1.4.30.1 Index: core/progress/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/progress/nbproject/project.properties,v retrieving revision 1.8 retrieving revision 1.7.10.1 diff -u -r1.8 -r1.7.10.1 Index: core/progress/src/org/netbeans/api/progress/aggregate/AggregateProgressHandle.java =================================================================== RCS file: /shared/data/ccvs/repository/core/progress/src/org/netbeans/api/progress/aggregate/AggregateProgressHandle.java,v retrieving revision 1.7 retrieving revision 1.6.24.1 diff -u -r1.7 -r1.6.24.1 Index: core/progress/src/org/netbeans/progress/module/Controller.java =================================================================== RCS file: /shared/data/ccvs/repository/core/progress/src/org/netbeans/progress/module/Controller.java,v retrieving revision 1.16 retrieving revision 1.15.22.1 diff -u -r1.16 -r1.15.22.1 Index: core/progress/src/org/netbeans/progress/module/ui/PopupPane.java =================================================================== RCS file: /shared/data/ccvs/repository/core/progress/src/org/netbeans/progress/module/ui/PopupPane.java,v retrieving revision 1.13 retrieving revision 1.12.26.1 diff -u -r1.13 -r1.12.26.1 Index: core/progress/src/org/netbeans/progress/module/ui/StatusLineComponent.java =================================================================== RCS file: /shared/data/ccvs/repository/core/progress/src/org/netbeans/progress/module/ui/StatusLineComponent.java,v retrieving revision 1.29 retrieving revision 1.28.2.1 diff -u -r1.29 -r1.28.2.1 Index: core/settings/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/manifest.mf,v retrieving revision 1.19 retrieving revision 1.18.10.1 diff -u -r1.19 -r1.18.10.1 Index: core/settings/api/doc/changes/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/api/doc/changes/apichanges.xml,v retrieving revision 1.7 retrieving revision 1.6.34.1 diff -u -r1.7 -r1.6.34.1 Index: core/settings/api/doc/org/netbeans/spi/settings/doc-files/api.html =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/api/doc/org/netbeans/spi/settings/doc-files/api.html,v retrieving revision 1.12 retrieving revision 1.11.34.1 diff -u -r1.12 -r1.11.34.1 Index: core/settings/src/org/netbeans/modules/settings/Env.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/src/org/netbeans/modules/settings/Env.java,v retrieving revision 1.5 retrieving revision 1.4.148.1 diff -u -r1.5 -r1.4.148.1 Index: core/settings/src/org/netbeans/modules/settings/convertors/SerialDataConvertor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/src/org/netbeans/modules/settings/convertors/SerialDataConvertor.java,v retrieving revision 1.34 retrieving revision 1.33.6.1 diff -u -r1.34 -r1.33.6.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/EnvTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/EnvTest.java,v retrieving revision 1.5 retrieving revision 1.4.34.1 diff -u -r1.5 -r1.4.34.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar1Setting.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar1Setting.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar2Setting.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar2Setting.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar3Setting.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar3Setting.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar4Setting.java =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/Bar4Setting.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/settings/test/unit/src/org/netbeans/modules/settings/convertors/data/mf-layer.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/data/mf-layer.xml,v retrieving revision 1.10 retrieving revision 1.9.286.1 diff -u -r1.10 -r1.9.286.1 Index: core/src/META-INF/services/java.util.logging.Handler =================================================================== RCS file: core/src/META-INF/services/java.util.logging.Handler diff -N core/src/META-INF/services/java.util.logging.Handler --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ core/src/META-INF/services/java.util.logging.Handler 3 May 2006 15:20:56 -0000 1.1.2.1 @@ -0,0 +1 @@ +org.netbeans.core.NbErrorManager Index: core/src/META-INF/services/org.openide.ErrorManager =================================================================== RCS file: core/src/META-INF/services/org.openide.ErrorManager diff -N core/src/META-INF/services/org.openide.ErrorManager --- core/src/META-INF/services/org.openide.ErrorManager 20 Aug 2002 19:55:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -org.netbeans.core.NbErrorManager Index: core/src/org/netbeans/beaninfo/editors/ClassEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ClassEditor.java,v retrieving revision 1.14 retrieving revision 1.13.214.1 diff -u -r1.14 -r1.13.214.1 Index: core/src/org/netbeans/beaninfo/editors/ColorEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ColorEditor.java,v retrieving revision 1.58 retrieving revision 1.57.6.1 diff -u -r1.58 -r1.57.6.1 Index: core/src/org/netbeans/beaninfo/editors/DataFolderPanel.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/DataFolderPanel.java,v retrieving revision 1.34 retrieving revision 1.33.2.1 diff -u -r1.34 -r1.33.2.1 Index: core/src/org/netbeans/beaninfo/editors/DataObjectListView.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/DataObjectListView.java,v retrieving revision 1.15 retrieving revision 1.14.110.1 diff -u -r1.15 -r1.14.110.1 Index: core/src/org/netbeans/beaninfo/editors/DataObjectPanel.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/DataObjectPanel.java,v retrieving revision 1.15 retrieving revision 1.14.204.1 diff -u -r1.15 -r1.14.204.1 Index: core/src/org/netbeans/beaninfo/editors/ExtensionListCustomEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ExtensionListCustomEditor.java,v retrieving revision 1.9 retrieving revision 1.8.94.1 diff -u -r1.9 -r1.8.94.1 Index: core/src/org/netbeans/beaninfo/editors/ExtensionListEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ExtensionListEditor.java,v retrieving revision 1.16 retrieving revision 1.15.126.1 diff -u -r1.16 -r1.15.126.1 Index: core/src/org/netbeans/beaninfo/editors/FileEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/FileEditor.java,v retrieving revision 1.37 retrieving revision 1.36.2.1 diff -u -r1.37 -r1.36.2.1 Index: core/src/org/netbeans/beaninfo/editors/HtmlBrowser.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/HtmlBrowser.java,v retrieving revision 1.13 retrieving revision 1.12.6.1 diff -u -r1.13 -r1.12.6.1 Index: core/src/org/netbeans/beaninfo/editors/InsetsCustomEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/InsetsCustomEditor.java,v retrieving revision 1.29 retrieving revision 1.27.2.1 diff -u -r1.29 -r1.27.2.1 Index: core/src/org/netbeans/beaninfo/editors/ObjectEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ObjectEditor.java,v retrieving revision 1.18 retrieving revision 1.17.34.1 diff -u -r1.18 -r1.17.34.1 Index: core/src/org/netbeans/beaninfo/editors/RectangleCustomEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/RectangleCustomEditor.java,v retrieving revision 1.28 retrieving revision 1.26.10.1 diff -u -r1.28 -r1.26.10.1 Index: core/src/org/netbeans/beaninfo/editors/ServiceTypeEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ServiceTypeEditor.java,v retrieving revision 1.19 retrieving revision 1.17.320.1 diff -u -r1.19 -r1.17.320.1 Index: core/src/org/netbeans/beaninfo/editors/ServiceTypePanel.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/ServiceTypePanel.java,v retrieving revision 1.28 retrieving revision 1.26.6.1 diff -u -r1.28 -r1.26.6.1 Index: core/src/org/netbeans/beaninfo/editors/StringArrayCustomEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/StringArrayCustomEditor.java,v retrieving revision 1.6 retrieving revision 1.4.10.1 diff -u -r1.6 -r1.4.10.1 Index: core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java,v retrieving revision 1.8 retrieving revision 1.7.86.1 diff -u -r1.8 -r1.7.86.1 Index: core/src/org/netbeans/core/AutomountSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/AutomountSupport.java,v retrieving revision 1.57 retrieving revision 1.56.150.1 diff -u -r1.57 -r1.56.150.1 Index: core/src/org/netbeans/core/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/Bundle.properties,v retrieving revision 1.420 retrieving revision 1.419.6.2 diff -u -r1.420 -r1.419.6.2 --- core/src/org/netbeans/core/Bundle.properties 28 May 2006 14:38:07 -0000 1.420 +++ core/src/org/netbeans/core/Bundle.properties 5 Jun 2006 07:57:03 -0000 1.419.6.2 @@ -260,18 +260,6 @@ # NOI18N MSG_ExceptionHeader={0}*********** Exception occurred ************ at {1,time,short} on {1,date,medium} -# {0} - class name from MRE -EXC_MissingResourceException_class_name=Missing resource from class: {0} -# {0} - key from MRE -EXC_MissingResourceException_key=Key which was not found: {0} -# {0} - public ID -# {1] - system ID -EXC_sax_parse=Parse error in file {1} (PUBLIC {0}) -# {0} - public ID -# {1] - system ID -# {2} - column # -# {3} - line # -EXC_sax_parse_col_line=Parse error in file {1} line {3} column {2} (PUBLIC {0}) UI/Services=Options # UI/Service_Hint=Contains global IDE preferences. Index: core/src/org/netbeans/core/CoreBridgeImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/CoreBridgeImpl.java,v retrieving revision 1.5 retrieving revision 1.4.10.1 diff -u -r1.5 -r1.4.10.1 Index: core/src/org/netbeans/core/DataSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/DataSystem.java,v retrieving revision 1.63 retrieving revision 1.61.6.1 diff -u -r1.63 -r1.61.6.1 Index: core/src/org/netbeans/core/EnvironmentNode.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/EnvironmentNode.java,v retrieving revision 1.42 retrieving revision 1.41.46.1 diff -u -r1.42 -r1.41.46.1 Index: core/src/org/netbeans/core/ExitDialog.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/ExitDialog.java,v retrieving revision 1.39 retrieving revision 1.38.10.1 diff -u -r1.39 -r1.38.10.1 Index: core/src/org/netbeans/core/IDESettings.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/IDESettings.java,v retrieving revision 1.75 retrieving revision 1.72.6.1 diff -u -r1.75 -r1.72.6.1 Index: core/src/org/netbeans/core/IDESettingsBeanInfo.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/IDESettingsBeanInfo.java,v retrieving revision 1.44 retrieving revision 1.43.60.1 diff -u -r1.44 -r1.43.60.1 Index: core/src/org/netbeans/core/LoaderPoolNode.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/LoaderPoolNode.java,v retrieving revision 1.89 retrieving revision 1.85.6.1 diff -u -r1.89 -r1.85.6.1 Index: core/src/org/netbeans/core/LookupCache.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/LookupCache.java,v retrieving revision 1.8 retrieving revision 1.7.40.1 diff -u -r1.8 -r1.7.40.1 Index: core/src/org/netbeans/core/ModuleActions.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/ModuleActions.java,v retrieving revision 1.34 retrieving revision 1.33.60.1 diff -u -r1.34 -r1.33.60.1 Index: core/src/org/netbeans/core/NbAuthenticator.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbAuthenticator.java,v retrieving revision 1.17 retrieving revision 1.16.110.1 diff -u -r1.17 -r1.16.110.1 Index: core/src/org/netbeans/core/NbClipboard.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbClipboard.java,v retrieving revision 1.28 retrieving revision 1.27.6.1 diff -u -r1.28 -r1.27.6.1 Index: core/src/org/netbeans/core/NbErrorManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbErrorManager.java,v retrieving revision 1.61 retrieving revision 1.60.6.7 diff -u -r1.61 -r1.60.6.7 --- core/src/org/netbeans/core/NbErrorManager.java 9 May 2006 08:18:57 -0000 1.61 +++ core/src/org/netbeans/core/NbErrorManager.java 5 Jun 2006 15:30:47 -0000 1.60.6.7 @@ -1,11 +1,11 @@ /* * Sun Public License Notice - * + * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ - * + * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun * Microsystems, Inc. All Rights Reserved. @@ -31,343 +31,120 @@ import java.util.Locale; import java.util.Map; import java.util.MissingResourceException; +import java.util.ResourceBundle; import java.util.Set; import java.util.StringTokenizer; import java.util.WeakHashMap; +import java.util.concurrent.Callable; +import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import org.openide.ErrorManager; +import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.xml.sax.SAXParseException; /** Wraps errormanager with logger. -* -* @author Jaroslav Tulach, Jesse Glick -*/ -public final class NbErrorManager extends ErrorManager { - static { - System.setProperty("sun.awt.exception.handler", "org.netbeans.core.NbErrorManager$AWTHandler"); // NOI18N - } - - /** logger to delegate to */ - private Logger logger; - /** mapping of Throwables to errors */ - private static Map> map = new HashMap>(); - - public NbErrorManager() { - this(""); + * + * @author Jaroslav Tulach, Jesse Glick + */ +public final class NbErrorManager extends Handler { + /** our root logger */ + static NbErrorManager ROOT = new NbErrorManager(); + + Exc createExc(Throwable t, Level severity, LogRecord add) { + LogRecord[] ann = findAnnotations(t, add); + return new Exc(t, severity, ann, findAnnotations0(t, add, true, new HashSet())); } - private NbErrorManager(String pfx) { - this(Logger.getLogger(pfx)); + public void publish(LogRecord record) { + if (record.getThrown() != null) { + Level level = record.getLevel(); + if (level.intValue() == Level.WARNING.intValue() + 1) { + // unknown level + level = null; + } + Exc ex = createExc(record.getThrown(), level, record.getLevel().intValue() == 1973 ? record : null); + NotifyException.notify(ex); + } } - /** - * Construct for testing. - * @see "#18141" - */ - NbErrorManager(Logger l) { - this.logger = l; + public void flush() { + //logWriter.flush(); } - private static Level mapSeverity (int severity, boolean forException) { - Level sev = Level.SEVERE; - - if (severity >= ERROR) { - sev = Level.SEVERE; - } else if (severity >= EXCEPTION) { - sev = Level.SEVERE; - } else if (severity >= USER) { - sev = Level.INFO; - } else if (severity >= WARNING) { - sev = Level.WARNING; - } else if (severity >= INFORMATIONAL) { - sev = forException ? Level.INFO: Level.FINE; - } - return sev; - } - - - public synchronized Throwable annotate ( - Throwable t, - int severity, String message, String localizedMessage, - Throwable stackTrace, Date date - ) { - List o = map.get (t); - - List ll; - if (o == null) { - ll = new ArrayList (); - map.put (t, ll); - } else { - ll = o; - } - - ll.add(0, - new Ann (severity, message, localizedMessage, stackTrace, date) - ); - - return t; + public void close() throws SecurityException { + // nothing needed } - - - /** Associates annotations with this thread. - * - * @param arr array of annotations (or null) - */ - public synchronized Throwable attachAnnotations (Throwable t, Annotation[] arr) { - List o = map.get (t); - List l; - if (o == null) { - l = new ArrayList(arr.length + 5); - map.put (t, l); - } else { - l = o; + + /** Extracts localized message from a LogRecord */ + static final String getLocalizedMessage(LogRecord rec) { + ResourceBundle rb = rec.getResourceBundle(); + if (rb == null) { + return null; } - l.addAll(0, Arrays.asList(arr)); - return t; - } - - /** Honor configured min-severity levels, more or less. - * Actually bump up the effective severity of an exception by one. - * Thus by default INFORMATIONAL stack traces are displayed, but not - * messages. By playing with min log severity levels, you can get - * both, or neither. - * @see "#24056" - */ - public boolean isNotifiable(int severity) { - return logger.isLoggable(mapSeverity(severity, true)); - } - - /** Notifies all the exceptions associated with - * this thread. - */ - public synchronized void notify (int severity, Throwable t) { - // synchronized to ensure that only one exception is - // written to the thread - - Exc ex = createExc(t, severity); - - if (!isNotifiable(ex.getSeverity())) { - return; - } - - //issue 36878 - printing the stack trace on a user error is - //disconcerting because it makes it look like something went wrong - //with the software. - - //Note the algorithm below is different than that of Exc.getSeverity() - - //there are cases (e.g. a property editor over a filesystem) where - //an exception may be annotated as severe, but in the context - //it is not - thus we check if *any* annotation is USER, rather than - //that the highest level severity in the annotation is USER - boolean wantStackTrace = severity != USER; - if (wantStackTrace) { - Annotation[] ann = findAnnotations(t); - if (ann != null) { - for (int i=0; i < ann.length; i++) { - if (ann[i] instanceof Ann) { - if (((Ann) ann[i]).getSeverity() == USER) { - wantStackTrace = false; - break; - } - } - } - } + String msg = rec.getMessage(); + if (msg == null) { + return null; } - if (wantStackTrace) { - String s = ex.getSeverity() == ErrorManager.INFORMATIONAL ? "INFORMATIONAL" : ""; // NOI18N - Level level = mapSeverity(ex.getSeverity(), true); - LogRecord rec = new LogRecord(level, "MSG_ExceptionHeader"); // NOI18N - rec.setResourceBundle(NbBundle.getBundle(NbErrorManager.class)); - rec.setMillis(ex.getDate().getTime()); - rec.setParameters(new Object[] { s, ex.getDate() }); - try { - if (!enterLog()) { - logger.log(rec); - } - } finally { - exitLog(); - } - - StringWriter annotate = new StringWriter(); - PrintWriter pw = new PrintWriter(annotate); - ex.printStackTrace(pw); - pw.close(); + + String format = rb.getString(msg); - try { - if (!enterLog()) { - logger.log(level, annotate.toString()); - } - } finally { - exitLog(); - } + Object[] arr = rec.getParameters(); + if (arr == null) { + return format; } - if (ex.getSeverity () > INFORMATIONAL) { - NotifyException.notify (ex); - } - } - - /** - * Just create the exception information for a throwable being notified. - * Useful for the unit test. - */ - Exc createExc(Throwable t, int severity) { - Annotation[] ann = findAnnotations (t); - return new Exc (t, severity, ann, findAnnotations0(t, true, new HashSet())); + return MessageFormat.format(format, arr); } - public void log(int severity, String s) { - try { - if (!enterLog()) { - logger.log(mapSeverity(severity, false), s); - } - } finally { - exitLog(); - } - } - - /** Allows to test whether messages with given severity will be logged - * or not prior to constraction of complicated and time expensive - * logging messages. - * - * @param severity the severity to check - * @return false if the next call to log method with the same severity will - * discard the message + /** Finds annotations associated with given exception. + * @param t the exception + * @return array of annotations or null */ - public boolean isLoggable (int severity) { - return logger.isLoggable(mapSeverity(severity, false)); + public synchronized LogRecord[] findAnnotations(Throwable t, LogRecord add) { + return findAnnotations0(t, add, false, new HashSet()); } - - /** Returns an instance with given name. The name - * can be dot separated list of names creating - * a hierarchy. - */ - public final ErrorManager getInstance(String name) { - String pfx = logger.getName(); - if (pfx.length() > 0 && !pfx.endsWith(".")) { - pfx += "."; - } - pfx += name; - return new NbErrorManager(pfx); - } - - /** Method (or field) names in various exception classes which give - * a nested exception. Fields should be public, methods public no-arg. - * Field names should be prefixed with a dot. - */ - private static Map NESTS = null; - private static Throwable extractNestedThrowable(Throwable t) { - synchronized (NbErrorManager.class) { - if (NESTS == null) { - NESTS = new HashMap(); - NESTS.put("javax.xml.parsers.FactoryConfigurationError", "getException"); // NOI18N - NESTS.put("javax.xml.transform.TransformerFactoryConfigurationError", "getException"); // NOI18N - NESTS.put("org.xml.sax.SAXException", "getException"); // NOI18N - } - } - for (Class c = t.getClass(); c != Object.class; c = c.getSuperclass()) { - String getter = (String)NESTS.get(c.getName()); - if (getter != null) { - try { - if (getter.charAt(0) == '.') { // NOI18N - Field f = c.getField(getter.substring(1)); - return (Throwable)f.get(t); - } else { - Method m = c.getMethod(getter); - return (Throwable)m.invoke(t); - } - } catch (Exception e) { - // Should not happen. - System.err.println("From throwable class: " + c.getName()); // NOI18N - e.printStackTrace(); - } - } - } - return null; - } - - /** Finds annotations associated with given exception. - * @param t the exception - * @return array of annotations or null - */ - public synchronized Annotation[] findAnnotations (Throwable t) { - return findAnnotations0(t, false, new HashSet()); - } - /** If recursively is true it is not adviced to print all annotations * because a lot of warnings will be printed. But while searching for * localized message we should scan all the annotations (even recursively). */ - private synchronized Annotation[] findAnnotations0(Throwable t, boolean recursively, Set alreadyVisited) { - List l = map.get (t); - // MissingResourceException should be printed nicely... --jglick - if (t instanceof MissingResourceException) { - if (l == null) { - l = new ArrayList(1); - } else { - // make a copy, do not modify it - l = new ArrayList(l); - } - MissingResourceException mre = (MissingResourceException) t; - String cn = mre.getClassName (); - if (cn != null) { - l.add (new Ann (EXCEPTION, NbBundle.getMessage (NbErrorManager.class, "EXC_MissingResourceException_class_name", cn), null, null, null)); - } - String k = mre.getKey (); - if (k != null) { - l.add (new Ann (EXCEPTION, NbBundle.getMessage (NbErrorManager.class, "EXC_MissingResourceException_key", k), null, null, null)); - } - if (l.size () == 0) l = null; // not clear if null means something other than new Annotation[0] - } else { - // #15611: find all kinds of nested exceptions and deal with them too. - // Use of Throwable.initCause is preferred. - Throwable t2 = extractNestedThrowable(t); - if (t2 != null) { - if (l == null) { - l = new ArrayList(1); - } else { - l = new ArrayList(l); - } - l.add(new Ann(UNKNOWN, null, null, t2, null)); - } - } - if (t instanceof SAXParseException) { - // For some reason these fail to come with useful data, like location. - SAXParseException spe = (SAXParseException)t; - String pubid = spe.getPublicId(); - String sysid = spe.getSystemId(); - if (pubid != null || sysid != null) { - int col = spe.getColumnNumber(); - int line = spe.getLineNumber(); - String msg; - if (col != -1 || line != -1) { - msg = NbBundle.getMessage(NbErrorManager.class, "EXC_sax_parse_col_line", new Object[] {String.valueOf(pubid), String.valueOf(sysid), new Integer(col), new Integer(line)}); - } else { - msg = NbBundle.getMessage(NbErrorManager.class, "EXC_sax_parse", String.valueOf(pubid), String.valueOf(sysid)); + private synchronized LogRecord[] findAnnotations0(Throwable t, LogRecord add, boolean recursively, Set alreadyVisited) { + List l = new ArrayList(); + Throwable collect = t; + while (collect != null) { + if (collect instanceof Callable) { + Object res = null; + try { + res = ((Callable) collect).call(); + } catch (Exception ex) { + ex.printStackTrace(); } - if (l == null) { - l = new ArrayList(1); - } else { - l = new ArrayList(l); + if (res instanceof LogRecord[]) { + LogRecord[] arr = (LogRecord[])res; + l.addAll(Arrays.asList(arr)); } - l.add(new Ann(UNKNOWN, msg, null, null, null)); } + collect = collect.getCause(); } + + if (add != null) { + l.add(add); + } + if (recursively) { if (l != null) { - ArrayList al = new ArrayList(); - for (Iterator i = l.iterator(); i.hasNext(); ) { - Annotation ano = i.next(); - Throwable t1 = ano.getStackTrace(); + ArrayList al = new ArrayList(); + for (Iterator i = l.iterator(); i.hasNext(); ) { + LogRecord ano = (LogRecord)i.next(); + Throwable t1 = ano.getThrown(); if ((t1 != null) && (! alreadyVisited.contains(t1))) { alreadyVisited.add(t1); - Annotation[] tmpAnnoArray = findAnnotations0(t1, true, alreadyVisited); + LogRecord[] tmpAnnoArray = findAnnotations0(t1, null, true, alreadyVisited); if ((tmpAnnoArray != null) && (tmpAnnoArray.length > 0)) { al.addAll(Arrays.asList(tmpAnnoArray)); } @@ -376,145 +153,62 @@ l.addAll(al); } } + Throwable cause = t.getCause(); if (cause != null) { - Annotation[] extras = findAnnotations0(cause, true, alreadyVisited); + LogRecord[] extras = findAnnotations0(cause, null, true, alreadyVisited); if (extras != null && extras.length > 0) { if (l == null) { - l = new ArrayList(); + l = new ArrayList(); } l.addAll(Arrays.asList(extras)); } } - Annotation[] arr; + LogRecord[] arr; if (l == null) { arr = null; } else { - arr = new Annotation[l.size ()]; - l.toArray (arr); + arr = new LogRecord[l.size()]; + l.toArray(arr); } - + return arr; } - public String toString() { - return super.toString() + "<" + logger + ">"; // NOI18N - } - - private static volatile Thread lastThread; - private static boolean enterLog() { - if (lastThread == Thread.currentThread()) { - new Exception("using error manager from inside a logger").printStackTrace(); // NOI18N - return true; - } - lastThread = Thread.currentThread(); - return false; - } - - private static void exitLog() { - lastThread = null; - } - - /** Implementation of annotation interface. - */ - private static final class Ann extends Object - implements ErrorManager.Annotation { - private int severity; - private String message; - private String localizedMessage; - private Throwable stackTrace; - private Date date; - - /** Constructor. - */ - public Ann ( - int severity, - String message, - String localizedMessage, - Throwable stackTrace, - Date date - ) { - this.severity = severity; - this.message = message; - this.localizedMessage = localizedMessage; - this.stackTrace = stackTrace; - this.date = date; - } - - /** Non-localized message. - * @return associated message or null - */ - public String getMessage() { - return message; - } - /** Localized message. - * @return message to be presented to the user or null - */ - public String getLocalizedMessage() { - return localizedMessage; - } - /** Stack trace. The stack trace should locate the method - * and possition in the method where error occured. - * - * @return exception representing the location of error or null - */ - public Throwable getStackTrace() { - return stackTrace; - } - /** Date when the exception occured. - * @return the date or null - */ - public java.util.Date getDate() { - return date; - } - /** Severity of the exception. - * @return number representing the severity - */ - public int getSeverity() { - return severity; - } - - public String toString() { - return "NbEM.Ann[severity=" + severity + ",message=" + message + ",localizedMessage=" + localizedMessage + ",stackTrace=" + stackTrace + ",date=" + date + "]"; // NOI18N - } - - } // end of Ann - /** * Another final class that is used to communicate with * NotifyException and provides enough information to the dialog. */ - final class Exc - { + final class Exc { /** the original throwable */ private Throwable t; private Date d; - private Annotation[] arr; - private Annotation[] arrAll; // all - recursively - private int severity; - + private LogRecord[] arr; + private LogRecord[] arrAll; // all - recursively + private Level severity; + /** @param severity if -1 then we will compute the * severity from annotations */ - Exc (Throwable t, int severity, Annotation[] arr, Annotation[] arrAll) { + Exc(Throwable t, Level severity, LogRecord[] arr, LogRecord[] arrAll) { this.t = t; this.severity = severity; - this.arr = arr == null ? new Annotation[0] : arr; - this.arrAll = arrAll == null ? new Annotation[0] : arrAll; + this.arr = arr == null ? new LogRecord[0] : arr; + this.arrAll = arrAll == null ? new LogRecord[0] : arrAll; } - + /** @return message */ - String getMessage () { + String getMessage() { String m = t.getMessage(); if (m != null) { return m; } - return (String)find (1); + return (String)find(1); } - + /** @return localized message */ - String getLocalizedMessage () { + String getLocalizedMessage() { String m = t.getLocalizedMessage(); if (m != null && !m.equals(t.getMessage())) { return m; @@ -524,14 +218,14 @@ return (String)find(2); } for (int i = 0; i < arrAll.length; i++) { - String s = arrAll[i].getLocalizedMessage (); + String s = NbErrorManager.getLocalizedMessage(arrAll[i]); if (s != null) { return s; } } return m; } - + boolean isLocalized() { String m = t.getLocalizedMessage(); if (m != null && !m.equals(t.getMessage())) { @@ -542,56 +236,56 @@ return (String)find(2) != null; } for (int i = 0; i < arrAll.length; i++) { - String s = arrAll[i].getLocalizedMessage (); + String s = NbErrorManager.getLocalizedMessage(arrAll[i]); if (s != null) { return true; } } return false; - } - + } + /** @return class name of the exception */ - String getClassName () { - return (String)find (3); + String getClassName() { + return (String)find(3); } - + /** @return the severity of the exception */ - int getSeverity () { - if (severity != UNKNOWN) { + Level getSeverity() { + if (severity != null) { return severity; } - - Annotation[] anns = (arrAll != null) ? arrAll : arr; + + LogRecord[] anns = (arrAll != null) ? arrAll : arr; for (int i = 0; i < anns.length; i++) { - int s = anns[i].getSeverity (); - if (s > severity) { + Level s = anns[i].getLevel(); + if (severity == null || s.intValue() > severity.intValue()) { severity = s; } } - - if (severity == UNKNOWN) { + + if (severity == null || severity == Level.ALL) { // no severity specified, assume this is an error - severity = t instanceof Error ? ERROR : EXCEPTION; + severity = t instanceof Error ? Level.SEVERE : Level.WARNING; } - + return severity; } - + /** @return date assigned to the exception */ - Date getDate () { + Date getDate() { if (d == null) { - d = (Date)find (4); + d = (Date)find(4); } return d; } - - void printStackTrace (PrintStream ps) { + + void printStackTrace(PrintStream ps) { printStackTrace(new PrintWriter(new OutputStreamWriter(ps))); } /** Prints stack trace of all annotations and if * there is no annotation trace then of the exception */ - void printStackTrace (PrintWriter pw) { + void printStackTrace(PrintWriter pw) { // #19487: don't go into an endless loop here printStackTrace(pw, new HashSet(10)); } @@ -599,22 +293,23 @@ private void printStackTrace(PrintWriter pw, Set nestingCheck) { if (t != null && !nestingCheck.add(t)) { // Unlocalized log message - this is for developers of NB, not users - log(ErrorManager.WARNING, "WARNING - ErrorManager detected cyclic exception nesting:"); // NOI18N + Logger l = Logger.getAnonymousLogger(); + l.warning("WARNING - ErrorManager detected cyclic exception nesting:"); // NOI18N Iterator it = nestingCheck.iterator(); while (it.hasNext()) { Throwable t = (Throwable)it.next(); - log(ErrorManager.WARNING, "\t" + t); // NOI18N - Annotation[] anns = findAnnotations(t); + l.warning("\t" + t); // NOI18N + LogRecord[] anns = findAnnotations(t, null); if (anns != null) { for (int i = 0; i < anns.length; i++) { - Throwable t2 = anns[i].getStackTrace(); + Throwable t2 = anns[i].getThrown(); if (t2 != null) { - log(ErrorManager.WARNING, "\t=> " + t2); // NOI18N + l.warning("\t=> " + t2); // NOI18N } } } } - log(ErrorManager.WARNING, "Be sure not to annotate an exception with itself, directly or indirectly."); // NOI18N + l.warning("Be sure not to annotate an exception with itself, directly or indirectly."); // NOI18N return; } /*Heaeder @@ -629,13 +324,13 @@ pw.print(""); // NOI18N } pw.println (); - */ + */ /*Annotations */ - for (int i = 0; i < arr.length; i++) { + for (int i = 0; i < arr.length; i++) { if (arr[i] == null) continue; - Throwable thr = arr[i].getStackTrace(); - String annotation = arr[i].getLocalizedMessage(); + Throwable thr = arr[i].getThrown(); + String annotation = NbErrorManager.getLocalizedMessage(arr[i]); if (annotation == null) annotation = arr[i].getMessage(); /* @@ -645,11 +340,11 @@ if (annotation != null) { if (thr == null) { - pw.println ("Annotation: "+annotation);// NOI18N + pw.println("Annotation: "+annotation);// NOI18N } //else pw.println ("Nested annotation: "+annotation);// NOI18N - } - } + } + } // ok, print trace of the original exception too // Attempt to show an annotation indicating where the exception @@ -670,46 +365,46 @@ break; } } - String[] tLines = decompose (t); - for (int i = 0; i < tLines.length; i++) { - if (i == idx) { - pw.print ("[catch]"); // NOI18N - // Also translate following tab -> space since formatting is bad in - // Output Window (#8104) and some mail agents screw it up etc. - if (tLines[i].charAt (0) == '\t') { - pw.print (' '); - tLines[i] = tLines[i].substring (1); + String[] tLines = decompose(t); + for (int i = 0; i < tLines.length; i++) { + if (i == idx) { + pw.print("[catch]"); // NOI18N + // Also translate following tab -> space since formatting is bad in + // Output Window (#8104) and some mail agents screw it up etc. + if (tLines[i].charAt(0) == '\t') { + pw.print(' '); + tLines[i] = tLines[i].substring(1); + } } + pw.println(tLines[i]); } - pw.println (tLines[i]); } - } - /*Nested annotations */ + /*Nested annotations */ for (int i = 0; i < arr.length; i++) { if (arr[i] == null) continue; - Throwable thr = arr[i].getStackTrace(); + Throwable thr = arr[i].getThrown(); if (thr != null) { - Annotation[] ans = findAnnotations (thr); - Exc ex = new Exc (thr, 0, ans, null); + LogRecord[] ans = findAnnotations(thr, null); + Exc ex = new Exc(thr, null, ans, null); pw.println("==>"); // NOI18N ex.printStackTrace(pw, nestingCheck); } } } - + /** Get a throwable's stack trace, decomposed into individual lines. */ - private String[] decompose (Throwable t) { - StringWriter sw = new StringWriter (); - t.printStackTrace (new PrintWriter (sw)); - StringTokenizer tok = new StringTokenizer (sw.toString (), "\n\r"); // NOI18N - int c = tok.countTokens (); + private String[] decompose(Throwable t) { + StringWriter sw = new StringWriter(); + t.printStackTrace(new PrintWriter(sw)); + StringTokenizer tok = new StringTokenizer(sw.toString(), "\n\r"); // NOI18N + int c = tok.countTokens(); String[] lines = new String[c]; for (int i = 0; i < c; i++) - lines[i] = tok.nextToken (); + lines[i] = tok.nextToken(); return lines; } - + /** * Method that iterates over annotations to find out * the first annotation that brings the requested value. @@ -717,10 +412,10 @@ * @param kind what to look for (1, 2, 3, 4, ...); * @return the found object */ - private Object find (int kind) { - return find(kind, true); - } - + private Object find(int kind) { + return find(kind, true); + } + /** * Method that iterates over annotations to find out * the first annotation that brings the requested value. @@ -728,60 +423,48 @@ * @param kind what to look for (1, 2, 3, 4, ...); * @return the found object */ - private Object find (int kind, boolean def) { + private Object find(int kind, boolean def) { for (int i = 0; i < arr.length; i++) { - Annotation a = arr[i]; - + LogRecord a = arr[i]; + Object o = null; switch (kind) { - case 1: // message - o = a.getMessage (); break; - case 2: // localized - o = a.getLocalizedMessage (); break; - case 3: // class name + case 1: // message + o = a.getMessage(); break; + case 2: // localized + o = NbErrorManager.getLocalizedMessage(a); break; + case 3: // class name { - Throwable t = a.getStackTrace (); + Throwable t = a.getThrown(); o = t == null ? null : t.getClass().getName(); break; } - case 4: // date - o = a.getDate (); break; + case 4: // date + o = new Date(a.getMillis()); break; } - + if (o != null) { return o; } } - - if (!def) - return null; + + if (!def) + return null; switch (kind) { - case 1: // message - return t.getMessage (); - case 2: // loc.msg. - return t.getLocalizedMessage(); - case 3: // class name - return t.getClass ().getName (); - case 4: // date - return new Date (); - default: - throw new IllegalArgumentException ( - "Unknown " + new Integer (kind) // NOI18N - ); - } - } - } - - /** Instances are created in awt.EventDispatchThread */ - public static final class AWTHandler - { - /** The name MUST be handle and MUST be public */ - public static void handle(Throwable t) { - // Either org.netbeans or org.netbeans.core.execution pkgs: - if (t.getClass().getName().endsWith(".ExitSecurityException")) { // NOI18N - return; + case 1: // message + return t.getMessage(); + case 2: // loc.msg. + return t.getLocalizedMessage(); + case 3: // class name + return t.getClass().getName(); + case 4: // date + return new Date(); + default: + throw new IllegalArgumentException( + "Unknown " + new Integer(kind) // NOI18N + ); } - ErrorManager.getDefault().notify((ERROR << 1), t); } } + } Index: core/src/org/netbeans/core/NbKeymap.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbKeymap.java,v retrieving revision 1.31 retrieving revision 1.29.10.1 diff -u -r1.31 -r1.29.10.1 Index: core/src/org/netbeans/core/NbMainExplorer.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbMainExplorer.java,v retrieving revision 1.148 retrieving revision 1.146.34.1 diff -u -r1.148 -r1.146.34.1 Index: core/src/org/netbeans/core/NbPlaces.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbPlaces.java,v retrieving revision 1.74 retrieving revision 1.73.10.1 diff -u -r1.74 -r1.73.10.1 Index: core/src/org/netbeans/core/NbSheet.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbSheet.java,v retrieving revision 1.30 retrieving revision 1.28.34.1 diff -u -r1.30 -r1.28.34.1 Index: core/src/org/netbeans/core/NbTopManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NbTopManager.java,v retrieving revision 1.222 retrieving revision 1.220.2.1 diff -u -r1.222 -r1.220.2.1 Index: core/src/org/netbeans/core/NonGui.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NonGui.java,v retrieving revision 1.125 retrieving revision 1.123.6.1 diff -u -r1.125 -r1.123.6.1 Index: core/src/org/netbeans/core/NotifyException.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NotifyException.java,v retrieving revision 1.72 retrieving revision 1.70.10.9 diff -u -r1.72 -r1.70.10.9 --- core/src/org/netbeans/core/NotifyException.java 26 May 2006 07:16:47 -0000 1.72 +++ core/src/org/netbeans/core/NotifyException.java 6 Jun 2006 06:48:46 -0000 1.70.10.9 @@ -26,6 +26,7 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.ResourceBundle; +import java.util.logging.Level; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; @@ -38,7 +39,6 @@ import org.netbeans.core.startup.CLIOptions; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; -import org.openide.ErrorManager; import org.openide.NotifyDescriptor; import org.openide.util.NbBundle; import org.openide.util.Utilities; @@ -171,72 +171,84 @@ return false; } - - private static boolean isAssertionsEnabled() { - boolean assertsionAreOn = false; - assert assertsionAreOn = true; - return assertsionAreOn; - } /** * For unit-testing only */ - static NotifyException newInstance() { - return new NotifyException(); + static void cleanInstance() { + INSTANCE = null; } - + + /** Adds new exception into the queue. */ public static void notify ( final NbErrorManager.Exc t ) { + if (!shallNotify(t.getSeverity(), false)) { + return; + } + // #50018 Don't try to show any notify dialog when reporting headless exception if ("java.awt.HeadlessException".equals(t.getClassName()) && GraphicsEnvironment.isHeadless()) { t.printStackTrace(System.err); return; } - + SwingUtilities.invokeLater (new Runnable () { public void run() { String glm = t.getLocalizedMessage(); - int gs = t.getSeverity(); + Level gs = t.getSeverity(); boolean loc = t.isLocalized(); + + if (loc) { + if (gs == Level.WARNING) { + DialogDisplayer.getDefault().notify( + new NotifyDescriptor.Message(glm, NotifyDescriptor.WARNING_MESSAGE) + ); + return; + } + + if (gs.intValue() == 1973) { + DialogDisplayer.getDefault().notify( + new NotifyDescriptor.Message(glm, NotifyDescriptor.INFORMATION_MESSAGE) + ); + return; + } + + if (gs == Level.SEVERE) { + DialogDisplayer.getDefault().notify( + new NotifyDescriptor.Message(glm, NotifyDescriptor.ERROR_MESSAGE) + ); + return; + } + } + - if (gs == ErrorManager.WARNING && loc) { - DialogDisplayer.getDefault().notify( - new NotifyDescriptor.Message(glm, NotifyDescriptor.WARNING_MESSAGE)); - } else if (gs == ErrorManager.USER && loc) { - DialogDisplayer.getDefault().notify( - new NotifyDescriptor.Message(glm, NotifyDescriptor.INFORMATION_MESSAGE)); - } else if (gs == ErrorManager.ERROR && loc) { - DialogDisplayer.getDefault().notify( - new NotifyDescriptor.Message(glm, NotifyDescriptor.ERROR_MESSAGE)); + if( null == exceptions ) + exceptions = new ArrayListPos(); + exceptions.add(t); + exceptions.position = exceptions.size()-1; + + if(shallNotify(t.getSeverity(), true)) { + // Assertions are on, so show the exception window. + if( INSTANCE == null ) { + INSTANCE = new NotifyException(); + } + INSTANCE.updateState(t); } else { - if( null == exceptions ) - exceptions = new ArrayListPos(); - exceptions.add(t); - exceptions.position = exceptions.size()-1; - - if( isAssertionsEnabled() ) { - // Assertions are on, so show the exception window. + // No assertions, use the flashing icon. + if( null != flasher && null == INSTANCE ) { + //exception window is not visible, start flashing the icon + flasher.setToolTipText( getExceptionSummary( t ) ); + flasher.startFlashing(); + } else { + //exception window is already visible (or the flashing icon is not available) + //so we'll only update the exception window if( INSTANCE == null ) { INSTANCE = new NotifyException(); } INSTANCE.updateState(t); - } else { - // No assertions, use the flashing icon. - if( null != flasher && null == INSTANCE ) { - //exception window is not visible, start flashing the icon - flasher.setToolTipText( getExceptionSummary( t ) ); - flasher.startFlashing(); - } else { - //exception window is already visible (or the flashing icon is not available) - //so we'll only update the exception window - if( INSTANCE == null ) { - INSTANCE = new NotifyException(); - } - INSTANCE.updateState(t); - } } } } @@ -291,11 +303,11 @@ //another dialog, which will trigger another exception, endlessly. //Catch any exceptions and append them to the list instead. ensurePreferredSize(); - dialog.setVisible (true); + dialog.setVisible(true); //throw new RuntimeException ("I am not so exceptional"); //uncomment to test } catch (Exception e) { exceptions.add(new NbErrorManager().createExc( - e, ErrorManager.EXCEPTION)); + e, Level.SEVERE, null)); next.setVisible(true); } } @@ -360,7 +372,7 @@ } } else { ResourceBundle curBundle = NbBundle.getBundle (NotifyException.class); - if (current.getSeverity() == ErrorManager.WARNING) { + if (current.getSeverity() == Level.WARNING) { // less scary message for warning level descriptor.setMessage ( java.text.MessageFormat.format( @@ -417,7 +429,7 @@ //Do not allow an exception thrown here to trigger an endless //loop exceptions.add(new NbErrorManager().createExc(e, //ugly but works - ErrorManager.EXCEPTION)); + Level.SEVERE, null)); next.setVisible(true); } return; @@ -450,12 +462,32 @@ } } } + + + /** Method that checks whether the level is high enough to be notified + * at all. + * @param dialog shall we check for dialog or just a blinking icon (false) + */ + private static boolean shallNotify(Level level, boolean dialog) { + int minAlert = Integer.getInteger("netbeans.exception.alert.min.level", 900); // NOI18N + boolean assertionsOn = false; + assert assertionsOn = true; + int defReport = assertionsOn ? 900 : 1001; + int minReport = Integer.getInteger("netbeans.exception.report.min.level", defReport); // NOI18N + + if (dialog) { + return level.intValue() >= minReport; + } else { + return level.intValue() >= minAlert || level.intValue() >= minReport; + } + } + /** * The icon shown in the main status bar that is flashing when an exception * is encountered. */ - private static ExceptionFlasher flasher = null; + static FlashingIcon flasher = null; /** * Return an icon that is flashing when a new internal exception occurs. @@ -467,15 +499,13 @@ */ public static Component getNotificationVisualizer() { //do not create flashing icon if not allowed in system properties - if( isAssertionsEnabled() ) - return null; if( null == flasher ) { ImageIcon img1 = new ImageIcon( Utilities.loadImage("org/netbeans/core/resources/exception.gif", true) ); flasher = new ExceptionFlasher( img1 ); } return flasher; } - + private static class ExceptionFlasher extends FlashingIcon { public ExceptionFlasher( Icon img1 ) { super( img1 ); Index: core/src/org/netbeans/core/ProxyTypePropertyEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/ProxyTypePropertyEditor.java,v retrieving revision 1.3 retrieving revision 1.1.100.1 diff -u -r1.3 -r1.1.100.1 Index: core/src/org/netbeans/core/PsSettingsImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/PsSettingsImpl.java,v retrieving revision 1.4 retrieving revision 1.3.26.1 diff -u -r1.4 -r1.3.26.1 Index: core/src/org/netbeans/core/Services.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/Services.java,v retrieving revision 1.71 retrieving revision 1.70.6.1 diff -u -r1.71 -r1.70.6.1 Index: core/src/org/netbeans/core/ShortcutsFolder.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/ShortcutsFolder.java,v retrieving revision 1.43 retrieving revision 1.42.6.1 diff -u -r1.43 -r1.42.6.1 Index: core/src/org/netbeans/core/UIModePropertyEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/UIModePropertyEditor.java,v retrieving revision 1.4 retrieving revision 1.3.184.1 diff -u -r1.4 -r1.3.184.1 Index: core/src/org/netbeans/core/actions/HTMLViewAction.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/actions/HTMLViewAction.java,v retrieving revision 1.33 retrieving revision 1.32.108.1 diff -u -r1.33 -r1.32.108.1 Index: core/src/org/netbeans/core/actions/OptionsAction.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/actions/OptionsAction.java,v retrieving revision 1.81 retrieving revision 1.80.24.1 diff -u -r1.81 -r1.80.24.1 Index: core/src/org/netbeans/core/filesystems/MIMEResolverImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/filesystems/MIMEResolverImpl.java,v retrieving revision 1.20 retrieving revision 1.18.6.2 diff -u -r1.20 -r1.18.6.2 Index: core/src/org/netbeans/core/filesystems/XMLEnvironmentProvider.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/filesystems/XMLEnvironmentProvider.java,v retrieving revision 1.6 retrieving revision 1.4.396.1 diff -u -r1.6 -r1.4.396.1 Index: core/src/org/netbeans/core/filesystems/XMLMIMEComponent.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/filesystems/XMLMIMEComponent.java,v retrieving revision 1.24 retrieving revision 1.23.10.1 diff -u -r1.24 -r1.23.10.1 Index: core/src/org/netbeans/core/projects/FileStateManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/projects/FileStateManager.java,v retrieving revision 1.17 retrieving revision 1.15.10.1 diff -u -r1.17 -r1.15.10.1 Index: core/src/org/netbeans/core/projects/SettingChildren.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/projects/SettingChildren.java,v retrieving revision 1.29 retrieving revision 1.28.10.1 diff -u -r1.29 -r1.28.10.1 Index: core/src/org/netbeans/core/ui/ProductInformationPanel.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/ui/ProductInformationPanel.java,v retrieving revision 1.32 retrieving revision 1.30.8.1 diff -u -r1.32 -r1.30.8.1 Index: core/src/org/netbeans/core/xml/EntityCatalogImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/xml/EntityCatalogImpl.java,v retrieving revision 1.19 retrieving revision 1.17.208.1 diff -u -r1.19 -r1.17.208.1 Index: core/startup/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/nbproject/project.properties,v retrieving revision 1.6 retrieving revision 1.4.6.2 diff -u -r1.6 -r1.4.6.2 Index: core/startup/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/nbproject/project.xml,v retrieving revision 1.8 retrieving revision 1.6.6.2 diff -u -r1.8 -r1.6.6.2 Index: core/startup/src/org/netbeans/core/startup/AutomaticDependencies.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/AutomaticDependencies.java,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: core/startup/src/org/netbeans/core/startup/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/Bundle.properties,v retrieving revision 1.16 retrieving revision 1.14.2.2 diff -u -r1.16 -r1.14.2.2 --- core/startup/src/org/netbeans/core/startup/Bundle.properties 25 May 2006 08:14:48 -0000 1.16 +++ core/startup/src/org/netbeans/core/startup/Bundle.properties 5 Jun 2006 07:57:10 -0000 1.14.2.2 @@ -185,3 +185,22 @@ This property cannot be changed while the IDE is running, so this attempt had no effect. # {0} - JAR file name TEXT_patch=Module patch or custom extension: {0} + + +# +# TopLogging +# + +# {0} - class name from MRE +EXC_MissingResourceException_class_name=Missing resource from class: {0} +# {0} - key from MRE +EXC_MissingResourceException_key=Key which was not found: {0} +# {0} - public ID +# {1] - system ID +EXC_sax_parse=Parse error in file {1} (PUBLIC {0}) +# {0} - public ID +# {1] - system ID +# {2} - column # +# {3} - line # +EXC_sax_parse_col_line=Parse error in file {1} line {3} column {2} (PUBLIC {0}) + Index: core/startup/src/org/netbeans/core/startup/CLICoreBridge.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/CLICoreBridge.java,v retrieving revision 1.10 retrieving revision 1.9.6.1 diff -u -r1.10 -r1.9.6.1 Index: core/startup/src/org/netbeans/core/startup/CLIOptions.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/CLIOptions.java,v retrieving revision 1.9 retrieving revision 1.6.6.2 diff -u -r1.9 -r1.6.6.2 Index: core/startup/src/org/netbeans/core/startup/CoreBridge.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/CoreBridge.java,v retrieving revision 1.8 retrieving revision 1.6.12.2 diff -u -r1.8 -r1.6.12.2 Index: core/startup/src/org/netbeans/core/startup/InstalledFileLocatorImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/InstalledFileLocatorImpl.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: core/startup/src/org/netbeans/core/startup/Main.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/Main.java,v retrieving revision 1.25 retrieving revision 1.23.2.2 diff -u -r1.25 -r1.23.2.2 Index: core/startup/src/org/netbeans/core/startup/MainLookup.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/MainLookup.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/startup/src/org/netbeans/core/startup/ManifestSection.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/ManifestSection.java,v retrieving revision 1.8 retrieving revision 1.7.6.1 diff -u -r1.8 -r1.7.6.1 Index: core/startup/src/org/netbeans/core/startup/ModuleList.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/ModuleList.java,v retrieving revision 1.11 retrieving revision 1.10.6.1 diff -u -r1.11 -r1.10.6.1 Index: core/startup/src/org/netbeans/core/startup/ModuleSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/ModuleSystem.java,v retrieving revision 1.9 retrieving revision 1.8.6.1 diff -u -r1.9 -r1.8.6.1 Index: core/startup/src/org/netbeans/core/startup/NbEvents.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/NbEvents.java,v retrieving revision 1.14 retrieving revision 1.11.2.2 diff -u -r1.14 -r1.11.2.2 Index: core/startup/src/org/netbeans/core/startup/NbInstaller.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/NbInstaller.java,v retrieving revision 1.29 retrieving revision 1.26.6.2 diff -u -r1.29 -r1.26.6.2 Index: core/startup/src/org/netbeans/core/startup/NbURLStreamHandlerFactory.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/NbURLStreamHandlerFactory.java,v retrieving revision 1.9 retrieving revision 1.7.4.2 diff -u -r1.9 -r1.7.4.2 Index: core/startup/src/org/netbeans/core/startup/SAXFactoryImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/SAXFactoryImpl.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: core/startup/src/org/netbeans/core/startup/Splash.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/Splash.java,v retrieving revision 1.11 retrieving revision 1.10.6.1 diff -u -r1.11 -r1.10.6.1 Index: core/startup/src/org/netbeans/core/startup/StartLog.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/StartLog.java,v retrieving revision 1.6 retrieving revision 1.5.4.1 diff -u -r1.6 -r1.5.4.1 Index: core/startup/src/org/netbeans/core/startup/TopLogging.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/TopLogging.java,v retrieving revision 1.13 retrieving revision 1.12.4.4 diff -u -r1.13 -r1.12.4.4 --- core/startup/src/org/netbeans/core/startup/TopLogging.java 2 Jun 2006 21:49:44 -0000 1.13 +++ core/startup/src/org/netbeans/core/startup/TopLogging.java 9 Jun 2006 12:48:58 -0000 1.12.4.4 @@ -24,10 +24,14 @@ import java.io.UnsupportedEncodingException; import java.text.DateFormat; import java.util.Date; +import java.util.HashSet; import java.util.Iterator; import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; +import java.util.Set; import java.util.StringTokenizer; +import java.util.concurrent.Callable; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; @@ -36,8 +40,10 @@ import java.util.logging.Logger; import java.util.logging.StreamHandler; import org.openide.filesystems.FileUtil; +import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.RequestProcessor; +import org.xml.sax.SAXParseException; /** * Class that sets the java.util.logging.LogManager configuration to log into @@ -49,6 +55,9 @@ private static boolean disabledConsole = ! Boolean.getBoolean("netbeans.logger.console"); // NOI18N /** reference to the old error stream */ private static final PrintStream OLD_ERR = System.err; + static { + System.setProperty("sun.awt.exception.handler", "org.netbeans.core.startup.TopLogging$AWTHandler"); // NOI18N + } /** Initializes the logging configuration. Invoked by LogManager.readConfiguration method. */ @@ -93,6 +102,13 @@ if (!disabledConsole) { // NOI18N logger.addHandler (streamHandler ()); } + logger.addHandler(new LookupDel()); + + /* TBD: + for (Handler h : Lookup.getDefault().lookupAll(Handler.class)) { + logger.addHandler(h); + } + */ } private static String previousUser; @@ -361,13 +377,20 @@ public String format(java.util.logging.LogRecord record) { + StringBuilder sb = new StringBuilder(); + print(sb, record, new HashSet()); + return sb.toString(); + } + + + private void print(StringBuilder sb, LogRecord record, Set beenThere) { String message = formatMessage(record); if (message != null && message.indexOf('\n') != -1 && record.getThrown() == null) { // multi line messages print witout any wrappings - return message; + sb.append(message); + return; } - StringBuffer sb = new StringBuffer(); sb.append(record.getLevel().getLocalizedName()); addLoggerName (sb, record); if (message != null) { @@ -375,32 +398,140 @@ sb.append(message); } sb.append(lineSeparator); - if (record.getThrown() != null) { + if (record.getThrown() != null && record.getLevel().intValue() != 1973) { // 1973 signals ErrorManager.USER try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); - record.getThrown().printStackTrace(pw); + // All other kinds of throwables we check for a stack trace. + // First try to find where the throwable was caught. + StackTraceElement[] tStack = record.getThrown().getStackTrace(); + StackTraceElement[] hereStack = new Throwable().getStackTrace(); + int idx = -1; + for (int i = 1; i <= Math.min(tStack.length, hereStack.length); i++) { + if (!tStack[tStack.length - i].equals(hereStack[hereStack.length - i])) { + idx = tStack.length - i + 1; + break; + } + } + String[] tLines = decompose(record.getThrown()); + for (int i = 0; i < tLines.length; i++) { + if (i == idx) { + pw.print("[catch]"); // NOI18N + // Also translate following tab -> space since formatting is bad in + // Output Window (#8104) and some mail agents screw it up etc. + if (tLines[i].charAt(0) == '\t') { + pw.print(' '); + tLines[i] = tLines[i].substring(1); + } + } + pw.println(tLines[i]); + } pw.close(); sb.append(sw.toString()); } catch (Exception ex) { } + + LogRecord[] arr = extractDelegates(sb, record.getThrown(), beenThere); + if (arr != null) { + for (LogRecord r : arr) { + print(sb, r, beenThere); + } + } + + specialProcessing(sb, record.getThrown(), beenThere); } - return sb.toString(); } - private static void addLoggerName (StringBuffer sb, java.util.logging.LogRecord record) { + private static void addLoggerName (StringBuilder sb, java.util.logging.LogRecord record) { String name = record.getLoggerName (); if (!"".equals (name)) { sb.append(" ["); sb.append(name); sb.append(']'); -// if (record.getSourceClassName() != null) { -// sb.append(record.getSourceClassName()); -// } else { -// sb.append(record.getLoggerName()); -// } } } + + private static LogRecord[] extractDelegates(StringBuilder sb, Throwable t, Set beenThere) { + if (!beenThere.add(t)) { + sb.append("warning: cyclic dependency between annotated throwables"); // NOI18N + return null; + } + + if (t instanceof Callable) { + Object rec = null; + try { + rec = ((Callable) t).call(); + } catch (Exception ex) { + ex.printStackTrace(); + } + if (rec instanceof LogRecord[]) { + return (LogRecord[])rec; + } + } + if (t == null) { + return null; + } + return extractDelegates(sb, t.getCause(), beenThere); + } + + + private void specialProcessing(StringBuilder sb, Throwable t, Set beenThere) { + // MissingResourceException should be printed nicely... --jglick + if (t instanceof MissingResourceException) { + MissingResourceException mre = (MissingResourceException) t; + String cn = mre.getClassName(); + if (cn != null) { + LogRecord rec = new LogRecord(Level.CONFIG, null); + rec.setResourceBundle(NbBundle.getBundle(TopLogging.class)); + rec.setMessage("EXC_MissingResourceException_class_name"); + rec.setParameters(new Object[] { cn }); + print(sb, rec, beenThere); + } + String k = mre.getKey(); + if (k != null) { + LogRecord rec = new LogRecord(Level.CONFIG, null); + rec.setResourceBundle(NbBundle.getBundle(TopLogging.class)); + rec.setMessage("EXC_MissingResourceException_key"); + rec.setParameters(new Object[] { k }); + print(sb, rec, beenThere); + } + } + if (t instanceof SAXParseException) { + // For some reason these fail to come with useful data, like location. + SAXParseException spe = (SAXParseException)t; + String pubid = spe.getPublicId(); + String sysid = spe.getSystemId(); + if (pubid != null || sysid != null) { + int col = spe.getColumnNumber(); + int line = spe.getLineNumber(); + String msg; + Object[] param; + if (col != -1 || line != -1) { + msg = "EXC_sax_parse_col_line"; // NOI18N + param = new Object[] {String.valueOf(pubid), String.valueOf(sysid), new Integer(col), new Integer(line)}; + } else { + msg = "EXC_sax_parse"; // NOI18N + param = new Object[] { String.valueOf(pubid), String.valueOf(sysid) }; + } + LogRecord rec = new LogRecord(Level.CONFIG, null); + rec.setResourceBundle(NbBundle.getBundle(TopLogging.class)); + rec.setMessage(msg); + rec.setParameters(param); + print(sb, rec, beenThere); + } + } + } + /** Get a throwable's stack trace, decomposed into individual lines. */ + private static String[] decompose(Throwable t) { + StringWriter sw = new StringWriter(); + t.printStackTrace(new PrintWriter(sw)); + StringTokenizer tok = new StringTokenizer(sw.toString(), "\n\r"); // NOI18N + int c = tok.countTokens(); + String[] lines = new String[c]; + for (int i = 0; i < c; i++) + lines[i] = tok.nextToken(); + return lines; + } } // end of NbFormater /** a stream to delegate to logging. @@ -442,7 +573,38 @@ sb.delete(0, first); } } + } // end of LgStream + + private static final class LookupDel extends Handler { + public void publish(LogRecord record) { + for (Handler h : Lookup.getDefault().lookupAll(Handler.class)) { + h.publish(record); + } + } + public void flush() { + for (Handler h : Lookup.getDefault().lookupAll(Handler.class)) { + h.flush(); + } + } + + public void close() throws SecurityException { + for (Handler h : Lookup.getDefault().lookupAll(Handler.class)) { + h.close(); + } + } + } // end of LookupDel + + /** Instances are created in awt.EventDispatchThread */ + public static final class AWTHandler { + /** The name MUST be handle and MUST be public */ + public static void handle(Throwable t) { + // Either org.netbeans or org.netbeans.core.execution pkgs: + if (t.getClass().getName().endsWith(".ExitSecurityException")) { // NOI18N + return; + } + Logger.global.throwing(null, null, t); + } + } // end of AWTHandler - } } Index: core/startup/src/org/netbeans/core/startup/layers/ArchiveURLMapper.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/ArchiveURLMapper.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/BinaryCacheManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/BinaryCacheManager.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/BinaryFS.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/BinaryFS.java,v retrieving revision 1.12 retrieving revision 1.7.6.3 diff -u -r1.12 -r1.7.6.3 Index: core/startup/src/org/netbeans/core/startup/layers/FixedFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/FixedFileSystem.java,v retrieving revision 1.3 retrieving revision 1.2.6.1 diff -u -r1.3 -r1.2.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/ModuleLayeredFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/ModuleLayeredFileSystem.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/NbinstURLMapper.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/NbinstURLMapper.java,v retrieving revision 1.3 retrieving revision 1.2.12.1 diff -u -r1.3 -r1.2.12.1 Index: core/startup/src/org/netbeans/core/startup/layers/SessionManager.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/SessionManager.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: core/startup/src/org/netbeans/core/startup/layers/SystemFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/src/org/netbeans/core/startup/layers/SystemFileSystem.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/startup/test/cfg-unit.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/cfg-unit.xml,v retrieving revision 1.3 retrieving revision 1.2.62.1 diff -u -r1.3 -r1.2.62.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/Bundle_nosplash.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/Bundle_nosplash.properties,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/CLIOptionsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/CLIOptionsTest.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/ModuleManagerTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/ModuleManagerTest.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/NbProblemDisplayerTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/NbProblemDisplayerTest.java,v retrieving revision 1.3 retrieving revision 1.1.2.1 diff -u -r1.3 -r1.1.2.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/NbURLStreamHandlerFactoryTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/NbURLStreamHandlerFactoryTest.java,v retrieving revision 1.4 retrieving revision 1.3.4.1 diff -u -r1.4 -r1.3.4.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/SetupHid.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/SetupHid.java,v retrieving revision 1.5 retrieving revision 1.3.50.2 diff -u -r1.5 -r1.3.50.2 Index: core/startup/test/unit/src/org/netbeans/core/startup/TopLoggingLookupTest.java =================================================================== RCS file: core/startup/test/unit/src/org/netbeans/core/startup/TopLoggingLookupTest.java diff -N core/startup/test/unit/src/org/netbeans/core/startup/TopLoggingLookupTest.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ core/startup/test/unit/src/org/netbeans/core/startup/TopLoggingLookupTest.java 3 May 2006 15:39:42 -0000 1.1.2.1 @@ -0,0 +1,108 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun + * Microsystems, Inc. All Rights Reserved. + */ +package org.netbeans.core.startup; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.LogRecord; +import java.util.logging.Logger; +import java.util.logging.StreamHandler; +import java.util.logging.XMLFormatter; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.netbeans.junit.NbTestCase; +import org.openide.util.Lookup; +import org.openide.util.lookup.AbstractLookup; +import org.openide.util.lookup.InstanceContent; + + +/** + * Checks the top logging delegates to handlers in lookup. + */ +public class TopLoggingLookupTest extends NbTestCase { + static { + System.setProperty("org.openide.util.Lookup", Lkp.class.getName()); + } + + private MyHandler handler; + + public TopLoggingLookupTest(String testName) { + super(testName); + } + + protected void setUp() throws Exception { + clearWorkDir(); + System.setProperty("netbeans.user", getWorkDirPath()); + + assertEquals(Lkp.class, Lookup.getDefault().getClass()); + Lkp.IC.set(Collections.emptyList(), null); + + // initialize logging + TopLogging.initialize(); + + handler = new MyHandler(); + + Lkp.IC.add(handler); + } + + + protected void tearDown() throws Exception { + } + + public void testLogOneLine() throws Exception { + Logger.getLogger(TopLoggingTest.class.getName()).log(Level.INFO, "First visible message"); + + assertEquals("[First visible message]", handler.logs.toString()); + + } + + public static final class Lkp extends AbstractLookup { + public static InstanceContent IC; + + public Lkp() { + this(new InstanceContent()); + } + private Lkp(InstanceContent ic) { + super(ic); + IC = ic; + } + } + + private static final class MyHandler extends Handler { + public List logs = new ArrayList(); + + public void publish(LogRecord record) { + logs.add(record.getMessage()); + } + + public void flush() { + logs.add("flush"); + } + + public void close() throws SecurityException { + logs.add("close"); + } + + } +} Index: core/startup/test/unit/src/org/netbeans/core/startup/layers/BinaryFSTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/layers/BinaryFSTest.java,v retrieving revision 1.2 retrieving revision 1.2.6.1 diff -u -r1.2 -r1.2.6.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/layers/CacheManagerTestBaseHid.java =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/layers/CacheManagerTestBaseHid.java,v retrieving revision 1.2 retrieving revision 1.1.40.1 diff -u -r1.2 -r1.1.40.1 Index: core/startup/test/unit/src/org/netbeans/core/startup/layers/data/layer1.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/startup/test/unit/src/org/netbeans/core/startup/layers/data/layer1.xml,v retrieving revision 1.2 retrieving revision 1.1.40.1 diff -u -r1.2 -r1.1.40.1 Index: core/swing/plaf/src/org/netbeans/swing/plaf/aqua/PlainAquaToolbarUI.java =================================================================== RCS file: /shared/data/ccvs/repository/core/swing/plaf/src/org/netbeans/swing/plaf/aqua/PlainAquaToolbarUI.java,v retrieving revision 1.7 retrieving revision 1.6.86.1 diff -u -r1.7 -r1.6.86.1 Index: core/test/qa-functional/src/gui/propertyeditors/PropertiesTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/qa-functional/src/gui/propertyeditors/PropertiesTest.java,v retrieving revision 1.4 retrieving revision 1.3.90.1 diff -u -r1.4 -r1.3.90.1 Index: core/test/qa-functional/src/gui/propertyeditors/PropertyEditorsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/qa-functional/src/gui/propertyeditors/PropertyEditorsTest.java,v retrieving revision 1.19 retrieving revision 1.18.26.1 diff -u -r1.19 -r1.18.26.1 Index: core/test/qa-functional/src/gui/windowsystem/MenuChecker.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/qa-functional/src/gui/windowsystem/MenuChecker.java,v retrieving revision 1.2 retrieving revision 1.1.90.1 diff -u -r1.2 -r1.1.90.1 Index: core/test/unit/src/org/netbeans/core/HttpSettingsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/HttpSettingsTest.java,v retrieving revision 1.4 retrieving revision 1.1.98.1 diff -u -r1.4 -r1.1.98.1 Index: core/test/unit/src/org/netbeans/core/LoaderPoolNodeReorderTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/LoaderPoolNodeReorderTest.java,v retrieving revision 1.3 retrieving revision 1.3.6.1 diff -u -r1.3 -r1.3.6.1 Index: core/test/unit/src/org/netbeans/core/LoaderPoolNodeTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/LoaderPoolNodeTest.java,v retrieving revision 1.2 retrieving revision 1.1.98.1 diff -u -r1.2 -r1.1.98.1 Index: core/test/unit/src/org/netbeans/core/LoggingTestCaseHid.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/LoggingTestCaseHid.java,v retrieving revision 1.3 retrieving revision 1.2.28.1 diff -u -r1.3 -r1.2.28.1 Index: core/test/unit/src/org/netbeans/core/ModuleActionsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/ModuleActionsTest.java,v retrieving revision 1.2 retrieving revision 1.1.168.1 diff -u -r1.2 -r1.1.168.1 Index: core/test/unit/src/org/netbeans/core/NbClipboardIsUsedBySwingComponentsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/NbClipboardIsUsedBySwingComponentsTest.java,v retrieving revision 1.6 retrieving revision 1.5.40.1 diff -u -r1.6 -r1.5.40.1 Index: core/test/unit/src/org/netbeans/core/NbClipboardNativeTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/NbClipboardNativeTest.java,v retrieving revision 1.12 retrieving revision 1.10.6.1 diff -u -r1.12 -r1.10.6.1 Index: core/test/unit/src/org/netbeans/core/NbErrorManagerTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/NbErrorManagerTest.java,v retrieving revision 1.9 retrieving revision 1.9.6.2 diff -u -r1.9 -r1.9.6.2 --- core/test/unit/src/org/netbeans/core/NbErrorManagerTest.java 5 Apr 2006 16:50:31 -0000 1.9 +++ core/test/unit/src/org/netbeans/core/NbErrorManagerTest.java 5 May 2006 07:38:35 -0000 1.9.6.2 @@ -13,31 +13,40 @@ package org.netbeans.core; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Iterator; import java.util.MissingResourceException; +import java.util.logging.Level; import java.util.logging.LogManager; import javax.swing.SwingUtilities; +import junit.framework.Test; import org.netbeans.core.startup.CLIOptions; -import org.netbeans.junit.*; -import junit.textui.TestRunner; +import org.netbeans.junit.NbTestCase; +import org.netbeans.junit.NbTestSuite; import org.openide.ErrorManager; import org.openide.util.Lookup; import org.xml.sax.SAXParseException; + /** * Test the core error manager impl. * @author Jesse Glick * @see "#18141" */ -public class NbErrorManagerTest extends NbTestCase { - - public NbErrorManagerTest(String name) { - super(name); +public final class NbErrorManagerTest extends NbTestCase { + public NbErrorManagerTest(String s) { + super(s); + } + + public static Test suite() { + //return new NbErrorManagerTest("testAddedInfo"); + return new NbTestSuite(NbErrorManagerTest.class); } - private NbErrorManager err; + private ErrorManager err; protected void setUp() throws Exception { clearWorkDir(); @@ -46,22 +55,10 @@ CLIOptions.initialize(); - Iterator it = Lookup.getDefault().lookup(new Lookup.Template(ErrorManager.class)).allInstances().iterator(); - while (it.hasNext()) { - Object o = it.next(); - if (o instanceof NbErrorManager) { - assertNull("No err yet", err); - err = (NbErrorManager)o; - } - } - + err = ErrorManager.getDefault(); assertNotNull("One Error manager found", err); } - public void testEMFound() throws Exception { - assertEquals(NbErrorManager.class, Lookup.getDefault().lookup(ErrorManager.class).getClass()); - } - public void testIsLoggable() { assertFalse(ErrorManager.getDefault ().isLoggable(ErrorManager.INFORMATIONAL)); assertFalse(ErrorManager.getDefault ().isLoggable(ErrorManager.INFORMATIONAL + 1)); @@ -205,8 +202,8 @@ public void testNotifyException() throws Exception { IOException ioe = new IOException("unloc msg"); err.annotate(ioe, "loc msg"); - NbErrorManager.Exc x = err.createExc(ioe, ErrorManager.USER); - assertEquals(ErrorManager.USER, x.getSeverity()); + NbErrorManager.Exc x = NbErrorManager.ROOT.createExc(ioe, Level.INFO, null); + assertEquals(Level.INFO, x.getSeverity()); assertEquals("loc msg", x.getLocalizedMessage()); assertTrue(x.isLocalized()); // could do more here... @@ -220,8 +217,8 @@ // Simple exception is EXCEPTION. Throwable t = new IOException("unloc msg"); - NbErrorManager.Exc x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.EXCEPTION, x.getSeverity()); + NbErrorManager.Exc x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(Level.WARNING, x.getSeverity()); assertEquals("unloc msg", x.getMessage()); assertEquals("unloc msg", x.getLocalizedMessage()); assertFalse(x.isLocalized()); @@ -229,8 +226,8 @@ // Same when there is unloc debug info attached. t = new IOException("unloc msg"); err.annotate(t, ErrorManager.UNKNOWN, "some debug info", null, null, null); - x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.EXCEPTION, x.getSeverity()); + x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(Level.WARNING, x.getSeverity()); assertEquals("unloc msg", x.getMessage()); assertEquals("unloc msg", x.getLocalizedMessage()); assertFalse(x.isLocalized()); @@ -239,8 +236,8 @@ t = new IOException("unloc msg"); Throwable t2 = new IOException("unloc msg #2"); err.annotate(t, ErrorManager.UNKNOWN, null, null, t2, null); - x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.EXCEPTION, x.getSeverity()); + x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(Level.WARNING, x.getSeverity()); assertEquals("unloc msg", x.getMessage()); assertEquals("unloc msg", x.getLocalizedMessage()); assertFalse(x.isLocalized()); @@ -249,8 +246,8 @@ // set the severity for the exception. t = new IOException("unloc msg"); err.annotate(t, ErrorManager.USER, null, "loc msg", null, null); - x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.USER, x.getSeverity()); + x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(1973, x.getSeverity().intValue()); assertEquals("unloc msg", x.getMessage()); assertEquals("loc msg", x.getLocalizedMessage()); assertTrue(x.isLocalized()); @@ -260,8 +257,8 @@ t2 = new IOException("unloc msg #2"); err.annotate(t2, ErrorManager.USER, null, "loc msg", null, null); err.annotate(t, ErrorManager.UNKNOWN, null, null, t2, null); - x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.USER, x.getSeverity()); + x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(1973, x.getSeverity().intValue()); assertEquals("unloc msg", x.getMessage()); assertEquals("loc msg", x.getLocalizedMessage()); assertTrue(x.isLocalized()); @@ -271,8 +268,8 @@ err.annotate(t2, ErrorManager.USER, null, "loc msg", null, null); t = new IOException("loc msg"); err.annotate(t, ErrorManager.USER, null, null, t2, null); - x = err.createExc(t, ErrorManager.UNKNOWN); - assertEquals(ErrorManager.USER, x.getSeverity()); + x = NbErrorManager.ROOT.createExc(t, null, null); + assertEquals(1973, x.getSeverity().intValue()); assertEquals("loc msg", x.getMessage()); assertEquals("loc msg", x.getLocalizedMessage()); // Note that it is stil considered localized even though the messages @@ -297,9 +294,9 @@ // wait for a dialog to be shown waitEQ(); - int report = output.indexOf("Exception occurred"); + int report = output.indexOf("My: Ahoj"); assertTrue("There is one exception reported: " + output, report > 0); - int next = output.indexOf("Exception occurred", report + 1); + int next = output.indexOf("My: Ahoj", report + 1); assertEquals("No next exceptions there (after " + report + "):\n" + output, -1, next); } Index: core/test/unit/src/org/netbeans/core/NotifyExceptionBundle.properties =================================================================== RCS file: core/test/unit/src/org/netbeans/core/NotifyExceptionBundle.properties diff -N core/test/unit/src/org/netbeans/core/NotifyExceptionBundle.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ core/test/unit/src/org/netbeans/core/NotifyExceptionBundle.properties 5 May 2006 07:38:35 -0000 1.1.2.1 @@ -0,0 +1,13 @@ +# Sun Public License Notice +# +# The contents of this file are subject to the Sun Public License +# Version 1.0 (the "License"). You may not use this file except in +# compliance with the License. A copy of the License is available at +# http://www.sun.com/ +# +# The Original Code is NetBeans. The Initial Developer of the Original +# Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun +# Microsystems, Inc. All Rights Reserved. + + +MSG_KEY=Some Message Index: core/test/unit/src/org/netbeans/core/NotifyExceptionTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/NotifyExceptionTest.java,v retrieving revision 1.1 retrieving revision 1.1.86.4 diff -u -r1.1 -r1.1.86.4 --- core/test/unit/src/org/netbeans/core/NotifyExceptionTest.java 21 Feb 2005 11:48:40 -0000 1.1 +++ core/test/unit/src/org/netbeans/core/NotifyExceptionTest.java 5 Jun 2006 15:30:47 -0000 1.1.86.4 @@ -13,11 +13,24 @@ package org.netbeans.core; +import java.awt.Dialog; import java.awt.Frame; +import java.util.ResourceBundle; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; +import javax.swing.ImageIcon; import javax.swing.JDialog; import javax.swing.SwingUtilities; +import org.netbeans.core.startup.TopLogging; import org.netbeans.junit.*; -import junit.textui.TestRunner; +import org.openide.DialogDescriptor; +import org.openide.DialogDisplayer; +import org.openide.ErrorManager; +import org.openide.NotifyDescriptor; +import org.openide.util.NbBundle; +import org.openide.util.lookup.AbstractLookup; +import org.openide.util.lookup.InstanceContent; import org.openide.windows.WindowManager; @@ -26,40 +39,183 @@ * @author Stanislav Aubrecht */ public class NotifyExceptionTest extends NbTestCase { + static { + System.setProperty("org.openide.util.Lookup", Lkp.class.getName()); + } public NotifyExceptionTest(String name) { super(name); } - protected boolean runInEQ() { - return true; - } - - public static void main(String[] args) { - TestRunner.run(new NbTestSuite(NotifyExceptionTest.class)); + private static void waitEQ() throws Exception { + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + } + }); } protected void setUp() throws Exception { + clearWorkDir(); + System.setProperty("netbeans.user", getWorkDirPath()); + // initialize the logging + new TopLogging(); + + DD.lastDescriptor = null; + DD.toReturn = null; + + System.getProperties().remove("netbeans.exception.alert.min.level"); + System.getProperties().remove("netbeans.exception.report.min.level"); + + NotifyException.cleanInstance(); } - static boolean errorDialogIsModal; /** * A simple test to ensure that error dialog window is not created modal * until the MainWindow is visible. */ public void testNoModalErrorDialog() throws Exception { Frame mainWindow = WindowManager.getDefault().getMainWindow(); - final JDialog modalDialog = new JDialog( mainWindow, true ); - SwingUtilities.invokeLater( new Runnable() { - public void run() { - NotifyException ne = NotifyException.newInstance(); - errorDialogIsModal = ne.dialog.isModal(); - modalDialog.dispose(); + final JDialog modalDialog = new HiddenDialog( mainWindow, true ); + DD.toReturn = modalDialog; + + Logger.global.log(Level.WARNING, "Something is wrong", new NullPointerException("npe")); + waitEQ(); + assertNotNull("Really returned", DD.lastDescriptor); + assertEquals("It is DialogDescriptor", DialogDescriptor.class, DD.lastDescriptor.getClass()); + DialogDescriptor dd = (DialogDescriptor)DD.lastDescriptor; + assertFalse( "The request is for non-modal dialog", dd.isModal()); + assertFalse("Main window is not visible", mainWindow.isVisible()); + } + + public void testExceptionWillGetTheLevelFromAnnoatation() throws Exception { + NullPointerException npe = new NullPointerException("npe"); + ErrorManager.getDefault().annotate(npe, ErrorManager.WARNING, null, null, null, null); + + DD.toReturn = new HiddenDialog(); + ErrorManager.getDefault().notify(npe); + + waitEQ(); + assertNotNull("We are going to display a warning", DD.lastDescriptor); + + } + + public void testDirectlyLoggingAnExceptionWithALocalizedMessageAndTheRightLevelShowsItInADialog() throws Exception { + NullPointerException npe = new NullPointerException("npe"); + + LogRecord rec = new LogRecord(OwnLevel.UI, "MSG_KEY"); + rec.setThrown(npe); + ResourceBundle b = ResourceBundle.getBundle("org/netbeans/core/NotifyExceptionBundle"); + rec.setResourceBundle(b); + DD.toReturn = new HiddenDialog(); + Logger.global.log(rec); + waitEQ(); + assertNotNull("We are going to display a warning", DD.lastDescriptor); + assertTrue("We want message: " + DD.lastDescriptor, DD.lastDescriptor instanceof NotifyDescriptor.Message); + NotifyDescriptor.Message msg = (NotifyDescriptor.Message)DD.lastDescriptor; + assertEquals("Info msg", NotifyDescriptor.INFORMATION_MESSAGE, msg.getMessageType()); + assertEquals("Msg is localized", b.getString("MSG_KEY"), msg.getMessage()); + } + + public void testYesDialogShown() throws Exception { + Frame mainWindow = WindowManager.getDefault().getMainWindow(); + final JDialog modalDialog = new HiddenDialog( mainWindow, true ); + DD.toReturn = modalDialog; + + Logger l = Logger.getLogger(getName()); + l.setLevel(Level.ALL); + System.setProperty("netbeans.exception.report.min.level", "200"); + l.log(Level.CONFIG, "Something is wrong", new NullPointerException("npe")); + waitEQ(); + assertNotNull("Really returned", DD.lastDescriptor); + assertEquals("It is DialogDescriptor", DialogDescriptor.class, DD.lastDescriptor.getClass()); + DialogDescriptor dd = (DialogDescriptor)DD.lastDescriptor; + assertFalse( "The request is for non-modal dialog", dd.isModal()); + assertFalse("Main window is not visible", mainWindow.isVisible()); + } + public void testNoDialogShownJustFlashing() throws Exception { + class MockFlashingIcon extends FlashingIcon { + public int cnt; + + public MockFlashingIcon() { + super(new ImageIcon()); + } + protected void onMouseClick() { + } + + protected void timeout() { + } + + public void startFlashing() { + cnt++; } - } ); + } + MockFlashingIcon mock = new MockFlashingIcon(); + + NotifyException.flasher = mock; + + Logger l = Logger.getLogger(getName()); + l.setLevel(Level.ALL); + System.setProperty("netbeans.exception.alert.min.level", "200"); + l.log(Level.CONFIG, "Something is wrong", new NullPointerException("npe")); + waitEQ(); + assertNull("Really returned", DD.lastDescriptor); + + assertEquals("Flasher flashing", 1, mock.cnt); + } + + private static final class OwnLevel extends Level { + public static final Level UI = new OwnLevel("UI", 1973); + + private OwnLevel(String n, int i) { + super(n, i); + } + } + + private static final class DD extends DialogDisplayer { + public static NotifyDescriptor lastDescriptor; + public static Object toReturn; + + public Object notify(NotifyDescriptor descriptor) { + Object t = toReturn; + toReturn = null; + assertNotNull("There is something to return", t); + lastDescriptor = descriptor; + return t; + } + + public Dialog createDialog(DialogDescriptor descriptor) { + return (Dialog)notify(descriptor); + } + } // end of DD + + public static final class Lkp extends AbstractLookup { + public static InstanceContent IC; + + public Lkp() { + this(new InstanceContent()); + } + private Lkp(InstanceContent ic) { + super(ic); + ic.add(new DD()); + ic.add(new NbErrorManager()); + } + } + + private static final class HiddenDialog extends JDialog { + private boolean v; + + public HiddenDialog() { + } + + public HiddenDialog(Frame p, boolean b) { + super(p, b); + } - modalDialog.show(); - - assertFalse( "Error dialog is not modal", errorDialogIsModal ); + public void setVisible(boolean b) { + v = b; + } + public boolean isVisible() { + return v; + } } } Index: core/test/unit/src/org/netbeans/core/ShortcutsFolder66845Test.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/ShortcutsFolder66845Test.java,v retrieving revision 1.2 retrieving revision 1.1.10.1 diff -u -r1.2 -r1.1.10.1 Index: core/test/unit/src/org/netbeans/core/ShortcutsFolderTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/ShortcutsFolderTest.java,v retrieving revision 1.14 retrieving revision 1.13.24.1 diff -u -r1.14 -r1.13.24.1 Index: core/test/unit/src/org/netbeans/core/actions/ActionMapKeysTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/actions/ActionMapKeysTest.java,v retrieving revision 1.3 retrieving revision 1.2.34.1 diff -u -r1.3 -r1.2.34.1 Index: core/test/unit/src/org/netbeans/core/filesystems/NbinstURLMapperTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/filesystems/NbinstURLMapperTest.java,v retrieving revision 1.8 retrieving revision 1.7.6.1 diff -u -r1.8 -r1.7.6.1 Index: core/test/unit/src/org/netbeans/core/lookup/InstanceDataObjectModule38420Test.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/lookup/InstanceDataObjectModule38420Test.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: core/test/unit/src/org/netbeans/core/lookup/InstanceDataObjectModuleTest4.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/lookup/InstanceDataObjectModuleTest4.java,v retrieving revision 1.6 retrieving revision 1.5.10.1 diff -u -r1.6 -r1.5.10.1 Index: core/test/unit/src/org/netbeans/core/lookup/MetaInfServicesTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/lookup/MetaInfServicesTest.java,v retrieving revision 1.14 retrieving revision 1.13.6.1 diff -u -r1.14 -r1.13.6.1 Index: core/test/unit/src/org/netbeans/core/lookup/data/install-manifest-service/ims/Foo.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/lookup/data/install-manifest-service/ims/Foo.java,v retrieving revision 1.3 retrieving revision 1.2.334.1 diff -u -r1.3 -r1.2.334.1 Index: core/test/unit/src/org/netbeans/core/projects/ValidateLayerConsistencyTest.java =================================================================== RCS file: /shared/data/ccvs/repository/core/test/unit/src/org/netbeans/core/projects/ValidateLayerConsistencyTest.java,v retrieving revision 1.23 retrieving revision 1.22.6.1 diff -u -r1.23 -r1.22.6.1 Index: core/ui/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/nbproject/project.properties,v retrieving revision 1.5 retrieving revision 1.4.36.1 diff -u -r1.5 -r1.4.36.1 Index: core/ui/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/nbproject/project.xml,v retrieving revision 1.11 retrieving revision 1.10.36.1 diff -u -r1.11 -r1.10.36.1 Index: core/ui/src/org/netbeans/core/ui/resources/layer.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/src/org/netbeans/core/ui/resources/layer.xml,v retrieving revision 1.111 retrieving revision 1.110.26.1 diff -u -r1.111 -r1.110.26.1 Index: core/ui/src/org/netbeans/core/ui/sysopen/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/src/org/netbeans/core/ui/sysopen/Bundle.properties,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/ui/src/org/netbeans/core/ui/sysopen/SystemOpenAction.java =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/src/org/netbeans/core/ui/sysopen/SystemOpenAction.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: core/ui/src/org/netbeans/core/ui/warmup/MenuWarmUpTask.java =================================================================== RCS file: /shared/data/ccvs/repository/core/ui/src/org/netbeans/core/ui/warmup/MenuWarmUpTask.java,v retrieving revision 1.5 retrieving revision 1.4.26.1 diff -u -r1.5 -r1.4.26.1 Index: core/windows/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/windows/nbproject/project.xml,v retrieving revision 1.13 retrieving revision 1.12.26.1 diff -u -r1.13 -r1.12.26.1 Index: core/windows/src/org/netbeans/core/windows/view/EditorView.java =================================================================== RCS file: /shared/data/ccvs/repository/core/windows/src/org/netbeans/core/windows/view/EditorView.java,v retrieving revision 1.20 retrieving revision 1.19.30.1 diff -u -r1.20 -r1.19.30.1 Index: core/windows/src/org/netbeans/core/windows/view/ui/DefaultSeparateContainer.java =================================================================== RCS file: /shared/data/ccvs/repository/core/windows/src/org/netbeans/core/windows/view/ui/DefaultSeparateContainer.java,v retrieving revision 1.16 retrieving revision 1.15.102.1 diff -u -r1.16 -r1.15.102.1 Index: openide/actions/test/unit/src/org/openide/actions/ActionsInfraHid.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/actions/test/unit/src/org/openide/actions/ActionsInfraHid.java,v retrieving revision 1.2 retrieving revision 1.1.32.1 diff -u -r1.2 -r1.1.32.1 Index: openide/arch/arch-openide-masterfs.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/arch/arch-openide-masterfs.xml,v retrieving revision 1.12 retrieving revision 1.11.10.1 diff -u -r1.12 -r1.11.10.1 Index: openide/awt/test/unit/src/org/openide/awt/ActionsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/awt/test/unit/src/org/openide/awt/ActionsTest.java,v retrieving revision 1.2 retrieving revision 1.1.6.1 diff -u -r1.2 -r1.1.6.1 Index: openide/dialogs/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/apichanges.xml,v retrieving revision 1.5 retrieving revision 1.5.22.1 diff -u -r1.5 -r1.5.22.1 --- openide/dialogs/apichanges.xml 6 Dec 2005 07:09:18 -0000 1.5 +++ openide/dialogs/apichanges.xml 6 Jun 2006 07:14:30 -0000 1.5.22.1 @@ -17,6 +17,24 @@ Dialogs API + + + New method to asynchronously show messages + + + + + + Now it is simple to display a message box described by + NotifyDescriptor + asynchronously using + + DialogDisplayer.notifyLater + . + + + + Interface AsynchronousInstantiatingIterator added Index: openide/dialogs/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/manifest.mf,v retrieving revision 1.7 retrieving revision 1.7.10.1 diff -u -r1.7 -r1.7.10.1 --- openide/dialogs/manifest.mf 12 Dec 2005 15:40:11 -0000 1.7 +++ openide/dialogs/manifest.mf 6 Jun 2006 07:14:30 -0000 1.7.10.1 @@ -1,5 +1,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.openide.dialogs -OpenIDE-Module-Specification-Version: 6.6 +OpenIDE-Module-Specification-Version: 7.0 OpenIDE-Module-Localizing-Bundle: org/openide/Bundle.properties Index: openide/dialogs/src/org/openide/DialogDisplayer.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/src/org/openide/DialogDisplayer.java,v retrieving revision 1.2 retrieving revision 1.1.56.3 diff -u -r1.2 -r1.1.56.3 --- openide/dialogs/src/org/openide/DialogDisplayer.java 9 May 2006 08:11:58 -0000 1.2 +++ openide/dialogs/src/org/openide/DialogDisplayer.java 7 Jun 2006 07:51:33 -0000 1.1.56.3 @@ -66,6 +66,23 @@ */ public abstract Object notify(NotifyDescriptor descriptor); + /** Notify the user of something in a message box, possibly with feedback, + * this method method may be called + * from any thread. The thread will return immediately and + * the dialog will be shown later, usually when AWT thread + * is empty and can handle the request. + * + * @param descriptor description of the notification + * @since 7.0 + */ + public void notifyLater(final NotifyDescriptor descriptor) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + DialogDisplayer.this.notify(descriptor); + } + }); + } + /** Get a new standard dialog. * The dialog is designed and created as specified in the parameter. * Anyone who wants a dialog with standard buttons and Index: openide/dialogs/src/org/openide/NotifyDescriptor.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/src/org/openide/NotifyDescriptor.java,v retrieving revision 1.3 retrieving revision 1.3.36.1 diff -u -r1.3 -r1.3.36.1 --- openide/dialogs/src/org/openide/NotifyDescriptor.java 6 Sep 2005 15:07:17 -0000 1.3 +++ openide/dialogs/src/org/openide/NotifyDescriptor.java 6 Jun 2006 07:14:31 -0000 1.3.36.1 @@ -766,8 +766,9 @@ /** * Provides a description of an exception that occurred during - * execution of the IDE. - * @deprecated Better to use {@link org.openide.ErrorManager#notify} + * execution of the IDE. The best is to use this class together with + * {@link DialogDisplayer#notifyLater} as that allows an exception + * to be notified from any thread. */ public static final class Exception extends Confirmation { static final long serialVersionUID = -3387516993124229948L; Index: openide/dialogs/src/org/openide/WizardDescriptor.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/src/org/openide/WizardDescriptor.java,v retrieving revision 1.25 retrieving revision 1.23.6.1 diff -u -r1.25 -r1.23.6.1 Index: openide/dialogs/test/unit/src/org/openide/LoggingTestCaseHid.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/dialogs/test/unit/src/org/openide/LoggingTestCaseHid.java,v retrieving revision 1.2 retrieving revision 1.1.26.1 diff -u -r1.2 -r1.1.26.1 Index: openide/explorer/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/apichanges.xml,v retrieving revision 1.7 retrieving revision 1.6.32.1 diff -u -r1.7 -r1.6.32.1 Index: openide/explorer/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/manifest.mf,v retrieving revision 1.9 retrieving revision 1.8.12.1 diff -u -r1.9 -r1.8.12.1 Index: openide/explorer/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/nbproject/project.properties,v retrieving revision 1.5 retrieving revision 1.4.58.1 diff -u -r1.5 -r1.4.58.1 Index: openide/explorer/src/org/openide/explorer/propertysheet/EnumPropertyEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/propertysheet/EnumPropertyEditor.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/explorer/src/org/openide/explorer/propertysheet/IndexedEditorPanel.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/propertysheet/IndexedEditorPanel.java,v retrieving revision 1.3 retrieving revision 1.2.10.1 diff -u -r1.3 -r1.2.10.1 Index: openide/explorer/src/org/openide/explorer/propertysheet/IndexedPropertyEditor.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/propertysheet/IndexedPropertyEditor.java,v retrieving revision 1.2 retrieving revision 1.1.58.1 diff -u -r1.2 -r1.1.58.1 Index: openide/explorer/src/org/openide/explorer/propertysheet/PropUtils.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/propertysheet/PropUtils.java,v retrieving revision 1.8 retrieving revision 1.7.2.1 diff -u -r1.8 -r1.7.2.1 Index: openide/explorer/src/org/openide/explorer/view/ExplorerDnDManager.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/ExplorerDnDManager.java,v retrieving revision 1.2 retrieving revision 1.1.58.1 diff -u -r1.2 -r1.1.58.1 Index: openide/explorer/src/org/openide/explorer/view/ListView.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/ListView.java,v retrieving revision 1.9 retrieving revision 1.8.12.1 diff -u -r1.9 -r1.8.12.1 Index: openide/explorer/src/org/openide/explorer/view/ListViewDragSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/ListViewDragSupport.java,v retrieving revision 1.2 retrieving revision 1.1.58.1 diff -u -r1.2 -r1.1.58.1 Index: openide/explorer/src/org/openide/explorer/view/ListViewDropSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/ListViewDropSupport.java,v retrieving revision 1.5 retrieving revision 1.4.10.1 diff -u -r1.5 -r1.4.10.1 Index: openide/explorer/src/org/openide/explorer/view/TreeView.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/TreeView.java,v retrieving revision 1.11 retrieving revision 1.10.6.1 diff -u -r1.11 -r1.10.6.1 Index: openide/explorer/src/org/openide/explorer/view/TreeViewDropSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/view/TreeViewDropSupport.java,v retrieving revision 1.5 retrieving revision 1.4.10.1 diff -u -r1.5 -r1.4.10.1 Index: openide/explorer/test/unit/src/org/openide/explorer/propertysheet/EnumPropertyEditorTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/test/unit/src/org/openide/explorer/propertysheet/EnumPropertyEditorTest.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 Index: openide/explorer/test/unit/src/org/openide/explorer/view/DragDropUtilitiesTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/test/unit/src/org/openide/explorer/view/DragDropUtilitiesTest.java,v retrieving revision 1.2 retrieving revision 1.1.6.1 diff -u -r1.2 -r1.1.6.1 Index: openide/fs/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/apichanges.xml,v retrieving revision 1.9 retrieving revision 1.6.26.1 diff -u -r1.9 -r1.6.26.1 Index: openide/fs/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/manifest.mf,v retrieving revision 1.8 retrieving revision 1.6.10.1 diff -u -r1.8 -r1.6.10.1 Index: openide/fs/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/nbproject/project.properties,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: openide/fs/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/nbproject/project.xml,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: openide/fs/src/org/openide/filesystems/AbstractFileObject.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/AbstractFileObject.java,v retrieving revision 1.9 retrieving revision 1.4.6.2 diff -u -r1.9 -r1.4.6.2 Index: openide/fs/src/org/openide/filesystems/AbstractFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/AbstractFileSystem.java,v retrieving revision 1.8 retrieving revision 1.4.6.2 diff -u -r1.8 -r1.4.6.2 Index: openide/fs/src/org/openide/filesystems/AbstractFolder.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/AbstractFolder.java,v retrieving revision 1.5 retrieving revision 1.3.6.1 diff -u -r1.5 -r1.3.6.1 Index: openide/fs/src/org/openide/filesystems/DefaultAttributes.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/DefaultAttributes.java,v retrieving revision 1.6 retrieving revision 1.3.6.2 diff -u -r1.6 -r1.3.6.2 Index: openide/fs/src/org/openide/filesystems/EnvironmentNotSupportedException.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/EnvironmentNotSupportedException.java,v retrieving revision 1.3 retrieving revision 1.2.54.1 diff -u -r1.3 -r1.2.54.1 Index: openide/fs/src/org/openide/filesystems/EventControl.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/EventControl.java,v retrieving revision 1.3 retrieving revision 1.2.6.1 diff -u -r1.3 -r1.2.6.1 Index: openide/fs/src/org/openide/filesystems/FCLSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FCLSupport.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/fs/src/org/openide/filesystems/FileObject.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FileObject.java,v retrieving revision 1.11 retrieving revision 1.7.6.2 diff -u -r1.11 -r1.7.6.2 Index: openide/fs/src/org/openide/filesystems/FileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FileSystem.java,v retrieving revision 1.6 retrieving revision 1.4.6.1 diff -u -r1.6 -r1.4.6.1 Index: openide/fs/src/org/openide/filesystems/FileSystemCapability.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FileSystemCapability.java,v retrieving revision 1.5 retrieving revision 1.3.6.1 diff -u -r1.5 -r1.3.6.1 Index: openide/fs/src/org/openide/filesystems/FileURL.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FileURL.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/fs/src/org/openide/filesystems/FileUtil.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/FileUtil.java,v retrieving revision 1.21 retrieving revision 1.19.6.1 diff -u -r1.21 -r1.19.6.1 Index: openide/fs/src/org/openide/filesystems/JarFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/JarFileSystem.java,v retrieving revision 1.8 retrieving revision 1.5.6.2 diff -u -r1.8 -r1.5.6.2 Index: openide/fs/src/org/openide/filesystems/ListenerList.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/ListenerList.java,v retrieving revision 1.3 retrieving revision 1.2.6.1 diff -u -r1.3 -r1.2.6.1 Index: openide/fs/src/org/openide/filesystems/LocalFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/LocalFileSystem.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/fs/src/org/openide/filesystems/MIMESupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/MIMESupport.java,v retrieving revision 1.18 retrieving revision 1.13.6.2 diff -u -r1.18 -r1.13.6.2 Index: openide/fs/src/org/openide/filesystems/MemoryFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/MemoryFileSystem.java,v retrieving revision 1.10 retrieving revision 1.9.6.1 diff -u -r1.10 -r1.9.6.1 Index: openide/fs/src/org/openide/filesystems/MultiFileObject.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/MultiFileObject.java,v retrieving revision 1.7 retrieving revision 1.4.6.2 diff -u -r1.7 -r1.4.6.2 Index: openide/fs/src/org/openide/filesystems/MultiFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/MultiFileSystem.java,v retrieving revision 1.5 retrieving revision 1.2.6.1 diff -u -r1.5 -r1.2.6.1 Index: openide/fs/src/org/openide/filesystems/NbfsUtil.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/NbfsUtil.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/fs/src/org/openide/filesystems/PathElements.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/PathElements.java,v retrieving revision 1.3 retrieving revision 1.2.6.1 diff -u -r1.3 -r1.2.6.1 Index: openide/fs/src/org/openide/filesystems/RefreshRequest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/RefreshRequest.java,v retrieving revision 1.5 retrieving revision 1.2.6.1 diff -u -r1.5 -r1.2.6.1 Index: openide/fs/src/org/openide/filesystems/Repository.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/Repository.java,v retrieving revision 1.6 retrieving revision 1.4.6.1 diff -u -r1.6 -r1.4.6.1 Index: openide/fs/src/org/openide/filesystems/URLMapper.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/URLMapper.java,v retrieving revision 1.9 retrieving revision 1.5.6.2 diff -u -r1.9 -r1.5.6.2 Index: openide/fs/src/org/openide/filesystems/XMLFileSystem.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/XMLFileSystem.java,v retrieving revision 1.14 retrieving revision 1.9.6.2 diff -u -r1.14 -r1.9.6.2 Index: openide/fs/src/org/openide/filesystems/XMLMapAttr.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/src/org/openide/filesystems/XMLMapAttr.java,v retrieving revision 1.5 retrieving revision 1.3.6.2 diff -u -r1.5 -r1.3.6.2 Index: openide/fs/test/cfg-unit.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/cfg-unit.xml,v retrieving revision 1.3 retrieving revision 1.1.56.1 diff -u -r1.3 -r1.1.56.1 Index: openide/fs/test/unit/src/org/openide/filesystems/AttributesTestHidden.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/AttributesTestHidden.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/fs/test/unit/src/org/openide/filesystems/FileObject75826Test.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/FileObject75826Test.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 Index: openide/fs/test/unit/src/org/openide/filesystems/FileObjectTestHid.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/FileObjectTestHid.java,v retrieving revision 1.7 retrieving revision 1.5.6.1 diff -u -r1.7 -r1.5.6.1 Index: openide/fs/test/unit/src/org/openide/filesystems/IsArchiveFileTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/IsArchiveFileTest.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/fs/test/unit/src/org/openide/filesystems/MIMESupport48486Test.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/MIMESupport48486Test.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/fs/test/unit/src/org/openide/filesystems/MIMESupport69049Test.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/MIMESupport69049Test.java,v retrieving revision 1.8 retrieving revision 1.7.4.1 diff -u -r1.8 -r1.7.4.1 Index: openide/fs/test/unit/src/org/openide/filesystems/data/Attributes.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/fs/test/unit/src/org/openide/filesystems/data/Attributes.xml,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/loaders/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/manifest.mf,v retrieving revision 1.28 retrieving revision 1.27.12.1 diff -u -r1.28 -r1.27.12.1 Index: openide/loaders/api/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/api/apichanges.xml,v retrieving revision 1.21 retrieving revision 1.19.28.2 diff -u -r1.21 -r1.19.28.2 Index: openide/loaders/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/nbproject/project.properties,v retrieving revision 1.11 retrieving revision 1.10.28.1 diff -u -r1.11 -r1.10.28.1 Index: openide/loaders/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/nbproject/project.xml,v retrieving revision 1.14 retrieving revision 1.13.6.1 diff -u -r1.14 -r1.13.6.1 Index: openide/loaders/src/org/openide/loaders/DataFolder.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/DataFolder.java,v retrieving revision 1.48 retrieving revision 1.46.6.2 diff -u -r1.48 -r1.46.6.2 Index: openide/loaders/src/org/openide/loaders/DataNode.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/DataNode.java,v retrieving revision 1.26 retrieving revision 1.24.12.2 diff -u -r1.26 -r1.24.12.2 Index: openide/loaders/src/org/openide/loaders/DataObjectPool.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/DataObjectPool.java,v retrieving revision 1.36 retrieving revision 1.35.6.1 diff -u -r1.36 -r1.35.6.1 Index: openide/loaders/src/org/openide/loaders/FolderChildren.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/FolderChildren.java,v retrieving revision 1.17 retrieving revision 1.16.6.1 diff -u -r1.17 -r1.16.6.1 Index: openide/loaders/src/org/openide/loaders/FolderList.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/FolderList.java,v retrieving revision 1.17 retrieving revision 1.16.6.1 diff -u -r1.17 -r1.16.6.1 Index: openide/loaders/src/org/openide/loaders/InstanceDataObject.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/src/org/openide/loaders/InstanceDataObject.java,v retrieving revision 1.30 retrieving revision 1.29.6.1 diff -u -r1.30 -r1.29.6.1 Index: openide/loaders/test/unit/src/org/openide/actions/SaveActionTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/actions/SaveActionTest.java,v retrieving revision 1.3 retrieving revision 1.2.12.1 diff -u -r1.3 -r1.2.12.1 Index: openide/loaders/test/unit/src/org/openide/actions/SaveAllActionTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/actions/SaveAllActionTest.java,v retrieving revision 1.4 retrieving revision 1.3.12.1 diff -u -r1.4 -r1.3.12.1 Index: openide/loaders/test/unit/src/org/openide/loaders/CanYouCreateFolderLookupFromHandleFindTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/CanYouCreateFolderLookupFromHandleFindTest.java,v retrieving revision 1.2 retrieving revision 1.1.36.1 diff -u -r1.2 -r1.1.36.1 Index: openide/loaders/test/unit/src/org/openide/loaders/CanYouQueryFolderLookupFromHandleFindTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/CanYouQueryFolderLookupFromHandleFindTest.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: openide/loaders/test/unit/src/org/openide/loaders/DataFolderPasteTypesTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/DataFolderPasteTypesTest.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/loaders/test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: openide/loaders/test/unit/src/org/openide/loaders/DragAndDropDataNodeTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/DragAndDropDataNodeTest.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/loaders/test/unit/src/org/openide/loaders/FolderListTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/loaders/test/unit/src/org/openide/loaders/FolderListTest.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/masterfs/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/apichanges.xml,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -u -r1.2 -r1.2.4.1 Index: openide/masterfs/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/manifest.mf,v retrieving revision 1.15 retrieving revision 1.14.12.1 diff -u -r1.15 -r1.14.12.1 Index: openide/masterfs/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/nbproject/project.properties,v retrieving revision 1.10 retrieving revision 1.9.56.1 diff -u -r1.10 -r1.9.56.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java,v retrieving revision 1.50 retrieving revision 1.49.2.1 diff -u -r1.50 -r1.49.2.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/Bundle.properties,v retrieving revision 1.8 retrieving revision 1.7.12.1 diff -u -r1.8 -r1.7.12.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenSupport.java,v retrieving revision 1.12 retrieving revision 1.11.4.1 diff -u -r1.12 -r1.11.4.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/BaseFileObj.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/BaseFileObj.java,v retrieving revision 1.23 retrieving revision 1.21.2.1 diff -u -r1.23 -r1.21.2.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObj.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObj.java,v retrieving revision 1.20 retrieving revision 1.18.4.1 diff -u -r1.20 -r1.18.4.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactory.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactory.java,v retrieving revision 1.15 retrieving revision 1.14.28.1 diff -u -r1.15 -r1.14.28.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObj.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObj.java,v retrieving revision 1.21 retrieving revision 1.19.4.1 diff -u -r1.21 -r1.19.4.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/FileName.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/FileName.java,v retrieving revision 1.8 retrieving revision 1.7.4.1 diff -u -r1.8 -r1.7.4.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/FileNaming.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/FileNaming.java,v retrieving revision 1.6 retrieving revision 1.5.4.1 diff -u -r1.6 -r1.5.4.1 Index: openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/NamingFactory.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/NamingFactory.java,v retrieving revision 1.8 retrieving revision 1.7.4.1 diff -u -r1.8 -r1.7.4.1 Index: openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObjTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObjTest.java,v retrieving revision 1.15 retrieving revision 1.11.24.1 diff -u -r1.15 -r1.11.24.1 Index: openide/nodes/src/org/openide/cookies/InstanceCookie.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/nodes/src/org/openide/cookies/InstanceCookie.java,v retrieving revision 1.2 retrieving revision 1.1.56.1 diff -u -r1.2 -r1.1.56.1 Index: openide/nodes/src/org/openide/nodes/Children.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/nodes/src/org/openide/nodes/Children.java,v retrieving revision 1.13 retrieving revision 1.11.6.1 diff -u -r1.13 -r1.11.6.1 Index: openide/nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java,v retrieving revision 1.8 retrieving revision 1.7.6.1 diff -u -r1.8 -r1.7.6.1 Index: openide/test/unit/src/org/openide/explorer/ExplorerPanelTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/test/unit/src/org/openide/explorer/ExplorerPanelTest.java,v retrieving revision 1.13 retrieving revision 1.12.76.1 diff -u -r1.13 -r1.12.76.1 Index: openide/text/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/apichanges.xml,v retrieving revision 1.14 retrieving revision 1.11.26.2 diff -u -r1.14 -r1.11.26.2 Index: openide/text/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/manifest.mf,v retrieving revision 1.13 retrieving revision 1.12.10.1 diff -u -r1.13 -r1.12.10.1 Index: openide/text/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/nbproject/project.xml,v retrieving revision 1.8 retrieving revision 1.7.52.1 diff -u -r1.8 -r1.7.52.1 Index: openide/text/src/org/openide/text/CloneableEditorSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/src/org/openide/text/CloneableEditorSupport.java,v retrieving revision 1.17 retrieving revision 1.16.6.1 diff -u -r1.17 -r1.16.6.1 Index: openide/text/src/org/openide/text/QuietEditorPane.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/src/org/openide/text/QuietEditorPane.java,v retrieving revision 1.6 retrieving revision 1.5.24.1 diff -u -r1.6 -r1.5.24.1 Index: openide/text/test/unit/src/org/openide/text/CloneableEditorSupportTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/text/test/unit/src/org/openide/text/CloneableEditorSupportTest.java,v retrieving revision 1.3 retrieving revision 1.2.48.1 diff -u -r1.3 -r1.2.48.1 Index: openide/util/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/apichanges.xml,v retrieving revision 1.14 retrieving revision 1.13.6.1 diff -u -r1.14 -r1.13.6.1 Index: openide/util/nbproject/project.properties =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/nbproject/project.properties,v retrieving revision 1.15 retrieving revision 1.13.6.1 diff -u -r1.15 -r1.13.6.1 Index: openide/util/src/org/netbeans/modules/openide/util/ActionsBridge.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/netbeans/modules/openide/util/ActionsBridge.java,v retrieving revision 1.3 retrieving revision 1.2.58.1 diff -u -r1.3 -r1.2.58.1 Index: openide/util/src/org/openide/ErrorManager.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/ErrorManager.java,v retrieving revision 1.7 retrieving revision 1.6.6.8 diff -u -r1.7 -r1.6.6.8 --- openide/util/src/org/openide/ErrorManager.java 2 Jun 2006 18:00:20 -0000 1.7 +++ openide/util/src/org/openide/ErrorManager.java 9 Jun 2006 12:29:00 -0000 1.6.6.8 @@ -13,12 +13,20 @@ package org.openide; +import java.io.IOException; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; import java.util.Collection; import java.util.Enumeration; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.ResourceBundle; import java.util.Set; +import java.util.concurrent.Callable; +import java.util.logging.Formatter; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; @@ -214,6 +222,7 @@ * * * @author Jaroslav Tulach, Jesse Glick + * @deprecated */ public abstract class ErrorManager extends Object { // XXX note that these levels accidentally used hex rather than binary, @@ -611,15 +620,11 @@ } }; rec.setResourceBundle(rb); - rec.setResourceBundleName("msg"); // NOI18N + rec.setMessage("msg"); // NOI18N } - Throwable last = t; - while (last.getCause() != null) { - last = last.getCause(); - } - - last.initCause(new LogException(rec)); + AnnException ann = AnnException.findOrCreate(t, true); + ann.addRecord(rec); return t; } @@ -635,9 +640,9 @@ /** Calls all delegates. */ public void notify(int severity, Throwable t) { if (delegates.isEmpty()) { + if (enterLogger()) return; try { - if (enterLogger()) return; - logger().log(convertSeverity(severity, true, Level.SEVERE), t.getMessage(), t); + logger().log(convertSeverity(severity, true, OwnLevel.UNKNOWN), t.getMessage(), t); } finally { exitLogger(); } @@ -668,8 +673,8 @@ if (delegates.isEmpty()) { Level sev = convertSeverity(severity, false, Level.FINE); + if (enterLogger()) return; try { - if (enterLogger()) return; logger().log(sev, s); } finally { exitLogger(); @@ -691,7 +696,7 @@ } else if (severity >= EXCEPTION) { sev = Level.SEVERE; } else if (severity >= USER) { - sev = Level.INFO; + sev = OwnLevel.USER; } else if (severity >= WARNING) { sev = Level.WARNING; } else if (severity >= INFORMATIONAL) { @@ -811,15 +816,94 @@ /** An exception that has a log record associated with itself, so * the NbErrorManager can extract info about the annotation. */ - private static final class LogException extends Exception implements Lookup.Provider { - private Lookup lookup; - - public LogException(LogRecord rec) { - this.lookup = Lookups.singleton(rec); + private static final class AnnException extends Exception implements Callable { + private List records; + + public String getMessage() { + StringBuilder sb = new StringBuilder(); + String sep = ""; + for (LogRecord r : records) { + if (r.getMessage() != null) { + sb.append(sep); + sb.append(r.getMessage()); + sep = "\n"; + } + } + return sb.toString(); } - public Lookup getLookup() { - return this.lookup; + static AnnException findOrCreate(Throwable t, boolean create) { + if (t instanceof AnnException) { + return (AnnException)t; + } + if (t.getCause() == null) { + if (create) { + t.initCause(new AnnException()); + } + return (AnnException)t.getCause(); + } + return findOrCreate(t.getCause(), create); + } + + private AnnException() { + } + + public synchronized void addRecord(LogRecord rec) { + if (records == null) { + records = new ArrayList(); + } + records.add(rec); + } + + public LogRecord[] call() { + List r = records; + LogRecord[] empty = new LogRecord[0]; + return r == null ? empty : r.toArray(empty); + } + + public void printStackTrace(PrintStream s) { + super.printStackTrace(s); + logRecords(s); + } + + public void printStackTrace(PrintWriter s) { + super.printStackTrace(s); + logRecords(s); + } + + public void printStackTrace() { + printStackTrace(System.err); + } + + private void logRecords(Appendable a) { + List r = records; + if (r == null) { + return; + } + try { + + for (LogRecord log : r) { + if (log.getMessage() != null) { + a.append(log.getMessage()).append("\n");; + } + if (log.getThrown() != null) { + StringWriter w = new StringWriter(); + log.getThrown().printStackTrace(new PrintWriter(w)); + a.append(w.toString()).append("\n"); + } + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + } // end AnnException + + private static final class OwnLevel extends Level { + public static final Level USER = new OwnLevel("USER", 1973); // NOI18N + public static final Level UNKNOWN = new OwnLevel("SEVERE", Level.SEVERE.intValue() + 1); // NOI18N + + private OwnLevel(String s, int i) { + super(s, i); } - } // end LogException + } // end of UserLevel } Index: openide/util/src/org/openide/LifecycleManager.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/LifecycleManager.java,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: openide/util/src/org/openide/ServiceType.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/ServiceType.java,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: openide/util/src/org/openide/util/AsyncInitSupport.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/AsyncInitSupport.java,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: openide/util/src/org/openide/util/ContextAwareAction.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/ContextAwareAction.java,v retrieving revision 1.3 retrieving revision 1.2.58.1 diff -u -r1.3 -r1.2.58.1 Index: openide/util/src/org/openide/util/Enumerations.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Enumerations.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/util/src/org/openide/util/Exceptions.java =================================================================== RCS file: openide/util/src/org/openide/util/Exceptions.java diff -N openide/util/src/org/openide/util/Exceptions.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openide/util/src/org/openide/util/Exceptions.java 9 Jun 2006 06:27:12 -0000 1.1.2.4 @@ -0,0 +1,197 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun + * Microsystems, Inc. All Rights Reserved. + */ +package org.openide.util; + +import java.io.IOException; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.ResourceBundle; +import java.util.concurrent.Callable; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + + +/** Useful utility and methods to work with exceptions. + * + * @since JST-PENDING + */ +public final class Exceptions extends Object { + private Exceptions() { + } + + + public static E attachMessage(E e, String msg) { + AnnException ae = AnnException.findOrCreate(e, true); + LogRecord rec = new LogRecord(Level.ALL, msg); + ae.addRecord(rec); + return e; + } + + public static E attachLocalizedMessage(E e, final String localizedMessage) { + AnnException ae = AnnException.findOrCreate(e, true); + LogRecord rec = new LogRecord(Level.ALL, "msg"); // NOI18N + ResourceBundle rb = new ResourceBundle() { + public Object handleGetObject(String key) { + if ("msg".equals(key)) { // NOI18N + return localizedMessage; + } else { + return null; + } + } + + public Enumeration getKeys() { + return Enumerations.singleton("msg"); // NOI18N + } + }; + rec.setResourceBundle(rb); + ae.addRecord(rec); + return e; + } + + /** Extracts previously attached localized message for a given throwable. + * Complements the {@link Exceptions.attachLocalizedMessage} method. + * + * @param t the exception to search for a message in + * @return localized message attached to provided exception or null + * if no such message has been attached + */ + public static String findLocalizedMessage(Throwable t) { + while (t != null) { + if (t instanceof Callable) { + Object res = null; + try { + res = ((Callable) t).call(); + } catch (Exception ex) { + Logger.global.log(Level.WARNING, null, t); + } + if (res instanceof LogRecord[]) { + for (LogRecord r : (LogRecord[])res) { + ResourceBundle b = r.getResourceBundle(); + if (b != null) { + String msg = b.getString(r.getMessage()); + return msg; + } + } + } + } + t = t.getCause(); + } + return null; + } + + /** Notifies an exception with a severe level. + * JST-PENDING: improve the doc and maybe change the name + */ + public static void printStackTrace(Throwable t) { + Logger.global.log(OwnLevel.UNKNOWN, null, t); + } + + + /** An exception that has a log record associated with itself, so + * the NbErrorManager can extract info about the annotation. + */ + private static final class AnnException extends Exception implements Callable { + private List records; + + public String getMessage() { + StringBuilder sb = new StringBuilder(); + String sep = ""; + for (LogRecord r : records) { + if (r.getMessage() != null) { + sb.append(sep); + sb.append(r.getMessage()); + sep = "\n"; + } + } + return sb.toString(); + } + + static AnnException findOrCreate(Throwable t, boolean create) { + if (t instanceof AnnException) { + return (AnnException)t; + } + if (t.getCause() == null) { + if (create) { + t.initCause(new AnnException()); + } + return (AnnException)t.getCause(); + } + return findOrCreate(t.getCause(), create); + } + + private AnnException() { + } + + public synchronized void addRecord(LogRecord rec) { + if (records == null) { + records = new ArrayList(); + } + records.add(rec); + } + + public LogRecord[] call() { + List r = records; + LogRecord[] empty = new LogRecord[0]; + return r == null ? empty : r.toArray(empty); + } + + public void printStackTrace(PrintStream s) { + super.printStackTrace(s); + logRecords(s); + } + + public void printStackTrace(PrintWriter s) { + super.printStackTrace(s); + logRecords(s); + } + + public void printStackTrace() { + printStackTrace(System.err); + } + + private void logRecords(Appendable a) { + List r = records; + if (r == null) { + return; + } + try { + + for (LogRecord log : r) { + if (log.getMessage() != null) { + a.append(log.getMessage()).append("\n");; + } + if (log.getThrown() != null) { + StringWriter w = new StringWriter(); + log.getThrown().printStackTrace(new PrintWriter(w)); + a.append(w.toString()).append("\n"); + } + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + } // end AnnException + private static final class OwnLevel extends Level { + public static final Level UNKNOWN = new OwnLevel("SEVERE", Level.SEVERE.intValue() + 1); // NOI18N + + private OwnLevel(String s, int i) { + super(s, i); + } + } // end of OwnLevel +} Index: openide/util/src/org/openide/util/HelpCtx.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/HelpCtx.java,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/util/src/org/openide/util/IconManager.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/IconManager.java,v retrieving revision 1.9 retrieving revision 1.5.2.2 diff -u -r1.9 -r1.5.2.2 Index: openide/util/src/org/openide/util/Lookup.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Lookup.java,v retrieving revision 1.8 retrieving revision 1.7.6.1 diff -u -r1.8 -r1.7.6.1 Index: openide/util/src/org/openide/util/Mutex.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Mutex.java,v retrieving revision 1.11 retrieving revision 1.8.6.3 diff -u -r1.11 -r1.8.6.3 Index: openide/util/src/org/openide/util/NbBundle.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/NbBundle.java,v retrieving revision 1.17 retrieving revision 1.10.6.4 diff -u -r1.17 -r1.10.6.4 Index: openide/util/src/org/openide/util/NbCollections.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/NbCollections.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/util/src/org/openide/util/Queue.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Queue.java,v retrieving revision 1.3 retrieving revision 1.2.8.1 diff -u -r1.3 -r1.2.8.1 Index: openide/util/src/org/openide/util/RequestProcessor.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/RequestProcessor.java,v retrieving revision 1.16 retrieving revision 1.15.6.1 diff -u -r1.16 -r1.15.6.1 Index: openide/util/src/org/openide/util/Union2.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Union2.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/util/src/org/openide/util/Utilities.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/Utilities.java,v retrieving revision 1.16 retrieving revision 1.14.6.2 diff -u -r1.16 -r1.14.6.2 Index: openide/util/src/org/openide/util/actions/ActionPerformer.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/actions/ActionPerformer.java,v retrieving revision 1.3 retrieving revision 1.2.12.1 diff -u -r1.3 -r1.2.12.1 Index: openide/util/src/org/openide/util/actions/CallableSystemAction.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/actions/CallableSystemAction.java,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: openide/util/src/org/openide/util/actions/CallbackSystemAction.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/actions/CallbackSystemAction.java,v retrieving revision 1.10 retrieving revision 1.9.6.1 diff -u -r1.10 -r1.9.6.1 Index: openide/util/src/org/openide/util/actions/SystemAction.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/actions/SystemAction.java,v retrieving revision 1.8 retrieving revision 1.7.6.1 diff -u -r1.8 -r1.7.6.1 Index: openide/util/src/org/openide/util/doc-files/logging.html =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/doc-files/logging.html,v retrieving revision 1.4 retrieving revision 1.3.6.1 diff -u -r1.4 -r1.3.6.1 Index: openide/util/src/org/openide/util/io/FoldingIOException.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/src/org/openide/util/io/FoldingIOException.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: openide/util/test/.cvsignore =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/.cvsignore,v retrieving revision 1.2 retrieving revision 1.1.60.1 diff -u -r1.2 -r1.1.60.1 Index: openide/util/test/unit/src/org/openide/ErrorManagerCyclicDepTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/ErrorManagerCyclicDepTest.java,v retrieving revision 1.2 retrieving revision 1.2.6.2 diff -u -r1.2 -r1.2.6.2 Index: openide/util/test/unit/src/org/openide/ErrorManagerDelegatesToLoggingTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/ErrorManagerDelegatesToLoggingTest.java,v retrieving revision 1.2 retrieving revision 1.2.6.4 diff -u -r1.2 -r1.2.6.4 --- openide/util/test/unit/src/org/openide/ErrorManagerDelegatesToLoggingTest.java 4 Apr 2006 15:06:04 -0000 1.2 +++ openide/util/test/unit/src/org/openide/ErrorManagerDelegatesToLoggingTest.java 5 Jun 2006 13:27:24 -0000 1.2.6.4 @@ -14,7 +14,9 @@ package org.openide; import java.io.IOException; +import java.io.PrintWriter; import java.io.StringBufferInputStream; +import java.io.StringWriter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogManager; @@ -86,6 +88,40 @@ assertEquals ("attachAnnotations must return the same exception", t, value); } + + public void testThatWeNotifyAnException() throws Exception { + Throwable t = new NullPointerException("npe"); + Throwable v = new ClassNotFoundException("cnf", t); + + Throwable a = new IOException(); + ErrorManager.getDefault().annotate(a, v); + ErrorManager.getDefault().notify(a); + + assertEquals("Last throwable is a", a, MyHandler.lastThrowable); + assertNotNull("And it has a cause", MyHandler.lastThrowable.getCause()); + + StringWriter w = new StringWriter(); + MyHandler.lastThrowable.getCause().printStackTrace(new PrintWriter(w)); + String msg = w.toString(); + + if (msg.indexOf("npe") == -1) fail("there should be npe: " + msg); + if (msg.indexOf("cnf") == -1) fail("there should be cnf: " + msg); + + } + + public void testAnnotatedMessagesShallBePresentInPrintStackTrace() throws Exception { + Throwable t = new NullPointerException("npe"); + + ErrorManager.getDefault().annotate(t, ErrorManager.UNKNOWN, "Ahoj Null!", null, null, null); + + StringWriter w = new StringWriter(); + t.printStackTrace(new PrintWriter(w)); + String msg = w.toString(); + + if (msg.indexOf("npe") == -1) fail("there should be npe: " + msg); + if (msg.indexOf("Ahoj Null") == -1) fail("there should be Ahoj Null: " + msg); + + } // // Manager to delegate to @@ -118,20 +154,16 @@ lastText = record.getMessage(); lastThrowable = record.getThrown(); - if (Level.WARNING == record.getLevel()) { - lastSeverity = ErrorManager.WARNING; - } - if (Level.INFO == record.getLevel()) { + + Level l = record.getLevel(); + if (l.intValue() >= Level.FINEST.intValue()) { lastSeverity = ErrorManager.INFORMATIONAL; } - if (Level.CONFIG == record.getLevel()) { - lastSeverity = ErrorManager.INFORMATIONAL; + if (l.intValue() >= Level.WARNING.intValue()) { + lastSeverity = ErrorManager.WARNING; } - if (Level.SEVERE == record.getLevel()) { + if (l.intValue() >= Level.SEVERE.intValue()) { lastSeverity = ErrorManager.EXCEPTION; - } - if (Level.FINE == record.getLevel()) { - lastSeverity = ErrorManager.INFORMATIONAL; } } Index: openide/util/test/unit/src/org/openide/util/ExceptionsTest.java =================================================================== RCS file: openide/util/test/unit/src/org/openide/util/ExceptionsTest.java diff -N openide/util/test/unit/src/org/openide/util/ExceptionsTest.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openide/util/test/unit/src/org/openide/util/ExceptionsTest.java 2 Jun 2006 12:14:05 -0000 1.1.2.1 @@ -0,0 +1,68 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.openide.util; + +import java.io.PrintWriter; +import java.io.StringWriter; +import junit.framework.TestCase; +import junit.framework.*; + +/** + * + * @author Jaroslav Tulach + */ +public class ExceptionsTest extends TestCase { + + public ExceptionsTest(String testName) { + super(testName); + } + + protected void setUp() throws Exception { + } + + protected void tearDown() throws Exception { + } + + public void testAttachMessage() { + Exception e = new Exception("Help"); + String msg = "me please"; + + Exception result = Exceptions.attachMessage(e, msg); + + assertSame(result, e); + + StringWriter w = new StringWriter(); + result.printStackTrace(new PrintWriter(w)); + + String m = w.toString(); + + if (m.indexOf(msg) == -1) { + fail(msg + " shall be part of output:\n" + m); + } + } + + public void testAttachLocalizedMessage() { + Exception e = new Exception("Help"); + String msg = "me please"; + + Exception expResult = e; + Exception result = Exceptions.attachLocalizedMessage(e, msg); + assertEquals(expResult, result); + + String fnd = Exceptions.findLocalizedMessage(e); + + assertEquals("The same msg", msg, fnd); + } + +} Index: openide/util/test/unit/src/org/openide/util/MutexTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/MutexTest.java,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: openide/util/test/unit/src/org/openide/util/NbBundleTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/NbBundleTest.java,v retrieving revision 1.5 retrieving revision 1.2.48.1 diff -u -r1.5 -r1.2.48.1 Index: openide/util/test/unit/src/org/openide/util/NbCollectionsTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/NbCollectionsTest.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/util/test/unit/src/org/openide/util/Union2Test.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/Union2Test.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/util/test/unit/src/org/openide/util/UtilitiesTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/UtilitiesTest.java,v retrieving revision 1.5 retrieving revision 1.4.6.1 diff -u -r1.5 -r1.4.6.1 Index: openide/util/test/unit/src/org/openide/util/WeakListenersTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/util/test/unit/src/org/openide/util/WeakListenersTest.java,v retrieving revision 1.7 retrieving revision 1.6.6.1 diff -u -r1.7 -r1.6.6.1 Index: openide/windows/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/windows/apichanges.xml,v retrieving revision 1.4 retrieving revision 1.3.26.1 diff -u -r1.4 -r1.3.26.1 Index: openide/windows/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/windows/manifest.mf,v retrieving revision 1.8 retrieving revision 1.7.12.1 diff -u -r1.8 -r1.7.12.1 Index: openide/windows/src/org/openide/windows/ExternalDropHandler.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/windows/src/org/openide/windows/ExternalDropHandler.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 Index: openide/windows/src/org/openide/windows/doc-files/api.html =================================================================== RCS file: /shared/data/ccvs/repository/openide/windows/src/org/openide/windows/doc-files/api.html,v retrieving revision 1.6 retrieving revision 1.5.6.1 diff -u -r1.6 -r1.5.6.1 Index: openide/windows/test/unit/src/org/openide/windows/GlobalContextImplTest.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/windows/test/unit/src/org/openide/windows/GlobalContextImplTest.java,v retrieving revision 1.2 retrieving revision 1.1.30.1 diff -u -r1.2 -r1.1.30.1