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]
