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