peterreilly 2004/04/23 09:57:26 Modified: . Tag: ANT_16_BRANCH WHATSNEW src/main/org/apache/tools/ant/taskdefs/optional/jdepend Tag: ANT_16_BRANCH JDependTask.java Log: sync Revision Changes Path No revision No revision 1.503.2.86 +2 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.503.2.85 retrieving revision 1.503.2.86 diff -u -r1.503.2.85 -r1.503.2.86 --- WHATSNEW 23 Apr 2004 15:47:31 -0000 1.503.2.85 +++ WHATSNEW 23 Apr 2004 16:57:26 -0000 1.503.2.86 @@ -164,6 +164,8 @@ * failOnAny attribute for <parallel> was broken. Bugzilla Report 28122. +* JDependTask did not close an output file. Bugzilla Report 28557. + Other changes: -------------- No revision No revision 1.22.2.8 +83 -72 ant/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java Index: JDependTask.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java,v retrieving revision 1.22.2.7 retrieving revision 1.22.2.8 diff -u -r1.22.2.7 -r1.22.2.8 --- JDependTask.java 9 Mar 2004 17:01:48 -0000 1.22.2.7 +++ JDependTask.java 23 Apr 2004 16:57:26 -0000 1.22.2.8 @@ -453,8 +453,8 @@ jdepend = new jdepend.textui.JDepend(); } + FileWriter fw = null; if (getOutputFile() != null) { - FileWriter fw; try { fw = new FileWriter(getOutputFile().getPath()); } catch (IOException e) { @@ -467,87 +467,98 @@ log("Output to be stored in " + getOutputFile().getPath()); } - if (getClassespath() != null) { - // This is the new, better way - use classespath instead - // of sourcespath. The code is currently the same - you - // need class files in a directory to use this - jar files - // coming soon.... - String[] classesPath = getClassespath().list(); - for (int i = 0; i < classesPath.length; i++) { - File f = new File(classesPath[i]); - // not necessary as JDepend would fail, but why loose - // some time? - if (!f.exists() || !f.isDirectory()) { - String msg = "\"" - + f.getPath() - + "\" does not represent a valid" - + " directory. JDepend would fail."; - log(msg); - throw new BuildException(msg); - } - try { - jdepend.addDirectory(f.getPath()); - } catch (IOException e) { - String msg = - "JDepend Failed when adding a class directory: " - + e.getMessage(); - log(msg); - throw new BuildException(msg); + + try { + if (getClassespath() != null) { + // This is the new, better way - use classespath instead + // of sourcespath. The code is currently the same - you + // need class files in a directory to use this - jar files + // coming soon.... + String[] classesPath = getClassespath().list(); + for (int i = 0; i < classesPath.length; i++) { + File f = new File(classesPath[i]); + // not necessary as JDepend would fail, but why loose + // some time? + if (!f.exists() || !f.isDirectory()) { + String msg = "\"" + + f.getPath() + + "\" does not represent a valid" + + " directory. JDepend would fail."; + log(msg); + throw new BuildException(msg); + } + try { + jdepend.addDirectory(f.getPath()); + } catch (IOException e) { + String msg = + "JDepend Failed when adding a class directory: " + + e.getMessage(); + log(msg); + throw new BuildException(msg); + } + } + + } else if (getSourcespath() != null) { + + // This is the old way and is deprecated - classespath is + // the right way to do this and is above + String[] sourcesPath = getSourcespath().list(); + for (int i = 0; i < sourcesPath.length; i++) { + File f = new File(sourcesPath[i]); + + // not necessary as JDepend would fail, but why loose + // some time? + if (!f.exists() || !f.isDirectory()) { + String msg = "\"" + + f.getPath() + + "\" does not represent a valid" + + " directory. JDepend would fail."; + log(msg); + throw new BuildException(msg); + } + try { + jdepend.addDirectory(f.getPath()); + } catch (IOException e) { + String msg = + "JDepend Failed when adding a source directory: " + + e.getMessage(); + log(msg); + throw new BuildException(msg); + } } } - } else if (getSourcespath() != null) { - - // This is the old way and is deprecated - classespath is - // the right way to do this and is above - String[] sourcesPath = getSourcespath().list(); - for (int i = 0; i < sourcesPath.length; i++) { - File f = new File(sourcesPath[i]); - - // not necessary as JDepend would fail, but why loose - // some time? - if (!f.exists() || !f.isDirectory()) { - String msg = "\"" - + f.getPath() - + "\" does not represent a valid" - + " directory. JDepend would fail."; - log(msg); - throw new BuildException(msg); - } - try { - jdepend.addDirectory(f.getPath()); - } catch (IOException e) { - String msg = - "JDepend Failed when adding a source directory: " - + e.getMessage(); - log(msg); - throw new BuildException(msg); + // This bit turns <exclude> child tags into patters to ignore + String[] patterns = defaultPatterns.getExcludePatterns(getProject()); + if (patterns != null && patterns.length > 0) { + if (setFilter != null) { + Vector v = new Vector(); + for (int i = 0; i < patterns.length; i++) { + v.addElement(patterns[i]); + } + try { + Object o = packageFilterC.newInstance(new Object[] {v}); + setFilter.invoke(jdepend, new Object[] {o}); + } catch (Throwable e) { + log("excludes will be ignored as JDepend doesn't like me: " + + e.getMessage(), Project.MSG_WARN); + } + } else { + log("Sorry, your version of JDepend doesn't support excludes", + Project.MSG_WARN); } } - } - // This bit turns <exclude> child tags into patters to ignore - String[] patterns = defaultPatterns.getExcludePatterns(getProject()); - if (patterns != null && patterns.length > 0) { - if (setFilter != null) { - Vector v = new Vector(); - for (int i = 0; i < patterns.length; i++) { - v.addElement(patterns[i]); - } + jdepend.analyze(); + } finally { + if (fw != null) { try { - Object o = packageFilterC.newInstance(new Object[] {v}); - setFilter.invoke(jdepend, new Object[] {o}); - } catch (Throwable e) { - log("excludes will be ignored as JDepend doesn't like me: " - + e.getMessage(), Project.MSG_WARN); + fw.close(); + } catch (Throwable t) { + // Ignore } - } else { - log("Sorry, your version of JDepend doesn't support excludes", - Project.MSG_WARN); } } - - jdepend.analyze(); return SUCCESS; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]