From: <aki...@us...> - 2006-06-22 19:52:58
|
Revision: 173 Author: akirschbaum Date: 2006-06-22 12:52:42 -0700 (Thu, 22 Jun 2006) ViewCVS: http://svn.sourceforge.net/gridarta/?rev=173&view=rev Log Message: ----------- Prevent crash when collecting archetypes or treasurelists from unreadable or non-existent directories. Now such directories are silently ignored. Modified Paths: -------------- trunk/crossfire/CHANGES.txt trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java trunk/daimonin/src/daieditor/CFTreasureListTree.java trunk/daimonin/src/daieditor/arch/ArchObjectStack.java Modified: trunk/crossfire/CHANGES.txt =================================================================== --- trunk/crossfire/CHANGES.txt 2006-06-22 18:15:11 UTC (rev 172) +++ trunk/crossfire/CHANGES.txt 2006-06-22 19:52:42 UTC (rev 173) @@ -997,3 +997,10 @@ Reduce total memory consumption. Andreas Kirschbaum + +--- 22/06/2006 --- + +Prevent crash when collecting archetypes from unreadable or non-existent +directories. Now such directories are silently ignored. + +Andreas Kirschbaum Modified: trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java =================================================================== --- trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java 2006-06-22 18:15:11 UTC (rev 172) +++ trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java 2006-06-22 19:52:42 UTC (rev 173) @@ -330,9 +330,11 @@ folderLevel++; final String[] children = f.list(); - Arrays.sort(children); - for (int i = 0; i < children.length; i++) { - loadArchFromFiles(new File(f, children[i]), index); + if (children != null) { + Arrays.sort(children); + for (int i = 0; i < children.length; i++) { + loadArchFromFiles(new File(f, children[i]), index); + } } folderLevel--; } Modified: trunk/daimonin/src/daieditor/CFTreasureListTree.java =================================================================== --- trunk/daimonin/src/daieditor/CFTreasureListTree.java 2006-06-22 18:15:11 UTC (rev 172) +++ trunk/daimonin/src/daieditor/CFTreasureListTree.java 2006-06-22 19:52:42 UTC (rev 173) @@ -312,9 +312,11 @@ || name.toLowerCase().endsWith(".tl"); } }); - Arrays.sort(traverse); - for (final String entry : traverse) { - loadTreasureList(fname + File.separator + entry, tmpList, needLink); + if (traverse != null) { + Arrays.sort(traverse); + for (final String entry : traverse) { + loadTreasureList(fname + File.separator + entry, tmpList, needLink); + } } // This was a directory -> nothing to parse return; Modified: trunk/daimonin/src/daieditor/arch/ArchObjectStack.java =================================================================== --- trunk/daimonin/src/daieditor/arch/ArchObjectStack.java 2006-06-22 18:15:11 UTC (rev 172) +++ trunk/daimonin/src/daieditor/arch/ArchObjectStack.java 2006-06-22 19:52:42 UTC (rev 173) @@ -254,9 +254,11 @@ || name.toLowerCase().endsWith(".art"); } }); - Arrays.sort(traverse); - for (final String entry : traverse) { - loadArchesFromArtifacts(fname + File.separator + entry); + if (traverse != null) { + Arrays.sort(traverse); + for (final String entry : traverse) { + loadArchesFromArtifacts(fname + File.separator + entry); + } } // This was a directory -> nothing to parse return; @@ -391,7 +393,9 @@ // now, setup the arch panels if (CMainControl.arcFileFilter.accept(f)) { final String[] entries = f.list(); - Arrays.sort(entries); + if (entries != null) { + Arrays.sort(entries); + } if (!name.equalsIgnoreCase("intern") && !noPanel) { if (folderLevel > 0 && folderLevel < 2) { // add first folders as panels mainControl.addArchPanel(name); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |