Author: tfmorris
Date: 2008-05-13 09:07:40-0700
New Revision: 14725

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java
   trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java

Log:
Isseu 5077 - make reverse engineering more safe from errors in importers

Modified: trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java?view=diff&rev=14725&p1=trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java&p2=trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java&r1=14724&r2=14725
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java  
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java  
2008-05-13 09:07:40-0700
@@ -530,6 +530,9 @@
             }

             ExplorerEventAdaptor.getInstance().structureChanged();

             Model.getPump().startPumpingEvents();

+            // Should already be closed.  If not, something bad happened, so

+            // make sure it's closed so the user isn't stuck

+            monitor.close();

         }

     }

 

@@ -551,7 +554,7 @@
         try {

             newElements.addAll(currentModule.parseFiles(

                     project, filesLeft, this, monitor));

-        } catch (ImportException e) {

+        } catch (Exception e) {

             problems.append(printToBuffer(e));

         }

         // New style importers don't create diagrams, so we'll do it


Modified: trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java?view=diff&rev=14725&p1=trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java&p2=trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java&r1=14724&r2=14725
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java       
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/reveng/java/JavaImport.java       
2008-05-13 09:07:40-0700
@@ -73,20 +73,23 @@
 
         newElements = new HashSet();
         monitor.updateMainTask(Translator.localize("dialog.import.pass1"));
-        if (settings.getImportLevel() == 
ImportSettings.DETAIL_CLASSIFIER_FEATURE
-                || settings.getImportLevel() == ImportSettings.DETAIL_FULL) {
-            monitor.setMaximumProgress(files.size() * 2);
-            doImportPass(p, files, settings, monitor, 0, 1);
-            if (!monitor.isCanceled()) {
-                monitor.updateMainTask(
-                        Translator.localize("dialog.import.pass2"));
-                doImportPass(p, files, settings, monitor, files.size(), 2);
-            }
-        } else {
-            monitor.setMaximumProgress(files.size() * 2);
-            doImportPass(p, files, settings, monitor, 0, 0);
+        try {
+            if (settings.getImportLevel() == 
ImportSettings.DETAIL_CLASSIFIER_FEATURE
+                    || settings.getImportLevel() == 
ImportSettings.DETAIL_FULL) {
+                monitor.setMaximumProgress(files.size() * 2);
+                doImportPass(p, files, settings, monitor, 0, 1);
+                if (!monitor.isCanceled()) {
+                    monitor.updateMainTask(Translator
+                            .localize("dialog.import.pass2"));
+                    doImportPass(p, files, settings, monitor, files.size(), 2);
+                }
+            } else {
+                monitor.setMaximumProgress(files.size() * 2);
+                doImportPass(p, files, settings, monitor, 0, 0);
+            }
+        } finally {
+            monitor.close();
         }
-        monitor.close();
         return newElements;
     }
 
@@ -106,7 +109,7 @@
             if (file instanceof File) {
                 try {
                     parseFile(p, (File) file, settings, pass);
-                } catch (ImportException e) {
+                } catch (Exception e) {
                     StringWriter sw = new StringWriter();
                     PrintWriter pw = new java.io.PrintWriter(sw);
                     e.printStackTrace(pw);

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to