From 35916677687d040c5f61f6c8d531f4309d9f7174 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Thu, 1 Dec 2022 15:29:07 -0800 Subject: [PATCH] Route all temp file creation through FileUtil for consistency --- .../org/labkey/api/assay/TsvDataHandler.java | 2 +- .../dataiterator/DiskCachingDataIterator.java | 3 ++- .../api/module/ModuleDependencySorter.java | 2 +- .../api/query/AbstractQueryImportAction.java | 3 ++- .../labkey/api/reader/FastaDataLoader.java | 3 ++- api/src/org/labkey/api/reader/TabLoader.java | 2 +- .../labkey/api/reports/report/RReportJob.java | 2 +- .../reports/report/r/view/ConsoleOutput.java | 5 +++-- .../api/reports/report/r/view/HtmlOutput.java | 5 +++-- .../reports/report/r/view/ImageOutput.java | 5 +++-- .../api/reports/report/r/view/JsonOutput.java | 5 +++-- .../api/reports/report/r/view/TextOutput.java | 5 +++-- .../api/reports/report/r/view/TsvOutput.java | 5 +++-- api/src/org/labkey/api/util/FileUtil.java | 20 ++++++++++++------- .../labkey/assay/AssayIntegrationTestCase.jsp | 4 ++-- .../admin/ValidateDomainsPipelineJob.java | 3 ++- .../labkey/core/portal/UtilController.java | 2 +- .../core/security/SecurityController.java | 2 +- .../labkey/experiment/ExperimentRunGraph.java | 2 +- .../controllers/exp/ExperimentController.java | 2 +- .../property/PropertyController.java | 5 +++-- .../experiment/pipeline/MoveRunsTask.java | 2 +- internal/src/org/labkey/api/util/FTPUtil.java | 2 +- .../pipeline/analysis/AnalysisController.java | 2 +- .../pipeline/api/WorkDirectoryRemote.java | 4 ++-- .../pipeline/cluster/ClusterStartup.java | 2 +- .../pipeline/mule/test/DummyPipelineJob.java | 3 ++- .../query/olap/OlapSchemaDescriptor.java | 3 ++- .../security/SecurityController.java | 2 +- .../MasterPatientIndexUpdateTask.java | 3 ++- .../labkey/study/reports/ExternalReport.java | 3 ++- 31 files changed, 67 insertions(+), 46 deletions(-) diff --git a/api/src/org/labkey/api/assay/TsvDataHandler.java b/api/src/org/labkey/api/assay/TsvDataHandler.java index 8222ca542da..171d51670d4 100644 --- a/api/src/org/labkey/api/assay/TsvDataHandler.java +++ b/api/src/org/labkey/api/assay/TsvDataHandler.java @@ -156,7 +156,7 @@ public void exportFile(ExpData data, Path dataFile, User user, OutputStream out) if (results.getSize() == 0) return; - File tempFile = File.createTempFile(FileUtil.getBaseName(FileUtil.getFileName(dataFile)), ".tsv"); + File tempFile = FileUtil.createTempFile(FileUtil.getBaseName(FileUtil.getFileName(dataFile)), ".tsv"); // Figure out the subset of columns to actually export in the TSV, see issue 36746 Set ignored = Set.of(FieldKey.fromParts("Run"), FieldKey.fromParts("RowId"), FieldKey.fromParts("DataId"), FieldKey.fromParts("Folder")); diff --git a/api/src/org/labkey/api/dataiterator/DiskCachingDataIterator.java b/api/src/org/labkey/api/dataiterator/DiskCachingDataIterator.java index f73a3494820..eff84861280 100644 --- a/api/src/org/labkey/api/dataiterator/DiskCachingDataIterator.java +++ b/api/src/org/labkey/api/dataiterator/DiskCachingDataIterator.java @@ -9,6 +9,7 @@ import org.junit.Test; import org.labkey.api.arrays.IntegerArray; import org.labkey.api.query.BatchValidationException; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.GUID; import org.labkey.api.util.UnexpectedException; @@ -105,7 +106,7 @@ private void writeToDisk() { try { - _tempFile = File.createTempFile("buffer", "dat"); + _tempFile = FileUtil.createTempFile("buffer", "dat"); _tempFile.deleteOnExit(); _randomAccessFile = new RandomAccessFile(_tempFile, "rw"); _buffer = _randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, 128 * 1024); diff --git a/api/src/org/labkey/api/module/ModuleDependencySorter.java b/api/src/org/labkey/api/module/ModuleDependencySorter.java index 62ac89aaf33..1d964d2d9ad 100644 --- a/api/src/org/labkey/api/module/ModuleDependencySorter.java +++ b/api/src/org/labkey/api/module/ModuleDependencySorter.java @@ -146,7 +146,7 @@ private void graphModuleDependencies(List>> dependencie { File dir = FileUtil.getTempDirectory(); String dot = buildDigraph(dependencies); - File svgFile = File.createTempFile("modules", ".svg", dir); + File svgFile = FileUtil.createTempFile("modules", ".svg", dir); DotRunner runner = new DotRunner(dir, dot); runner.addSvgOutput(svgFile); runner.execute(); diff --git a/api/src/org/labkey/api/query/AbstractQueryImportAction.java b/api/src/org/labkey/api/query/AbstractQueryImportAction.java index 2f5acc3f7bd..7ceda73f203 100644 --- a/api/src/org/labkey/api/query/AbstractQueryImportAction.java +++ b/api/src/org/labkey/api/query/AbstractQueryImportAction.java @@ -53,6 +53,7 @@ import org.labkey.api.security.permissions.UpdatePermission; import org.labkey.api.util.CPUTimer; import org.labkey.api.util.FileStream; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.NetworkDrive; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.util.Pair; @@ -470,7 +471,7 @@ else if (getViewContext().getRequest() instanceof MultipartHttpServletRequest) hasPostData = true; originalName = multipartfile.getOriginalFilename(); // can't read the multipart file twice so create temp file (12800) - dataFile = File.createTempFile("~upload", multipartfile.getOriginalFilename()); + dataFile = FileUtil.createTempFile("~upload", multipartfile.getOriginalFilename()); PipeRoot root = PipelineService.get().findPipelineRoot(getContainer()); if (null != root && (Boolean.parseBoolean(saveToPipeline) || _useAsync)) { diff --git a/api/src/org/labkey/api/reader/FastaDataLoader.java b/api/src/org/labkey/api/reader/FastaDataLoader.java index 390faad8e0a..483d2f28379 100644 --- a/api/src/org/labkey/api/reader/FastaDataLoader.java +++ b/api/src/org/labkey/api/reader/FastaDataLoader.java @@ -20,6 +20,7 @@ import org.labkey.api.data.Container; import org.labkey.api.iterator.CloseableIterator; import org.labkey.api.util.FileType; +import org.labkey.api.util.FileUtil; import java.io.File; import java.io.FileOutputStream; @@ -57,7 +58,7 @@ public DataLoader createLoader(File file, boolean hasColumnHeaders, Container mv @NotNull @Override public DataLoader createLoader(InputStream is, boolean hasColumnHeaders, Container mvIndicatorContainer) throws IOException { - File f = File.createTempFile("import", ".fasta"); + File f = FileUtil.createTempFile("import", ".fasta"); f.deleteOnExit(); IOUtils.copy(is, new FileOutputStream(f)); diff --git a/api/src/org/labkey/api/reader/TabLoader.java b/api/src/org/labkey/api/reader/TabLoader.java index 080dc028f54..a1ec618a33f 100644 --- a/api/src/org/labkey/api/reader/TabLoader.java +++ b/api/src/org/labkey/api/reader/TabLoader.java @@ -744,7 +744,7 @@ public static class TabLoaderTestCase extends Assert private File _createTempFile(String data, String ext) throws IOException { - File f = File.createTempFile("junit", ext); + File f = FileUtil.createTempFile("junit", ext); f.deleteOnExit(); try (Writer w = PrintWriters.getPrintWriter(f)) diff --git a/api/src/org/labkey/api/reports/report/RReportJob.java b/api/src/org/labkey/api/reports/report/RReportJob.java index 4f9a2818160..3ef3dabf60c 100644 --- a/api/src/org/labkey/api/reports/report/RReportJob.java +++ b/api/src/org/labkey/api/reports/report/RReportJob.java @@ -316,7 +316,7 @@ protected void processOutputs(RReport report, List outputSubst // report.log == getLogFile(), copy it and update the path (this is the RReportJob case) if (LOG_FILE_NAME.equalsIgnoreCase(getJob().getLogFile().getName())) { - newFile = File.createTempFile(LOG_FILE_PREFIX, ".log", parentDir); + newFile = FileUtil.createTempFile(LOG_FILE_PREFIX, ".log", parentDir); getJob().setLogFile(newFile); FileUtils.copyFile(file, newFile); } diff --git a/api/src/org/labkey/api/reports/report/r/view/ConsoleOutput.java b/api/src/org/labkey/api/reports/report/r/view/ConsoleOutput.java index 50aae9d3494..5527d9ea974 100644 --- a/api/src/org/labkey/api/reports/report/r/view/ConsoleOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/ConsoleOutput.java @@ -20,6 +20,7 @@ import org.labkey.api.reports.report.RReport; import org.labkey.api.reports.report.ScriptOutput; import org.labkey.api.reports.report.r.AbstractParamReplacement; +import org.labkey.api.util.FileUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.ViewContext; @@ -50,9 +51,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result.txt", directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.txt", directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result.txt"); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.txt"); addFile(file); return file; diff --git a/api/src/org/labkey/api/reports/report/r/view/HtmlOutput.java b/api/src/org/labkey/api/reports/report/r/view/HtmlOutput.java index d622d7d05db..ad925368df6 100644 --- a/api/src/org/labkey/api/reports/report/r/view/HtmlOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/HtmlOutput.java @@ -20,6 +20,7 @@ import org.labkey.api.reports.report.ScriptOutput; import org.labkey.api.reports.report.r.AbstractParamReplacement; import org.labkey.api.reports.report.r.ParamReplacement; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.ViewContext; @@ -50,9 +51,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result.html", directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.html", directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result.html"); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.html"); addFile(file); return file; diff --git a/api/src/org/labkey/api/reports/report/r/view/ImageOutput.java b/api/src/org/labkey/api/reports/report/r/view/ImageOutput.java index bb8e6384511..dce7f215cae 100644 --- a/api/src/org/labkey/api/reports/report/r/view/ImageOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/ImageOutput.java @@ -26,6 +26,7 @@ import org.labkey.api.reports.report.r.AbstractParamReplacement; import org.labkey.api.reports.report.r.ParamReplacement; import org.labkey.api.thumbnail.Thumbnail; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.GUID; import org.labkey.api.util.ImageUtil; import org.labkey.api.util.PageFlowUtil; @@ -66,9 +67,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result." + getExtension(), directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result." + getExtension(), directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result." + getExtension()); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result." + getExtension()); addFile(file); return file; diff --git a/api/src/org/labkey/api/reports/report/r/view/JsonOutput.java b/api/src/org/labkey/api/reports/report/r/view/JsonOutput.java index 98e24584323..ed9a969e76f 100644 --- a/api/src/org/labkey/api/reports/report/r/view/JsonOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/JsonOutput.java @@ -20,6 +20,7 @@ import org.labkey.api.reports.report.ScriptOutput; import org.labkey.api.reports.report.r.AbstractParamReplacement; import org.labkey.api.reports.report.r.ParamReplacement; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.ViewContext; @@ -45,9 +46,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result.json", directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.json", directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result.json"); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.json"); addFile(file); return file; diff --git a/api/src/org/labkey/api/reports/report/r/view/TextOutput.java b/api/src/org/labkey/api/reports/report/r/view/TextOutput.java index 3cde943c269..f01b1bdadf3 100644 --- a/api/src/org/labkey/api/reports/report/r/view/TextOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/TextOutput.java @@ -20,6 +20,7 @@ import org.labkey.api.reports.report.ScriptOutput; import org.labkey.api.reports.report.r.AbstractParamReplacement; import org.labkey.api.reports.report.r.ParamReplacement; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.ViewContext; @@ -45,9 +46,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result.txt", directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.txt", directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result.txt"); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.txt"); addFile(file); return file; diff --git a/api/src/org/labkey/api/reports/report/r/view/TsvOutput.java b/api/src/org/labkey/api/reports/report/r/view/TsvOutput.java index e43c8f53639..9f70fc393a6 100644 --- a/api/src/org/labkey/api/reports/report/r/view/TsvOutput.java +++ b/api/src/org/labkey/api/reports/report/r/view/TsvOutput.java @@ -23,6 +23,7 @@ import org.labkey.api.reports.report.ScriptOutput; import org.labkey.api.reports.report.r.AbstractParamReplacement; import org.labkey.api.reports.report.r.ParamReplacement; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.ViewContext; @@ -52,9 +53,9 @@ protected File getSubstitution(File directory) throws Exception { File file; if (directory != null) - file = File.createTempFile(RReport.FILE_PREFIX, "Result.tsv", directory); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.tsv", directory); else - file = File.createTempFile(RReport.FILE_PREFIX, "Result.tsv"); + file = FileUtil.createTempFile(RReport.FILE_PREFIX, "Result.tsv"); addFile(file); return file; diff --git a/api/src/org/labkey/api/util/FileUtil.java b/api/src/org/labkey/api/util/FileUtil.java index 59193e87e55..6ed6f6c9d82 100644 --- a/api/src/org/labkey/api/util/FileUtil.java +++ b/api/src/org/labkey/api/util/FileUtil.java @@ -1170,7 +1170,7 @@ else if (!".".equals(file.getName())) return new File(resolveFile(parent), file.getName()); } - public static Path createTempDirectory(String prefix) throws IOException + public static Path createTempDirectory(@Nullable String prefix) throws IOException { return Files.createTempDirectory(prefix); } @@ -1184,7 +1184,7 @@ public static File getTempDirectory() { try { - File temp = File.createTempFile("deleteme", null); + File temp = createTempFile("deleteme", null); _tempDir = temp.getParentFile(); temp.delete(); } @@ -1197,18 +1197,24 @@ public static File getTempDirectory() return _tempDir; } + // Use this instead of File.createTempFile() (see Issue #46794) + public static File createTempFile(@Nullable String prefix, @Nullable String suffix, File directory) throws IOException + { + return Files.createTempFile(directory.toPath(), prefix, suffix).toFile(); + } - public static File createTempFile(String prefix, String suffix) throws IOException + // Use this instead of File.createTempFile() (see Issue #46794) + public static File createTempFile(@Nullable String prefix, @Nullable String suffix) throws IOException { return createTempFile(prefix, suffix, false); } - public static File createTempFile(String prefix, String suffix, boolean threadLocal) throws IOException + public static File createTempFile(@Nullable String prefix, @Nullable String suffix, boolean threadLocal) throws IOException { - var ret = File.createTempFile(prefix, suffix); + var path = Files.createTempFile(prefix, suffix); if (threadLocal) - tempPaths.get().add(ret.toPath()); - return ret; + tempPaths.get().add(path); + return path.toFile(); } public static void deleteTempFile(File f) diff --git a/assay/src/org/labkey/assay/AssayIntegrationTestCase.jsp b/assay/src/org/labkey/assay/AssayIntegrationTestCase.jsp index a72618b8f17..202e5689f6f 100644 --- a/assay/src/org/labkey/assay/AssayIntegrationTestCase.jsp +++ b/assay/src/org/labkey/assay/AssayIntegrationTestCase.jsp @@ -215,7 +215,7 @@ final var materialName = material.getName(); // create a file in the pipeline root to import - var file = File.createTempFile(getClass().getSimpleName(), ".tsv", pipeRoot.getRootPath()); + var file = FileUtil.createTempFile(getClass().getSimpleName(), ".tsv", pipeRoot.getRootPath()); Files.writeString(file.toPath(), "SampleLookup\n" + materialName + "\n", Charsets.UTF_8); // import the file @@ -316,7 +316,7 @@ final var materialName = material.getName(); // create a file in the pipeline root to import - var file = File.createTempFile(getClass().getSimpleName(), ".tsv", pipeRoot.getRootPath()); + var file = FileUtil.createTempFile(getClass().getSimpleName(), ".tsv", pipeRoot.getRootPath()); Files.writeString(file.toPath(), "SampleLookup\n" + materialName + "\n", Charsets.UTF_8); var firstData = ExperimentService.get().createData(c, UPLOADED_FILE, file.getName()); diff --git a/core/src/org/labkey/core/admin/ValidateDomainsPipelineJob.java b/core/src/org/labkey/core/admin/ValidateDomainsPipelineJob.java index 40c216d503f..39c7f907ab0 100644 --- a/core/src/org/labkey/core/admin/ValidateDomainsPipelineJob.java +++ b/core/src/org/labkey/core/admin/ValidateDomainsPipelineJob.java @@ -19,6 +19,7 @@ import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.util.DateUtil; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.URLHelper; import org.labkey.api.util.UnexpectedException; import org.labkey.api.view.ViewBackgroundInfo; @@ -42,7 +43,7 @@ public ValidateDomainsPipelineJob(ViewBackgroundInfo info, PipeRoot root) try { - File logFile = File.createTempFile("validateDomains", ".log", root.ensureSystemDirectory()); + File logFile = FileUtil.createTempFile("validateDomains", ".log", root.ensureSystemDirectory()); setLogFile(logFile); } catch (IOException e) diff --git a/core/src/org/labkey/core/portal/UtilController.java b/core/src/org/labkey/core/portal/UtilController.java index cc4d3dbc496..36e036ed728 100644 --- a/core/src/org/labkey/core/portal/UtilController.java +++ b/core/src/org/labkey/core/portal/UtilController.java @@ -81,7 +81,7 @@ public ModelAndView getView(DotForm form, BindException errors) throws Exception File svgFile = null; try { - svgFile = File.createTempFile("groups", ".svg", dir); + svgFile = FileUtil.createTempFile("groups", ".svg", dir); svgFile.deleteOnExit(); DotRunner runner = new DotRunner(dir, dot); runner.addSvgOutput(svgFile); diff --git a/core/src/org/labkey/core/security/SecurityController.java b/core/src/org/labkey/core/security/SecurityController.java index 5c982a6dde1..659e16bb497 100644 --- a/core/src/org/labkey/core/security/SecurityController.java +++ b/core/src/org/labkey/core/security/SecurityController.java @@ -1894,7 +1894,7 @@ public ApiResponse execute(GroupDiagramForm form, BindException errors) throws E try { - svgFile = File.createTempFile("groups", ".svg", dir); + svgFile = FileUtil.createTempFile("groups", ".svg", dir); svgFile.deleteOnExit(); DotRunner runner = new DotRunner(dir, dot); runner.addSvgOutput(svgFile); diff --git a/experiment/src/org/labkey/experiment/ExperimentRunGraph.java b/experiment/src/org/labkey/experiment/ExperimentRunGraph.java index 0d1fc51c64d..c1a629ae088 100644 --- a/experiment/src/org/labkey/experiment/ExperimentRunGraph.java +++ b/experiment/src/org/labkey/experiment/ExperimentRunGraph.java @@ -81,7 +81,7 @@ public synchronized static File getBaseDirectory() throws IOException { if (baseDirectory == null) { - File tempFile = File.createTempFile("Exp", ".dir"); + File tempFile = FileUtil.createTempFile("Exp", ".dir"); tempFile.delete(); File tempDir = new File(tempFile.getParentFile(), "ExperimentRunGraphs"); if (tempDir.exists()) diff --git a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java index 34639d3612c..3eff1f61106 100644 --- a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java +++ b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java @@ -2319,7 +2319,7 @@ public Object execute(ParseForm form, BindException errors) throws Exception File tempFile = null; try { - tempFile = File.createTempFile("parse", formFile.getOriginalFilename()); + tempFile = FileUtil.createTempFile("parse", formFile.getOriginalFilename()); FileUtil.copyData(formFile.getInputStream(), tempFile); streamToJSON(tempFile, form.getFormat(), form.getMaxRows(), formFile.getOriginalFilename()); } diff --git a/experiment/src/org/labkey/experiment/controllers/property/PropertyController.java b/experiment/src/org/labkey/experiment/controllers/property/PropertyController.java index 03f25e7ae5f..a1e631d20e8 100644 --- a/experiment/src/org/labkey/experiment/controllers/property/PropertyController.java +++ b/experiment/src/org/labkey/experiment/controllers/property/PropertyController.java @@ -87,6 +87,7 @@ import org.labkey.api.security.permissions.AdminPermission; import org.labkey.api.security.permissions.ReadPermission; import org.labkey.api.util.ExceptionUtil; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.JsonUtil; import org.labkey.api.util.JunitUtil; import org.labkey.api.util.Pair; @@ -1233,7 +1234,7 @@ protected File getTargetFile(String filename) throws IOException // File.createTempFile() requires that the prefix be at least three characters long prefix = "prefix-" + prefix; } - File tempFile = File.createTempFile(prefix, suffix); + File tempFile = FileUtil.createTempFile(prefix, suffix); tempFile.deleteOnExit(); return tempFile; } @@ -1339,7 +1340,7 @@ private String getDataFromFile(Writer writer) throws IOException String suffix = filename.substring(dotIndex).toLowerCase(); String prefix = filename.substring(0, dotIndex); - File tempFile = File.createTempFile(prefix, suffix); + File tempFile = FileUtil.createTempFile(prefix, suffix); tempFile.deleteOnExit(); try diff --git a/experiment/src/org/labkey/experiment/pipeline/MoveRunsTask.java b/experiment/src/org/labkey/experiment/pipeline/MoveRunsTask.java index 8f06013a68d..a3580f1731d 100644 --- a/experiment/src/org/labkey/experiment/pipeline/MoveRunsTask.java +++ b/experiment/src/org/labkey/experiment/pipeline/MoveRunsTask.java @@ -172,7 +172,7 @@ public MoveRunsXarSource(String xml, Path root, MoveRunsPipelineJob job) throws { try { - _logFileDir = File.createTempFile("xarupload", ""); + _logFileDir = FileUtil.createTempFile("xarupload", ""); } catch (IOException e) { diff --git a/internal/src/org/labkey/api/util/FTPUtil.java b/internal/src/org/labkey/api/util/FTPUtil.java index 27f5b1d3d02..df43ff889c5 100644 --- a/internal/src/org/labkey/api/util/FTPUtil.java +++ b/internal/src/org/labkey/api/util/FTPUtil.java @@ -80,7 +80,7 @@ public static File downloadFile(String user, String password, String url, String { ftp = getConnectedClient(user, password, url, directory); ftp.setFileType(FTPClient.BINARY_FILE_TYPE); - File outputFile = File.createTempFile(filename, null); + File outputFile = FileUtil.createTempFile(filename, null); fos = new FileOutputStream(outputFile); ftp.retrieveFile(filename, fos); return outputFile; diff --git a/pipeline/src/org/labkey/pipeline/analysis/AnalysisController.java b/pipeline/src/org/labkey/pipeline/analysis/AnalysisController.java index 31a85a86a5e..7860ecaa107 100644 --- a/pipeline/src/org/labkey/pipeline/analysis/AnalysisController.java +++ b/pipeline/src/org/labkey/pipeline/analysis/AnalysisController.java @@ -710,7 +710,7 @@ private DOM.Renderable generateGraph(@Nullable TaskPipeline pipeline) { File dir = FileUtil.getTempDirectory(); String dot = buildDigraph(pipeline); - svgFile = File.createTempFile("pipeline", ".svg", dir); + svgFile = FileUtil.createTempFile("pipeline", ".svg", dir); DotRunner runner = new DotRunner(dir, dot); runner.addSvgOutput(svgFile); runner.execute(); diff --git a/pipeline/src/org/labkey/pipeline/api/WorkDirectoryRemote.java b/pipeline/src/org/labkey/pipeline/api/WorkDirectoryRemote.java index 57f51005324..a4bdab08458 100644 --- a/pipeline/src/org/labkey/pipeline/api/WorkDirectoryRemote.java +++ b/pipeline/src/org/labkey/pipeline/api/WorkDirectoryRemote.java @@ -129,7 +129,7 @@ public WorkDirectory createWorkDirectory(String jobId, FileAnalysisJobSupport su } else { - dirParent = File.createTempFile(jobId, "", dirParent); + dirParent = FileUtil.createTempFile(jobId, "", dirParent); tempDirBase = dirParent; } @@ -164,7 +164,7 @@ else if (name.length() < 3) } else { - tempDir = File.createTempFile(name, WORK_DIR_SUFFIX, dirParent); + tempDir = FileUtil.createTempFile(name, WORK_DIR_SUFFIX, dirParent); } if (_allowReuseExistingTempDirectory && tempDir.exists()) diff --git a/pipeline/src/org/labkey/pipeline/cluster/ClusterStartup.java b/pipeline/src/org/labkey/pipeline/cluster/ClusterStartup.java index af2e7e43005..122ee883209 100644 --- a/pipeline/src/org/labkey/pipeline/cluster/ClusterStartup.java +++ b/pipeline/src/org/labkey/pipeline/cluster/ClusterStartup.java @@ -170,7 +170,7 @@ public static class TestCase @Before public void setup() throws IOException { - _tempDir = File.createTempFile("testJobDir", "dir").getAbsoluteFile(); + _tempDir = FileUtil.createTempFile("testJobDir", "dir").getAbsoluteFile(); if (!_tempDir.delete()) { throw new RuntimeException("Failed to delete file " + _tempDir); diff --git a/pipeline/src/org/labkey/pipeline/mule/test/DummyPipelineJob.java b/pipeline/src/org/labkey/pipeline/mule/test/DummyPipelineJob.java index 0bf435655e5..a744e15a40e 100644 --- a/pipeline/src/org/labkey/pipeline/mule/test/DummyPipelineJob.java +++ b/pipeline/src/org/labkey/pipeline/mule/test/DummyPipelineJob.java @@ -25,6 +25,7 @@ import org.labkey.api.pipeline.TaskId; import org.labkey.api.pipeline.TaskPipeline; import org.labkey.api.security.User; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.URLHelper; import org.labkey.api.util.UnexpectedException; import org.labkey.api.view.ViewBackgroundInfo; @@ -74,7 +75,7 @@ public DummyPipelineJob(Container c, User user, Worker worker) _worker = worker; try { - setLogFile(File.createTempFile("DummyPipelineJob", ".tmp")); + setLogFile(FileUtil.createTempFile("DummyPipelineJob", ".tmp")); } catch (IOException e) { diff --git a/query/src/org/labkey/query/olap/OlapSchemaDescriptor.java b/query/src/org/labkey/query/olap/OlapSchemaDescriptor.java index cc2e479e863..5e2f8db8311 100644 --- a/query/src/org/labkey/query/olap/OlapSchemaDescriptor.java +++ b/query/src/org/labkey/query/olap/OlapSchemaDescriptor.java @@ -23,6 +23,7 @@ import org.labkey.api.module.Module; import org.labkey.api.query.OlapSchemaInfo; import org.labkey.api.security.User; +import org.labkey.api.util.FileUtil; import org.labkey.query.olap.rolap.RolapCubeDef; import org.labkey.query.olap.rolap.RolapReader; import org.olap4j.OlapConnection; @@ -254,7 +255,7 @@ File getFile() throws IOException { if (null == tmpFile) { - tmpFile = File.createTempFile("olap", getName()); + tmpFile = FileUtil.createTempFile("olap", getName()); tmpFile.deleteOnExit(); try ( FileOutputStream out = new FileOutputStream(tmpFile); diff --git a/study/src/org/labkey/study/controllers/security/SecurityController.java b/study/src/org/labkey/study/controllers/security/SecurityController.java index f1d636e6ebc..48beb59ae70 100644 --- a/study/src/org/labkey/study/controllers/security/SecurityController.java +++ b/study/src/org/labkey/study/controllers/security/SecurityController.java @@ -302,7 +302,7 @@ else if (!file.getOriginalFilename().endsWith(".xml")) else { InputStream is = file.getInputStream(); - File tmpFile = File.createTempFile("studyPolicy", ".xml"); + File tmpFile = FileUtil.createTempFile("studyPolicy", ".xml"); tmpFile.deleteOnExit(); FileUtil.copyData(is, tmpFile); exporter.loadFromXmlFile(study, getUser(), tmpFile, messages); diff --git a/study/src/org/labkey/study/pipeline/MasterPatientIndexUpdateTask.java b/study/src/org/labkey/study/pipeline/MasterPatientIndexUpdateTask.java index 4d0f61933bb..d4111545f27 100644 --- a/study/src/org/labkey/study/pipeline/MasterPatientIndexUpdateTask.java +++ b/study/src/org/labkey/study/pipeline/MasterPatientIndexUpdateTask.java @@ -19,6 +19,7 @@ import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.study.MasterPatientIndexService; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.URLHelper; import org.labkey.api.view.ViewBackgroundInfo; @@ -38,7 +39,7 @@ public MasterPatientIndexUpdateTask(ViewBackgroundInfo info, @NotNull PipeRoot r super(PIPELINE_PROVIDER, info, root); _svc = service; - File logFile = File.createTempFile("patientIndexUpdateJob", ".log", root.getRootPath()); + File logFile = FileUtil.createTempFile("patientIndexUpdateJob", ".log", root.getRootPath()); setLogFile(logFile); } diff --git a/study/src/org/labkey/study/reports/ExternalReport.java b/study/src/org/labkey/study/reports/ExternalReport.java index c31c5c00808..b538bf15cca 100644 --- a/study/src/org/labkey/study/reports/ExternalReport.java +++ b/study/src/org/labkey/study/reports/ExternalReport.java @@ -35,6 +35,7 @@ import org.labkey.api.security.User; import org.labkey.api.security.permissions.Permission; import org.labkey.api.security.permissions.ReadPermission; +import org.labkey.api.util.FileUtil; import org.labkey.api.util.GUID; import org.labkey.api.util.MimeMap; import org.labkey.api.util.PageFlowUtil; @@ -199,7 +200,7 @@ public HttpView renderReport(ViewContext viewContext) File dataFile = null; try { - dataFile = File.createTempFile(getFilePrefix(), DATA_FILE_SUFFIX, getReportDir(viewContext)); + dataFile = FileUtil.createTempFile(getFilePrefix(), DATA_FILE_SUFFIX, getReportDir(viewContext)); String dataFileName = dataFile.getName(); ResultsFactory factory;