diff --git a/pom.xml b/pom.xml index bc921fa7..6f7e8af3 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ org.jenkins-ci.plugins plugin - 3.25 + 3.28 org.jenkins-ci.plugins.workflow @@ -82,7 +82,7 @@ org.jenkins-ci.plugins.workflow workflow-api - 2.31 + 2.32-rc862.5f9ac65fd5f2 org.jenkins-ci.plugins.workflow diff --git a/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java b/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java index 3bc03896..8365fe5e 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java @@ -64,7 +64,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -1019,7 +1018,7 @@ private final class NodePrintListener implements GraphListener.Synchronous { @Override public InputStream getLogInputStream() throws IOException { // Inefficient but probably rarely used anyway. ByteArrayOutputStream baos = new ByteArrayOutputStream(); - writeLogTo(getLogText()::writeLogTo, baos); + writeLogTo(getLogText()::writeRawLogTo, baos); return new ByteArrayInputStream(baos.toByteArray()); } @@ -1081,16 +1080,7 @@ private void writeLogTo(WriteMethod method, OutputStream os) throws IOException @Deprecated @Override public File getLogFile() { LOGGER.log(Level.WARNING, "Avoid calling getLogFile on " + this, new UnsupportedOperationException()); - try { - File f = File.createTempFile("deprecated", ".log", getRootDir()); - f.deleteOnExit(); - try (OutputStream os = new FileOutputStream(f)) { - getLogText().writeRawLogTo(0, os); - } - return f; - } catch (IOException x) { - throw new RuntimeException(x); - } + return LogStorage.of(asFlowExecutionOwner()).getLogFile(this, !isLogUpdated()); } static void alias() { diff --git a/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowRunTest.java b/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowRunTest.java index b0f1b75f..690b16a8 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowRunTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowRunTest.java @@ -82,6 +82,7 @@ import org.xml.sax.SAXException; import javax.annotation.Nonnull; +import org.apache.commons.io.IOUtils; public class WorkflowRunTest { @@ -503,4 +504,13 @@ private void assertCulprits(WorkflowRun b, String... expectedIds) throws IOExcep r.assertLogContains(message, r.buildAndAssertSuccess(p)); } + @Issue("JENKINS-54128") + @SuppressWarnings("deprecation") + @Test public void getLogFile() throws Exception { + WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p"); + p.setDefinition(new CpsFlowDefinition("echo 'sample text'", true)); + WorkflowRun b = r.buildAndAssertSuccess(p); + assertEquals(IOUtils.toString(b.getLogInputStream()), FileUtils.readFileToString(b.getLogFile())); + } + }