Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -r0ee1d5bdb5b4710833c79697c90295f56a8d3ed6 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 0ee1d5bdb5b4710833c79697c90295f56a8d3ed6) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -72,6 +72,7 @@ import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.DesignDetailDTO; import org.lamsfoundation.lams.learningdesign.dto.LearningDesignDTO; +import org.lamsfoundation.lams.learningdesign.dto.LearningLibraryDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException; import org.lamsfoundation.lams.learningdesign.service.ILearningDesignService; Index: lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java =================================================================== diff -u -r93a2eb4b1cd2aa86e03b66ba37ff61c4adff4f76 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision 93a2eb4b1cd2aa86e03b66ba37ff61c4adff4f76) +++ lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -1178,7 +1178,7 @@ throws ServletException { File designFile = null; try { - designFile = new File(FileUtil.TEMP_DIR, fileName); + designFile = new File(FileUtil.getTempDir(), fileName); InputStream inputStream = getContentHandler().getFileNode(fileUuid).getFile(); copyFileFromRepository(inputStream, designFile); } catch (Exception e) { Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java =================================================================== diff -u -r80405cd7fe447a626fd5e1b62584ccfeae60ed15 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 80405cd7fe447a626fd5e1b62584ccfeae60ed15) +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -85,7 +85,6 @@ private static final long numMilliSecondsInADay = 24 * 60 * 60 * 1000; protected static final String prefix = "lamstmp_"; // protected rather than private to suit junit test - public static final String TEMP_DIR = Configuration.get(ConfigurationKeys.LAMS_TEMP_DIR); /** * Deleting a directory using File.delete() only works if the directory is @@ -192,7 +191,7 @@ */ public static String createTempDirectory(String suffix) throws FileUtilException { - String tempSysDirName = FileUtil.TEMP_DIR; + String tempSysDirName = getTempDir(); if (tempSysDirName == null) { throw new FileUtilException( "No temporary directory known to the server. [System.getProperty( \"java.io.tmpdir\" ) returns null. ]\n Cannot upload package."); @@ -342,7 +341,7 @@ // get dump directory name and make sure directory exists String dumpDirectory = Configuration.get(ConfigurationKeys.LAMS_DUMP_DIR); if (dumpDirectory == null) { - dumpDirectory = FileUtil.TEMP_DIR; + dumpDirectory = getTempDir(); } createDirectory(dumpDirectory); @@ -596,7 +595,7 @@ FileUtil.log.info("Getting all temp zipfile expanded directories before " + date.toString() + " (server time) (" + newestDateToKeep + ")"); - File tempSysDir = new File(FileUtil.TEMP_DIR); + File tempSysDir = new File(getTempDir()); File candidates[] = tempSysDir.listFiles(new TempDirectoryFilter(newestDateToKeep, FileUtil.log)); return candidates; } @@ -966,4 +965,31 @@ } csv.close(); } + + /** + * Gets the temp dir, creates if not exists, returns java system temp dir if inaccessible + * @return + */ + public static String getTempDir() { + + String ret = Configuration.get(ConfigurationKeys.LAMS_TEMP_DIR); + File tempDir = new File(ret); + + // Create if not exists + if (!tempDir.exists()) { + boolean success = tempDir.mkdirs(); + if (!success) { + log.error("Could not create temp directory: " + ret); + return System.getProperty("java.io.tmpdir"); + } + } + + // Return java temp dir if not accessible + if (!tempDir.canWrite()) { + return System.getProperty("java.io.tmpdir"); + } else { + return ret; + } + + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java =================================================================== diff -u -re7046600ee8bfa53d053e0aee33a16b52ad0e8e2 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java (.../AbstractExportPortfolioServlet.java) (revision e7046600ee8bfa53d053e0aee33a16b52ad0e8e2) +++ lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java (.../AbstractExportPortfolioServlet.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -105,7 +105,7 @@ directoryName = WebUtil.readStrParam(request, AttributeNames.PARAM_DIRECTORY_NAME); //put the path together again, since the given directory was a relative one. - String absoluteDirectoryPath = FileUtil.TEMP_DIR + File.separator + directoryName; + String absoluteDirectoryPath = FileUtil.getTempDir() + File.separator + directoryName; if (log.isDebugEnabled()) { log.debug("Directory name to store files is "+directoryName); Index: lams_common/test/java/org/lamsfoundation/lams/util/zipfile/TestZipFileUtil.java =================================================================== diff -u -r21fe1f907aafc4b1e2eb017ee98fe10769d74322 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_common/test/java/org/lamsfoundation/lams/util/zipfile/TestZipFileUtil.java (.../TestZipFileUtil.java) (revision 21fe1f907aafc4b1e2eb017ee98fe10769d74322) +++ lams_common/test/java/org/lamsfoundation/lams/util/zipfile/TestZipFileUtil.java (.../TestZipFileUtil.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -307,7 +307,7 @@ public void testCreateZipFile2() throws FileUtilException, IOException, ZipFileUtilException { String directoryToZip = "ZipTestDirectory"; - String directoryToPlaceZip = FileUtil.TEMP_DIR + File.separator + "ZipTmpDir"; + String directoryToPlaceZip = FileUtil.getTempDir() + File.separator + "ZipTmpDir"; String zipFileName= "testCreateZipFile.zip"; if (createTestDirectoryAndFiles(directoryToZip)) Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java =================================================================== diff -u -ra87913cfb8ca8690ccc4a8a648d6958fcbd939d5 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java (.../SimpleRepository.java) (revision a87913cfb8ca8690ccc4a8a648d6958fcbd939d5) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java (.../SimpleRepository.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -672,8 +672,8 @@ if(toFileName == null){ IValue prop = node.getProperty(PropertyName.FILENAME); toFileName = prop != null ? prop.getString() : null; - FileUtil.createDirectory(FileUtil.TEMP_DIR); - toFileName = FileUtil.getFullPath(FileUtil.TEMP_DIR,toFileName); + FileUtil.createDirectory(FileUtil.getTempDir()); + toFileName = FileUtil.getFullPath(FileUtil.getTempDir(),toFileName); } ZipFileUtil.createZipFile(FileUtil.getFileName(toFileName),tempRoot,FileUtil.getFileDirectory(toFileName)); } @@ -707,8 +707,8 @@ if(toFileName == null){ IValue prop = node.getProperty(PropertyName.FILENAME); toFileName = prop != null ? prop.getString() : null; - FileUtil.createDirectory(FileUtil.TEMP_DIR); - toFileName = FileUtil.getFullPath(FileUtil.TEMP_DIR,toFileName); + FileUtil.createDirectory(FileUtil.getTempDir()); + toFileName = FileUtil.getFullPath(FileUtil.getTempDir(),toFileName); } OutputStream os = new FileOutputStream(toFileName); byte[] out = new byte[8 * 1024]; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java =================================================================== diff -u -r7998a31f6d7d4f1eef3e866bafef22caa012eb7a -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision 7998a31f6d7d4f1eef3e866bafef22caa012eb7a) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -326,7 +326,7 @@ // for security reasons, append the relative directory name to the end of the export url instead of the // whole path - String relativePath = activitySubDirectory.substring(FileUtil.TEMP_DIR.length() + 1, activitySubDirectory + String relativePath = activitySubDirectory.substring(FileUtil.getTempDir().length() + 1, activitySubDirectory .length()); // Some activities (parallel, optional, sequence) don't have export urls. Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java =================================================================== diff -u -r3ddc3548281764d3f15622a6943959301b58cc79 -ref4ea7c43ef8851bb1810128fa9a80a9b5893b59 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java (.../ExportDownloadServlet.java) (revision 3ddc3548281764d3f15622a6943959301b58cc79) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java (.../ExportDownloadServlet.java) (revision ef4ea7c43ef8851bb1810128fa9a80a9b5893b59) @@ -99,7 +99,7 @@ private String constructAbsolutePath(String relativePath) { - return FileUtil.TEMP_DIR + File.separator + return FileUtil.getTempDir() + File.separator + getDirname(relativePath) + File.separator + ExportPortfolioConstants.EXPORT_TEMP_FILENAME; }