Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java,v diff -u -r1.88 -r1.89 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 17 Dec 2009 03:44:07 -0000 1.88 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 11 Feb 2010 00:48:15 -0000 1.89 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java,v diff -u -r1.30 -r1.31 --- lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java 8 Jan 2010 03:26:47 -0000 1.30 +++ lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java 11 Feb 2010 00:48:15 -0000 1.31 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java,v diff -u -r1.36 -r1.37 --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java 9 Dec 2009 01:30:05 -0000 1.36 +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java 11 Feb 2010 00:48:16 -0000 1.37 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java,v diff -u -r1.11 -r1.12 --- lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java 21 Nov 2007 00:44:39 -0000 1.11 +++ lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractExportPortfolioServlet.java 11 Feb 2010 00:48:16 -0000 1.12 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/util/zipfile/Attic/TestZipFileUtil.java,v diff -u -r1.9 -r1.10 --- lams_common/test/java/org/lamsfoundation/lams/util/zipfile/TestZipFileUtil.java 3 Apr 2007 03:35:50 -0000 1.9 +++ lams_common/test/java/org/lamsfoundation/lams/util/zipfile/TestZipFileUtil.java 11 Feb 2010 00:48:16 -0000 1.10 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java,v diff -u -r1.14 -r1.15 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java 6 Nov 2007 05:47:54 -0000 1.14 +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java 11 Feb 2010 00:48:16 -0000 1.15 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java,v diff -u -r1.36 -r1.37 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java 20 Aug 2009 04:37:20 -0000 1.36 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java 11 Feb 2010 00:48:16 -0000 1.37 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java,v diff -u -r1.11 -r1.12 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java 4 Feb 2008 02:19:14 -0000 1.11 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/ExportDownloadServlet.java 11 Feb 2010 00:48:16 -0000 1.12 @@ -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; }