+ try {
+ Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});
+ File dir = new File(aDirectory.getRootDirectory(), aSubDirectory);
+
+ if (!isDirectoryValid(aDirectory, dir) || !dir.isDirectory()) {
+ dir = aDirectory.getRootDirectory();
+ aSubDirectory = "";
+ }
+
+ responseData.put("filelist", FileRoutines.getDirectoryContentsAsList(dir, aDirectory.getFilter()));
+
+ if (aDirectory.getRecursive()) {
+ List dirs = new ArrayList();
+ if (!dir.getCanonicalPath().equals(aDirectory.getRootDirectory().getCanonicalPath()))
+ responseData.put("updir", new File(aSubDirectory).getParent());
+
+ dirs.addAll(FileRoutines.getDirectoryContentsAsList(dir, dirFilter));
+
+ responseData.put("dirlist", dirs);
+ }
+ else {
+ responseData.put("dirlist", null);
+ responseData.put("updir", null);
+ }
+
+ responseData.put("subdirectory", aSubDirectory);
+ responseData.put("entry", aDirectory.getName());
+
+ ServletHelper.generateResponse(aResponse.getWriter(), responseData, listGenerator);
+ }
+ catch (Throwable e) {
+ throw new ServletModuleFailure(e);
+ }
+ }