From b72ce56f2f3929950b840965e8ac8890daadee54 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Tue, 25 Apr 2017 07:43:05 +0200 Subject: [PATCH] fix more timestamp formatting, #22774 * regression introduced by #22716 (never released) --- .../akka/remote/artery/BenchmarkFileReporter.scala | 5 ++++- .../main/java/akka/remote/artery/AeronErrorLog.java | 12 ++++++++---- project/TimeStampede.scala | 4 +++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/BenchmarkFileReporter.scala b/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/BenchmarkFileReporter.scala index b44a262f44..55ae4e0562 100644 --- a/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/BenchmarkFileReporter.scala +++ b/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/BenchmarkFileReporter.scala @@ -6,6 +6,8 @@ package akka.remote.artery import java.io.File import java.nio.file.Files import java.time.Instant +import java.time.LocalDateTime +import java.time.ZoneId import java.time.format.DateTimeFormatter import akka.actor.ActorSystem @@ -36,7 +38,8 @@ object BenchmarkFileReporter { Try("git describe".!!.trim).getOrElse("[unknown]") } val testResultFile: File = { - val fileName = s"${formatter.format(Instant.now())}-Artery-$testName-$gitCommit-results.txt" + val timestamp = formatter.format(LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault())); + val fileName = s"$timestamp-Artery-$testName-$gitCommit-results.txt" new File(targetDirectory, fileName) } val config = system.settings.config diff --git a/akka-remote/src/main/java/akka/remote/artery/AeronErrorLog.java b/akka-remote/src/main/java/akka/remote/artery/AeronErrorLog.java index f2cbc0996e..ec65940ec5 100644 --- a/akka-remote/src/main/java/akka/remote/artery/AeronErrorLog.java +++ b/akka-remote/src/main/java/akka/remote/artery/AeronErrorLog.java @@ -26,6 +26,8 @@ import akka.event.LoggingAdapter; import java.io.File; import java.nio.MappedByteBuffer; import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.concurrent.atomic.AtomicLong; @@ -41,7 +43,10 @@ public class AeronErrorLog final DirectBuffer cncMetaDataBuffer; final int cncVersion; final AtomicBuffer buffer; - final DateTimeFormatter formatter; + final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); + private final ZoneId timeZone = ZoneId.systemDefault(); + + public AeronErrorLog(File cncFile) { @@ -50,7 +55,6 @@ public class AeronErrorLog cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); - formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); if (CncFileDescriptor.CNC_VERSION != cncVersion) { @@ -70,8 +74,8 @@ public class AeronErrorLog log.error(String.format( "Aeron error: %d observations from %s to %s for:%n %s", observationCount, - formatter.format(Instant.ofEpochMilli(firstObservationTimestamp)), - formatter.format(Instant.ofEpochMilli(lastObservationTimestamp)), + formatter.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(firstObservationTimestamp), timeZone)), + formatter.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(lastObservationTimestamp), timeZone)), encodedException)); lastTimestamp.set(Math.max(lastTimestamp.get(), lastObservationTimestamp)); }, sinceTimestamp); diff --git a/project/TimeStampede.scala b/project/TimeStampede.scala index e997bb9bd3..42d7fe0f83 100644 --- a/project/TimeStampede.scala +++ b/project/TimeStampede.scala @@ -4,6 +4,8 @@ package akka import java.time.Instant +import java.time.LocalDateTime +import java.time.ZoneId import java.time.format.DateTimeFormatter import sbt._ @@ -32,6 +34,6 @@ object TimeStampede extends AutoPlugin { val formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss") def timestamp(time: Long): String = { - formatter.format(Instant.ofEpochMilli(time)) + formatter.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())) } }