You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2021/08/18 10:55:28 UTC
[ignite] branch master updated: IGNITE-15078 Remove
SimpleDateTimeFormat usages (#9320)
This is an automated email from the ASF dual-hosted git repository.
ibessonov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new e4b7992 IGNITE-15078 Remove SimpleDateTimeFormat usages (#9320)
e4b7992 is described below
commit e4b799252682681e1e8aef6807b4852d9576a4d9
Author: Alexander Polovtcev <al...@gmail.com>
AuthorDate: Wed Aug 18 13:54:56 2021 +0300
IGNITE-15078 Remove SimpleDateTimeFormat usages (#9320)
---
.../ignite/tests/IgnitePersistentStoreTest.java | 4 +-
.../java/org/apache/ignite/tests/load/Worker.java | 14 ++---
.../apache/ignite/tests/pojos/ProductOrder.java | 22 ++++----
.../org/apache/ignite/tests/utils/TestsHelper.java | 21 ++++----
.../loadtests/client/ClientCacheBenchmark.java | 5 +-
.../internal/commandline/ProgressPrinter.java | 34 ++++++------
.../ignite/internal/IgniteDiagnosticMessage.java | 14 ++---
.../apache/ignite/internal/IgniteVersionUtils.java | 27 +++++-----
.../managers/communication/GridIoManager.java | 29 +++++-----
.../cache/GridCachePartitionExchangeManager.java | 13 ++---
.../cache/distributed/near/GridNearTxLocal.java | 19 +++----
.../cache/persistence/RecoveryDebug.java | 20 +++----
.../persistence/filename/PdsFolderResolver.java | 10 ++--
.../org/apache/ignite/internal/util/GridDebug.java | 30 +++++------
.../org/apache/ignite/internal/util/GridTimer.java | 10 ++--
.../apache/ignite/internal/util/IgniteUtils.java | 61 ++++++++++------------
.../ignite/internal/visor/util/VisorTaskUtils.java | 19 +++----
.../ignite/logger/java/JavaLoggerFormatter.java | 14 ++---
.../ignite/spi/discovery/tcp/TcpDiscoveryImpl.java | 11 ++--
.../apache/ignite/startup/BasicWarmupClosure.java | 9 ++--
.../apache/ignite/startup/cmdline/AboutDialog.java | 21 ++++----
.../ignite/startup/cmdline/CommandLineStartup.java | 12 +----
.../cache/AbstractDataTypesCoverageTest.java | 55 +++++++++++--------
.../ignite/loadtests/cache/GridCacheBenchmark.java | 5 +-
.../communication/GridIoManagerBenchmark.java | 8 +--
.../apache/ignite/loadtests/dsi/GridDsiClient.java | 7 +--
.../job/GridJobExecutionLoadTestClient.java | 5 +-
.../GridJobExecutionLoadTestClientSemaphore.java | 5 +-
.../job/GridJobExecutionSingleNodeLoadTest.java | 5 +-
...ridJobExecutionSingleNodeSemaphoreLoadTest.java | 5 +-
.../loadtests/mergesort/GridMergeSortLoadTest.java | 5 +-
.../ignite/testframework/GridLoadTestUtils.java | 4 --
.../cellular_affinity_test/CellularTxStreamer.java | 6 +--
.../query/stat/StatisticsTypesAbstractTest.java | 56 ++++++--------------
.../util/nodestart/StartNodeCallableImpl.java | 11 ++--
.../ignite/visor/commands/VisorConsole.scala | 5 +-
36 files changed, 276 insertions(+), 325 deletions(-)
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
index 727fec9..6b84da7 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
@@ -19,8 +19,8 @@ package org.apache.ignite.tests;
import java.io.IOException;
import java.net.URL;
+import java.time.Instant;
import java.util.Collection;
-import java.util.Date;
import java.util.Map;
import com.datastax.driver.core.SimpleStatement;
import com.datastax.driver.core.policies.RoundRobinPolicy;
@@ -617,7 +617,7 @@ public class IgnitePersistentStoreTest {
Map<Long, ProductOrder> ordersMap = TestsHelper.generateOrdersMap(5);
Map<Long, ProductOrder> ordersMap1;
Product product = TestsHelper.generateRandomProduct(-1L);
- ProductOrder order = TestsHelper.generateRandomOrder(-1L, -1L, new Date());
+ ProductOrder order = TestsHelper.generateRandomOrder(-1L, -1L, Instant.now());
IgniteTransactions txs = ignite.transactions();
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
index 5f3c393..9a69eb8 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
@@ -17,7 +17,7 @@
package org.apache.ignite.tests.load;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -29,6 +29,7 @@ import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.cache.store.cassandra.common.SystemHelper;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.tests.utils.TestsHelper;
import org.apache.log4j.Logger;
@@ -37,9 +38,6 @@ import org.apache.log4j.Logger;
*/
public abstract class Worker extends Thread {
/** */
- private static final SimpleDateFormat TIME_FORMATTER = new SimpleDateFormat("hh:mm:ss");
-
- /** */
private long testStartTime;
/** */
@@ -403,8 +401,12 @@ public abstract class Worker extends Thread {
builder.append("Test execution successfully completed. ");
builder.append("Statistics: ").append(SystemHelper.LINE_SEPARATOR);
- builder.append("Start time: ").append(TIME_FORMATTER.format(testStartTime)).append(SystemHelper.LINE_SEPARATOR);
- builder.append("Finish time: ").append(TIME_FORMATTER.format(finishTime)).append(SystemHelper.LINE_SEPARATOR);
+ builder.append("Start time: ")
+ .append(IgniteUtils.SHORT_DATE_FMT.format(Instant.ofEpochMilli(testStartTime)))
+ .append(SystemHelper.LINE_SEPARATOR);
+ builder.append("Finish time: ")
+ .append(IgniteUtils.SHORT_DATE_FMT.format(Instant.ofEpochMilli(finishTime)))
+ .append(SystemHelper.LINE_SEPARATOR);
builder.append("Duration: ").append((finishTime - testStartTime) / 1000).append(" sec")
.append(SystemHelper.LINE_SEPARATOR);
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
index 31c881e..88f5b71 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
@@ -17,19 +17,21 @@
package org.apache.ignite.tests.pojos;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
/**
* Simple POJO to store information about product order
*/
public class ProductOrder {
/** */
- private static final DateFormat FORMAT = new SimpleDateFormat("MM/dd/yyyy/S");
+ private static final DateTimeFormatter FORMAT =
+ DateTimeFormatter.ofPattern("MM/dd/yyyy/S").withZone(ZoneId.systemDefault());
/** */
- private static final DateFormat FULL_FORMAT = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss:S");
+ private static final DateTimeFormatter FULL_FORMAT =
+ DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss:S").withZone(ZoneId.systemDefault());
/** */
private long id;
@@ -38,7 +40,7 @@ public class ProductOrder {
private long productId;
/** */
- private Date date;
+ private Instant date;
/** */
private int amount;
@@ -51,12 +53,12 @@ public class ProductOrder {
}
/** */
- public ProductOrder(long id, Product product, Date date, int amount) {
+ public ProductOrder(long id, Product product, Instant date, int amount) {
this(id, product.getId(), product.getPrice(), date, amount);
}
/** */
- public ProductOrder(long id, long productId, float productPrice, Date date, int amount) {
+ public ProductOrder(long id, long productId, float productPrice, Instant date, int amount) {
this.id = id;
this.productId = productId;
this.date = date;
@@ -104,12 +106,12 @@ public class ProductOrder {
}
/** */
- public void setDate(Date date) {
+ public void setDate(Instant date) {
this.date = date;
}
/** */
- public Date getDate() {
+ public Instant getDate() {
return date;
}
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
index 48a0bd3..75fdf65 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
@@ -17,7 +17,9 @@
package org.apache.ignite.tests.utils;
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.ZoneOffset;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
@@ -115,16 +117,16 @@ public class TestsHelper {
HOST_PREFIX = prefix;
- Calendar cl = Calendar.getInstance();
+ LocalDate date = LocalDate.now();
String year = TESTS_SETTINGS.getString("orders.year");
- ORDERS_YEAR = !year.trim().isEmpty() ? Integer.parseInt(year) : cl.get(Calendar.YEAR);
+ ORDERS_YEAR = !year.trim().isEmpty() ? Integer.parseInt(year) : date.getYear();
String month = TESTS_SETTINGS.getString("orders.month");
- ORDERS_MONTH = !month.trim().isEmpty() ? Integer.parseInt(month) : cl.get(Calendar.MONTH);
+ ORDERS_MONTH = !month.trim().isEmpty() ? (Integer.parseInt(month) + 1) : date.getMonthValue();
String day = TESTS_SETTINGS.getString("orders.day");
- ORDERS_DAY = !day.trim().isEmpty() ? Integer.parseInt(day) : cl.get(Calendar.DAY_OF_MONTH);
+ ORDERS_DAY = !day.trim().isEmpty() ? Integer.parseInt(day) : date.getDayOfMonth();
}
catch (Throwable e) {
throw new RuntimeException("Failed to initialize TestsHelper", e);
@@ -526,18 +528,15 @@ public class TestsHelper {
/** */
private static ProductOrder generateRandomOrder(long productId, int saltedNumber) {
- Calendar cl = Calendar.getInstance();
- cl.set(Calendar.YEAR, ORDERS_YEAR);
- cl.set(Calendar.MONTH, ORDERS_MONTH);
- cl.set(Calendar.DAY_OF_MONTH, ORDERS_DAY);
+ LocalDate date = LocalDate.of(ORDERS_YEAR, ORDERS_MONTH, ORDERS_DAY);
long id = Long.parseLong(productId + System.currentTimeMillis() + HOST_PREFIX + saltedNumber);
- return generateRandomOrder(id, productId, cl.getTime());
+ return generateRandomOrder(id, productId, date.atStartOfDay().toInstant(ZoneOffset.UTC));
}
/** */
- public static ProductOrder generateRandomOrder(long id, long productId, Date date) {
+ public static ProductOrder generateRandomOrder(long id, long productId, Instant date) {
return new ProductOrder(id, productId, generateProductPrice(productId), date, 1 + RANDOM.nextInt(20));
}
diff --git a/modules/clients/src/test/java/org/apache/ignite/loadtests/client/ClientCacheBenchmark.java b/modules/clients/src/test/java/org/apache/ignite/loadtests/client/ClientCacheBenchmark.java
index 94132b2..5d73f7d 100644
--- a/modules/clients/src/test/java/org/apache/ignite/loadtests/client/ClientCacheBenchmark.java
+++ b/modules/clients/src/test/java/org/apache/ignite/loadtests/client/ClientCacheBenchmark.java
@@ -18,10 +18,10 @@
package org.apache.ignite.loadtests.client;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
import java.util.Random;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.client.GridClient;
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.client.GridClientDataConfiguration;
import org.apache.ignite.internal.client.GridClientException;
import org.apache.ignite.internal.client.GridClientFactory;
import org.apache.ignite.internal.client.GridClientPartitionAffinity;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.testframework.GridFileLock;
@@ -252,7 +253,7 @@ public class ClientCacheBenchmark {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
Math.round(benchmark.getItersPerSec()));
}
catch (IOException e) {
diff --git a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ProgressPrinter.java b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ProgressPrinter.java
index 93856ed..5f20e94 100644
--- a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ProgressPrinter.java
+++ b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ProgressPrinter.java
@@ -18,9 +18,7 @@
package org.apache.ignite.internal.commandline;
import java.io.PrintStream;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.util.GridStringBuilder;
/**
@@ -35,7 +33,7 @@ public class ProgressPrinter {
private static final int MIN_PROGRESS_BAR_LENGTH = 20;
/** */
- private static final int MAX_CAPTION_LENTH = 40;
+ private static final int MAX_CAPTION_LENGTH = 40;
/** */
private final long total;
@@ -77,7 +75,7 @@ public class ProgressPrinter {
*/
public ProgressPrinter(PrintStream printStream, String caption, long total, int chunksNum) {
this.printStream = printStream;
- this.caption = caption.length() >= MAX_CAPTION_LENTH ? caption.substring(0, MAX_CAPTION_LENTH) : caption;
+ this.caption = caption.length() >= MAX_CAPTION_LENGTH ? caption.substring(0, MAX_CAPTION_LENGTH) : caption;
this.total = total;
this.chunksNum = chunksNum;
}
@@ -107,7 +105,7 @@ public class ProgressPrinter {
/** */
private void printProgress0(long curr, double currRatio) {
- int progressBarLen = MIN_PROGRESS_BAR_LENGTH + (MAX_CAPTION_LENTH - caption.length());
+ int progressBarLen = MIN_PROGRESS_BAR_LENGTH + (MAX_CAPTION_LENGTH - caption.length());
String progressBarFmt = "\r%s %4s [%" + progressBarLen + "s] %-50s";
@@ -121,22 +119,17 @@ public class ProgressPrinter {
for (int i = 0; i < progressBarLen; i++)
progressBuilder.a(i < progressCurrLen ? "=" : " ");
- SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
-
- long dayMillis = 24 * 60 * 60 * 1000;
- long daysRunning = timeRunning / dayMillis;
- long daysEstimated = timeEstimated / dayMillis;
-
- timeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+ long daysRunning = TimeUnit.MILLISECONDS.toDays(timeRunning);
+ long daysEstimated = TimeUnit.MILLISECONDS.toDays(timeEstimated);
String txtProgress = String.format(
"%s/%s (%s%s / %s%s)",
curr,
total,
daysRunning > 0 ? daysRunning + " days " : "",
- timeFormat.format(new Date(timeRunning)),
+ formatDuration(timeRunning),
daysEstimated > 0 ? daysEstimated + " days " : "",
- timeFormat.format(new Date(timeEstimated))
+ formatDuration(timeEstimated)
);
String progressBar = String.format(
@@ -149,4 +142,15 @@ public class ProgressPrinter {
printStream.print(progressBar);
}
+
+ /**
+ * Formats the given duration in milliseconds in "HH:mm:ss" format.
+ */
+ private static String formatDuration(long durationMillis) {
+ long seconds = (durationMillis / 1000) % 60;
+ long minutes = (durationMillis / (1000 * 60)) % 60;
+ long hours = durationMillis / (1000 * 60 * 60);
+
+ return String.format("%02d:%02d:%02d", hours, minutes, seconds);
+ }
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
index dc78b4e..1c4f420 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
@@ -19,11 +19,9 @@ package org.apache.ignite.internal;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.UUID;
@@ -38,6 +36,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopolo
import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture;
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.internal.util.typedef.T3;
@@ -63,13 +62,6 @@ public class IgniteDiagnosticMessage implements Message {
private static final int REQUEST_FLAG_MASK = 0x01;
/** */
- private static final ThreadLocal<DateFormat> dateFormat = new ThreadLocal<DateFormat>() {
- @Override protected DateFormat initialValue() {
- return new SimpleDateFormat("HH:mm:ss.SSS");
- }
- };
-
- /** */
private byte flags;
/** */
@@ -483,7 +475,7 @@ public class IgniteDiagnosticMessage implements Message {
* @return Time string.
*/
private static String formatTime(long time) {
- return dateFormat.get().format(new Date(time));
+ return IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(time));
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteVersionUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteVersionUtils.java
index cd17078..58f0887 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteVersionUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteVersionUtils.java
@@ -17,9 +17,11 @@
package org.apache.ignite.internal;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.TimeZone;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
import org.apache.ignite.lang.IgniteProductVersion;
/**
@@ -33,7 +35,7 @@ public class IgniteVersionUtils {
public static final IgniteProductVersion VER;
/** UTC build date formatter. */
- private static final SimpleDateFormat BUILD_TSTAMP_DATE_FORMATTER;
+ private static final DateTimeFormatter BUILD_TSTAMP_DATE_FORMATTER;
/** Formatted build date. */
public static final String BUILD_TSTAMP_STR;
@@ -48,7 +50,7 @@ public class IgniteVersionUtils {
public static final String REV_HASH_STR;
/** Release date. */
- public static final String RELEASE_DATE_STR;
+ public static final LocalDate RELEASE_DATE;
/** Compound version. */
public static final String ACK_VER_STR;
@@ -71,9 +73,7 @@ public class IgniteVersionUtils {
BUILD_TSTAMP = !BUILD_TSTAMP_FROM_PROPERTY.isEmpty() && Long.parseLong(BUILD_TSTAMP_FROM_PROPERTY) != 0
? Long.parseLong(BUILD_TSTAMP_FROM_PROPERTY) : System.currentTimeMillis() / 1000;
- BUILD_TSTAMP_DATE_FORMATTER = new SimpleDateFormat("yyyyMMdd");
-
- BUILD_TSTAMP_DATE_FORMATTER.setTimeZone(TimeZone.getTimeZone("UTC"));
+ BUILD_TSTAMP_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd").withZone(ZoneId.of("UTC"));
BUILD_TSTAMP_STR = formatBuildTimeStamp(BUILD_TSTAMP * 1000);
@@ -81,7 +81,11 @@ public class IgniteVersionUtils {
REV_HASH_STR = IgniteProperties.get("ignite.revision");
- RELEASE_DATE_STR = IgniteProperties.get("ignite.rel.date");
+ String releaseDateStr = IgniteProperties.get("ignite.rel.date");
+
+ DateTimeFormatter releaseDateFormatter = DateTimeFormatter.ofPattern("ddMMyyyy", Locale.US);
+
+ RELEASE_DATE = LocalDate.parse(releaseDateStr, releaseDateFormatter);
String rev = REV_HASH_STR.length() > 8 ? REV_HASH_STR.substring(0, 8) : REV_HASH_STR;
@@ -92,13 +96,12 @@ public class IgniteVersionUtils {
/**
* Builds string date representation in "yyyyMMdd" format.
- * "synchronized" because it uses {@link SimpleDateFormat} which is not threadsafe.
*
* @param ts Timestamp.
* @return Timestamp date in UTC timezone.
*/
- public static synchronized String formatBuildTimeStamp(long ts) {
- return BUILD_TSTAMP_DATE_FORMATTER.format(new Date(ts));
+ public static String formatBuildTimeStamp(long ts) {
+ return BUILD_TSTAMP_DATE_FORMATTER.format(Instant.ofEpochMilli(ts));
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 4a4a70d..3f59707 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -34,11 +34,10 @@ import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;
import java.nio.channels.SocketChannel;
import java.nio.channels.WritableByteChannel;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Date;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
@@ -110,6 +109,7 @@ import org.apache.ignite.internal.processors.tracing.MTC.TraceSurroundings;
import org.apache.ignite.internal.processors.tracing.Span;
import org.apache.ignite.internal.processors.tracing.SpanTags;
import org.apache.ignite.internal.util.GridBoundedConcurrentLinkedHashSet;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.StripedCompositeReadWriteLock;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -847,8 +847,6 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
}
- SimpleDateFormat dateFmt = new SimpleDateFormat("HH:mm:ss,SSS");
-
StringBuilder b = new StringBuilder(U.nl())
.append("IO test results (round-trip count per each latency bin).")
.append(U.nl());
@@ -894,25 +892,25 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
.append(String.format("%15d", e.getValue().totalLatency)).append(U.nl());
b.append(U.nl()).append("Max latencies (ns):").append(U.nl());
- format(b, e.getValue().maxLatency, dateFmt);
+ format(b, e.getValue().maxLatency);
b.append(U.nl()).append("Max request send queue times (ns):").append(U.nl());
- format(b, e.getValue().maxReqSendQueueTime, dateFmt);
+ format(b, e.getValue().maxReqSendQueueTime);
b.append(U.nl()).append("Max request receive queue times (ns):").append(U.nl());
- format(b, e.getValue().maxReqRcvQueueTime, dateFmt);
+ format(b, e.getValue().maxReqRcvQueueTime);
b.append(U.nl()).append("Max response send queue times (ns):").append(U.nl());
- format(b, e.getValue().maxResSendQueueTime, dateFmt);
+ format(b, e.getValue().maxResSendQueueTime);
b.append(U.nl()).append("Max response receive queue times (ns):").append(U.nl());
- format(b, e.getValue().maxResRcvQueueTime, dateFmt);
+ format(b, e.getValue().maxResRcvQueueTime);
b.append(U.nl()).append("Max request wire times (millis):").append(U.nl());
- format(b, e.getValue().maxReqWireTimeMillis, dateFmt);
+ format(b, e.getValue().maxReqWireTimeMillis);
b.append(U.nl()).append("Max response wire times (millis):").append(U.nl());
- format(b, e.getValue().maxResWireTimeMillis, dateFmt);
+ format(b, e.getValue().maxResWireTimeMillis);
b.append(U.nl());
}
@@ -924,12 +922,13 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
/**
* @param b Builder.
* @param pairs Pairs to format.
- * @param dateFmt Formatter.
*/
- private void format(StringBuilder b, Collection<IgnitePair<Long>> pairs, SimpleDateFormat dateFmt) {
+ private static void format(StringBuilder b, Collection<IgnitePair<Long>> pairs) {
for (IgnitePair<Long> p : pairs) {
- b.append(String.format("%15d", p.get1())).append(" ")
- .append(dateFmt.format(new Date(p.get2()))).append(U.nl());
+ b.append(String.format("%15d", p.get1()))
+ .append(" ")
+ .append(IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(p.get2())))
+ .append(U.nl());
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index c4662a6..c722a0b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -17,13 +17,11 @@
package org.apache.ignite.internal.processors.cache;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -278,9 +276,6 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
/** */
private int longRunningOpsDumpStep;
- /** */
- private DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
-
/** Events received while cluster state transition was in progress. */
private final List<PendingDiscoveryEvent> pendingEvts = new ArrayList<>();
@@ -2215,7 +2210,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
* @param curTime Current timestamp.
* @return Warning string.
*/
- private String longRunningTransactionWarning(IgniteInternalTx tx, long curTime) {
+ private static String longRunningTransactionWarning(IgniteInternalTx tx, long curTime) {
GridStringBuilder warning = new GridStringBuilder()
.a(">>> Transaction [startTime=")
.a(formatTime(tx.startTime()))
@@ -2484,8 +2479,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
* @param time Time.
* @return Time string.
*/
- private String formatTime(long time) {
- return dateFormat.format(new Date(time));
+ private static String formatTime(long time) {
+ return IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(time));
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index b760651..403b019 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -17,11 +17,10 @@
package org.apache.ignite.internal.processors.cache.distributed.near;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -146,10 +145,6 @@ import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
*/
@SuppressWarnings("unchecked")
public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeoutObject, AutoCloseable, MvccCoordinatorChangeAware {
- /** */
- private static final ThreadLocal<SimpleDateFormat> TIME_FORMAT =
- ThreadLocal.withInitial(() -> new SimpleDateFormat("HH:mm:ss.SSS"));
-
/** Prepare future updater. */
private static final AtomicReferenceFieldUpdater<GridNearTxLocal, IgniteInternalFuture> PREP_FUT_UPD =
AtomicReferenceFieldUpdater.newUpdater(GridNearTxLocal.class, IgniteInternalFuture.class, "prepFut");
@@ -163,7 +158,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
"SQL queries and cache operations may not be used in the same transaction.";
/** DHT mappings. */
- private IgniteTxMappings mappings;
+ private final IgniteTxMappings mappings;
/** Prepare future. */
@GridToStringExclude
@@ -227,7 +222,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
/** */
@GridToStringExclude
- private IgniteTxManager.TxDumpsThrottling txDumpsThrottling;
+ private final IgniteTxManager.TxDumpsThrottling txDumpsThrottling;
/** */
@GridToStringExclude
@@ -238,7 +233,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
private TransactionProxyImpl rollbackOnlyProxy;
/** Tx label. */
- @Nullable private String lb;
+ @Nullable private final String lb;
/** Whether this is Mvcc transaction or not.<p>
* {@code null} means there haven't been any calls made on this transaction, and first operation will give this
@@ -827,7 +822,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
return updateAsync(cacheCtx, new UpdateSourceIterator<IgniteBiTuple<KeyCacheObject, Object>>() {
- private Iterator<Map.Entry<KeyCacheObject, Object>> it = enlisted.entrySet().iterator();
+ private final Iterator<Map.Entry<KeyCacheObject, Object>> it = enlisted.entrySet().iterator();
@Override public EnlistOperation operation() {
return transform ? EnlistOperation.TRANSFORM : EnlistOperation.UPSERT;
@@ -2034,7 +2029,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
return updateAsync(cacheCtx, new UpdateSourceIterator<KeyCacheObject>() {
- private Iterator<KeyCacheObject> it = enlisted.iterator();
+ private final Iterator<KeyCacheObject> it = enlisted.iterator();
@Override public EnlistOperation operation() {
return EnlistOperation.DELETE;
@@ -4045,7 +4040,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
GridStringBuilder warning = new GridStringBuilder(isLong ? "Long transaction time dump " : "Transaction time dump ")
.a("[startTime=")
- .a(TIME_FORMAT.get().format(new Date(startTime)))
+ .a(IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(startTime)))
.a(", totalTime=")
.a(systemTimeMillis + userTimeMillis)
.a(", systemTime=")
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/RecoveryDebug.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/RecoveryDebug.java
index 3fad4e1..c36c9aa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/RecoveryDebug.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/RecoveryDebug.java
@@ -22,10 +22,10 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.EnumSet;
-import java.util.TimeZone;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
@@ -44,16 +44,8 @@ import static java.nio.file.StandardOpenOption.WRITE;
*/
public class RecoveryDebug implements AutoCloseable {
/** */
- private static final ThreadLocal<SimpleDateFormat> sdf = new ThreadLocal<SimpleDateFormat>() {
- /** {@inheritDoc} */
- @Override protected SimpleDateFormat initialValue() {
- SimpleDateFormat f = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss-SSS");
-
- f.setTimeZone(TimeZone.getTimeZone("UTC"));
-
- return f;
- }
- };
+ private static final DateTimeFormatter DATE_FORMATTER =
+ DateTimeFormatter.ofPattern("dd-MM-yyyy-HH-mm-ss-SSS").withZone(ZoneId.of("UTC"));
/** */
@Nullable private final IgniteLogger log;
@@ -85,7 +77,7 @@ public class RecoveryDebug implements AutoCloseable {
return;
File f = new File(tmpDir, "recovery-" +
- sdf.get().format(new Date(time)) + "-" + constId + ".log");
+ DATE_FORMATTER.format(Instant.ofEpochMilli(time)) + "-" + constId + ".log");
f.createNewFile();
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/PdsFolderResolver.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/PdsFolderResolver.java
index 37c4ea5..8d53701 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/PdsFolderResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/PdsFolderResolver.java
@@ -21,7 +21,9 @@ import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.Serializable;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -272,9 +274,11 @@ public class PdsFolderResolver<L extends FileLockHolder> {
res.a(params.size);
res.a(" bytes, modified ");
- final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
- res.a(simpleDateFormat.format(params.lastModified));
+ DateTimeFormatter formatter =
+ DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a").withZone(ZoneId.systemDefault());
+
+ res.a(formatter.format(Instant.ofEpochMilli(params.lastModified)));
res.a(" ");
return res.toString();
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
index 883d938..cc1c2e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
@@ -24,12 +24,13 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.management.ManagementFactory;
-import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
+import java.nio.charset.StandardCharsets;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Date;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicReference;
import javax.management.MBeanServer;
@@ -47,18 +48,12 @@ import org.jetbrains.annotations.Nullable;
public class GridDebug {
/** */
private static final AtomicReference<ConcurrentLinkedQueue<Item>> que =
- new AtomicReference<>(new ConcurrentLinkedQueue<Item>());
-
- /** */
- private static final SimpleDateFormat DEBUG_DATE_FMT = new SimpleDateFormat("HH:mm:ss,SSS");
+ new AtomicReference<>(new ConcurrentLinkedQueue<>());
/** */
private static final FileOutputStream out;
/** */
- private static final Charset charset = Charset.forName("UTF-8");
-
- /** */
private static volatile long start;
/**
@@ -86,7 +81,10 @@ public class GridDebug {
/* */
static {
if (LOGS_PATH != null) {
- File log = new File(new File(LOGS_PATH), new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss-").format(new Date()) +
+ DateTimeFormatter formatter =
+ DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss-").withZone(ZoneId.systemDefault());
+
+ File log = new File(new File(LOGS_PATH), formatter.format(Instant.now()) +
ManagementFactory.getRuntimeMXBean().getName() + ".log");
assert !log.exists();
@@ -130,7 +128,7 @@ public class GridDebug {
Thread th = Thread.currentThread();
try {
- out.write((formatEntry(System.currentTimeMillis(), th.getName(), th.getId(), x) + "\n").getBytes(charset));
+ out.write((formatEntry(System.currentTimeMillis(), th.getName(), th.getId(), x) + "\n").getBytes(StandardCharsets.UTF_8));
out.flush();
}
catch (IOException e) {
@@ -252,7 +250,7 @@ public class GridDebug {
* @return Empty string (useful for assertions like {@code assert x == 0 : D.dumpWithReset();} ).
*/
public static String dumpWithReset() {
- return dumpWithReset(new ConcurrentLinkedQueue<Item>(), null);
+ return dumpWithReset(new ConcurrentLinkedQueue<>(), null);
}
/**
@@ -301,7 +299,7 @@ public class GridDebug {
ConcurrentLinkedQueue<Item> old = que.get();
if (old != null) // Was not stopped.
- que.compareAndSet(old, new ConcurrentLinkedQueue<Item>());
+ que.compareAndSet(old, new ConcurrentLinkedQueue<>());
}
/**
@@ -314,8 +312,8 @@ public class GridDebug {
* @return String.
*/
private static String formatEntry(long ts, String threadName, long threadId, Object... data) {
- return "<" + DEBUG_DATE_FMT.format(new Date(ts)) + "><~DBG~><" + threadName + " id:" + threadId + "> " +
- Arrays.deepToString(data);
+ return "<" + IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(ts)) + "><~DBG~><" + threadName + " id:" +
+ threadId + "> " + Arrays.deepToString(data);
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridTimer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridTimer.java
index 0573851..39b962e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridTimer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridTimer.java
@@ -17,8 +17,7 @@
package org.apache.ignite.internal.util;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.Instant;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -26,9 +25,6 @@ import org.apache.ignite.internal.util.typedef.internal.U;
* Timer to use mostly for debugging purposes.
*/
public class GridTimer {
- /** Debug date format. */
- private static final SimpleDateFormat DEBUG_DATE_FMT = new SimpleDateFormat("HH:mm:ss,SS");
-
/** Timer name. */
private final String name;
@@ -143,8 +139,8 @@ public class GridTimer {
* @param msg Message to debug.
*/
private void debug(String msg) {
- System.out.println('<' + DEBUG_DATE_FMT.format(new Date(U.currentTimeMillis())) + "><DEBUG><" +
- Thread.currentThread().getName() + "> " + msg);
+ System.out.println('<' + IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(U.currentTimeMillis()))
+ + "><DEBUG><" + Thread.currentThread().getName() + "> " + msg);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index deb83061..947fa54 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -97,13 +97,14 @@ import java.security.ProtectionDomain;
import java.security.cert.X509Certificate;
import java.sql.Connection;
import java.sql.SQLException;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
@@ -387,10 +388,10 @@ public abstract class IgniteUtils {
private static volatile GridTuple<String> ggHome;
/** OS JDK string. */
- private static String osJdkStr;
+ private static final String osJdkStr;
/** OS string. */
- private static String osStr;
+ private static final String osStr;
/** JDK string. */
private static String jdkStr;
@@ -447,7 +448,7 @@ public abstract class IgniteUtils {
private static boolean mac;
/** Indicates whether current OS is of RedHat family. */
- private static boolean redHat;
+ private static final boolean redHat;
/** Indicates whether current OS architecture is Sun Sparc. */
private static boolean sparc;
@@ -492,7 +493,7 @@ public abstract class IgniteUtils {
private static String jvmImplName;
/** Will be set to {@code true} if detected a 32-bit JVM. */
- private static boolean jvm32Bit;
+ private static final boolean jvm32Bit;
/** JMX domain as 'xxx.apache.ignite'. */
public static final String JMX_DOMAIN = IgniteUtils.class.getName().substring(0, IgniteUtils.class.getName().
@@ -508,17 +509,24 @@ public abstract class IgniteUtils {
private static final int MASK = 0xf;
/** Long date format pattern for log messages. */
- private static final SimpleDateFormat LONG_DATE_FMT = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ public static final DateTimeFormatter LONG_DATE_FMT =
+ DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss").withZone(ZoneId.systemDefault());
/**
* Short date format pattern for log messages in "quiet" mode.
* Only time is included since we don't expect "quiet" mode to be used
* for longer runs.
*/
- private static final SimpleDateFormat SHORT_DATE_FMT = new SimpleDateFormat("HH:mm:ss");
+ public static final DateTimeFormatter SHORT_DATE_FMT =
+ DateTimeFormatter.ofPattern("HH:mm:ss").withZone(ZoneId.systemDefault());
/** Debug date format. */
- private static final SimpleDateFormat DEBUG_DATE_FMT = new SimpleDateFormat("HH:mm:ss,SSS");
+ public static final DateTimeFormatter DEBUG_DATE_FMT =
+ DateTimeFormatter.ofPattern("HH:mm:ss,SSS").withZone(ZoneId.systemDefault());
+
+ /** Date format for thread dumps. */
+ private static final DateTimeFormatter THREAD_DUMP_FMT =
+ DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss z").withZone(ZoneId.systemDefault());
/** Cached local host address to make sure that every time the same local host is returned. */
private static InetAddress locHost;
@@ -623,7 +631,7 @@ public abstract class IgniteUtils {
private static final Field urlClsLdrField = urlClassLoaderField();
/** Dev only logging disabled. */
- private static boolean devOnlyLogDisabled =
+ private static final boolean devOnlyLogDisabled =
IgniteSystemProperties.getBoolean(IgniteSystemProperties.IGNITE_DEV_ONLY_LOGGING_DISABLED);
/** JDK9: jdk.internal.loader.URLClassPath. */
@@ -633,7 +641,7 @@ public abstract class IgniteUtils {
private static Method mthdURLClassPathGetUrls;
/** Byte count prefixes. */
- private static String BYTE_CNT_PREFIXES = " KMGTPE";
+ private static final String BYTE_CNT_PREFIXES = " KMGTPE";
/*
* Initializes enterprise check.
@@ -1330,7 +1338,7 @@ public abstract class IgniteUtils {
* @return Common prefix for debug messages.
*/
private static String debugPrefix() {
- return '<' + DEBUG_DATE_FMT.format(new Date(System.currentTimeMillis())) + "><DEBUG><" +
+ return '<' + DEBUG_DATE_FMT.format(Instant.now()) + "><DEBUG><" +
Thread.currentThread().getName() + '>' + ' ';
}
@@ -1342,7 +1350,7 @@ public abstract class IgniteUtils {
Runtime runtime = Runtime.getRuntime();
- X.println('<' + DEBUG_DATE_FMT.format(new Date(System.currentTimeMillis())) + "><DEBUG><" +
+ X.println('<' + DEBUG_DATE_FMT.format(Instant.now()) + "><DEBUG><" +
Thread.currentThread().getName() + "> Heap stats [free=" + runtime.freeMemory() / (1024 * 1024) +
"M, total=" + runtime.totalMemory() / (1024 * 1024) + "M]");
}
@@ -1474,7 +1482,7 @@ public abstract class IgniteUtils {
mxBean.dumpAllThreads(mxBean.isObjectMonitorUsageSupported(), mxBean.isSynchronizerUsageSupported());
GridStringBuilder sb = new GridStringBuilder(THREAD_DUMP_MSG)
- .a(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z").format(new Date(U.currentTimeMillis()))).a(NL);
+ .a(THREAD_DUMP_FMT.format(Instant.ofEpochMilli(U.currentTimeMillis()))).a(NL);
for (ThreadInfo info : threadInfos) {
printThreadInfo(info, sb, deadlockedThreadsIds);
@@ -3360,7 +3368,7 @@ public abstract class IgniteUtils {
* @return Formatted time string.
*/
public static String format(long sysTime) {
- return LONG_DATE_FMT.format(new java.util.Date(sysTime));
+ return LONG_DATE_FMT.format(Instant.ofEpochMilli(sysTime));
}
/**
@@ -4483,7 +4491,7 @@ public abstract class IgniteUtils {
if (log != null)
log.getLogger(IgniteConfiguration.COURTESY_LOGGER_NAME).warning(compact(longMsg.toString()));
else
- X.println("[" + SHORT_DATE_FMT.format(new java.util.Date()) + "] (courtesy) " +
+ X.println("[" + SHORT_DATE_FMT.format(Instant.now()) + "] (courtesy) " +
compact(shortMsg.toString()));
}
@@ -4579,7 +4587,7 @@ public abstract class IgniteUtils {
if (log != null)
log.warning(compact(msg.toString()), e);
else {
- X.println("[" + SHORT_DATE_FMT.format(new java.util.Date()) + "] (wrn) " +
+ X.println("[" + SHORT_DATE_FMT.format(Instant.now()) + "] (wrn) " +
compact(msg.toString()));
if (e != null)
@@ -4609,7 +4617,7 @@ public abstract class IgniteUtils {
if (log != null)
log.warning(IgniteLogger.DEV_ONLY, compact(msg.toString()), null);
else
- X.println("[" + SHORT_DATE_FMT.format(new java.util.Date()) + "] (wrn) " +
+ X.println("[" + SHORT_DATE_FMT.format(Instant.now()) + "] (wrn) " +
compact(msg.toString()));
}
@@ -4805,7 +4813,7 @@ public abstract class IgniteUtils {
log.error(compact(longMsg.toString()), e);
}
else {
- X.printerr("[" + SHORT_DATE_FMT.format(new java.util.Date()) + "] (err) " +
+ X.printerr("[" + SHORT_DATE_FMT.format(Instant.now()) + "] (err) " +
compact(shortMsg.toString()));
if (e != null)
@@ -4838,7 +4846,7 @@ public abstract class IgniteUtils {
public static void quiet(boolean err, Object... objs) {
assert objs != null;
- String time = SHORT_DATE_FMT.format(new java.util.Date());
+ String time = SHORT_DATE_FMT.format(Instant.now());
SB sb = new SB();
@@ -7844,19 +7852,6 @@ public abstract class IgniteUtils {
}
/**
- * Formats passed date with specified pattern.
- *
- * @param date Date to format.
- * @param ptrn Pattern.
- * @return Formatted date.
- */
- public static String format(Date date, String ptrn) {
- java.text.DateFormat format = new java.text.SimpleDateFormat(ptrn);
-
- return format.format(date);
- }
-
- /**
* @param ctx Kernal context.
* @return Closure that converts node ID to a node.
*/
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
index 5fecd01..c92a69c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
@@ -35,7 +35,7 @@ import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -59,6 +59,7 @@ import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
import org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.SB;
@@ -158,14 +159,6 @@ public class VisorTaskUtils {
}
};
- /** Debug date format. */
- private static final ThreadLocal<SimpleDateFormat> DEBUG_DATE_FMT = new ThreadLocal<SimpleDateFormat>() {
- /** {@inheritDoc} */
- @Override protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat("HH:mm:ss,SSS");
- }
- };
-
/**
* @param name Grid-style nullable name.
* @return Name with {@code null} replaced to <default>.
@@ -806,8 +799,12 @@ public class VisorTaskUtils {
log.warning(msg);
}
else
- X.println(String.format("[%s][%s]%s",
- DEBUG_DATE_FMT.get().format(time), Thread.currentThread().getName(), msg));
+ X.println(String.format(
+ "[%s][%s]%s",
+ IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(time)),
+ Thread.currentThread().getName(),
+ msg
+ ));
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFormatter.java b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFormatter.java
index cfef38b..32c3daf 100644
--- a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFormatter.java
+++ b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFormatter.java
@@ -19,10 +19,10 @@ package org.apache.ignite.logger.java;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.Instant;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.internal.S;
/**
@@ -32,14 +32,6 @@ public class JavaLoggerFormatter extends Formatter {
/** Name for anonymous loggers. */
public static final String ANONYMOUS_LOGGER_NAME = "UNKNOWN";
- /** */
- private static final ThreadLocal<SimpleDateFormat> DATE_FORMATTER = new ThreadLocal<SimpleDateFormat>() {
- /** {@inheritDoc} */
- @Override protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat("HH:mm:ss,SSS");
- }
- };
-
/** {@inheritDoc} */
@Override public String format(LogRecord record) {
String threadName = Thread.currentThread().getName();
@@ -63,7 +55,7 @@ public class JavaLoggerFormatter extends Formatter {
ex = "\n" + stackTrace;
}
- return "[" + DATE_FORMATTER.get().format(new Date(record.getMillis())) + "][" +
+ return "[" + IgniteUtils.DEBUG_DATE_FMT.format(Instant.ofEpochMilli(record.getMillis())) + "][" +
record.getLevel() + "][" +
threadName + "][" +
logName + "] " +
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
index 283a8c6..df45930 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
@@ -18,11 +18,12 @@
package org.apache.ignite.spi.discovery.tcp;
import java.net.InetSocketAddress;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -74,6 +75,10 @@ abstract class TcpDiscoveryImpl {
/** How often the warning message should occur in logs to prevent log spam. */
public static final long LOG_WARN_MSG_TIMEOUT = 60 * 60 * 1000L;
+ /** Debug log date formatter. */
+ private static final DateTimeFormatter DEBUG_FORMATTER =
+ DateTimeFormatter.ofPattern("[HH:mm:ss,SSS]").withZone(ZoneId.systemDefault());
+
/** */
protected final TcpDiscoverySpi spi;
@@ -178,7 +183,7 @@ abstract class TcpDiscoveryImpl {
protected void debugLog(@Nullable TcpDiscoveryAbstractMessage discoMsg, String msg) {
assert debugMode;
- String msg0 = new SimpleDateFormat("[HH:mm:ss,SSS]").format(new Date(System.currentTimeMillis())) +
+ String msg0 = DEBUG_FORMATTER.format(Instant.now()) +
'[' + Thread.currentThread().getName() + "][" + getLocalNodeId() +
"-" + locNode.internalOrder() + "] " +
msg;
diff --git a/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java b/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
index 1be4947..0a403e2 100644
--- a/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
+++ b/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
@@ -17,10 +17,9 @@
package org.apache.ignite.startup;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.LinkedList;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
@@ -37,6 +36,7 @@ import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteKernal;
import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.CU;
@@ -67,9 +67,6 @@ public class BasicWarmupClosure implements IgniteInClosure<IgniteConfiguration>
/** Grid count. */
private int gridCnt = DFLT_GRID_CNT;
- /** Warmup date format. */
- private static final SimpleDateFormat WARMUP_DATE_FMT = new SimpleDateFormat("HH:mm:ss");
-
/** Warmup thread count. */
private int threadCnt = Runtime.getRuntime().availableProcessors() * 2;
@@ -343,7 +340,7 @@ public class BasicWarmupClosure implements IgniteInClosure<IgniteConfiguration>
* @param msg Format message.
*/
private static void out(String msg) {
- System.out.println('[' + WARMUP_DATE_FMT.format(new Date(System.currentTimeMillis())) + "][WARMUP][" +
+ System.out.println('[' + IgniteUtils.SHORT_DATE_FMT.format(Instant.now()) + "][WARMUP][" +
Thread.currentThread().getName() + ']' + ' ' + msg);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/AboutDialog.java b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/AboutDialog.java
index a5afa71..d13ef5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/AboutDialog.java
+++ b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/AboutDialog.java
@@ -29,8 +29,8 @@ import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -57,6 +57,9 @@ public class AboutDialog extends JDialog {
/** Border color. */
private static final Color VALUE_BORDER_COLOR = new Color(0xcdcdcd);
+ /** Release date formatter. */
+ private static final DateTimeFormatter RELEASE_DATE_FORMATTER = DateTimeFormatter.ofPattern("dd MMM yyyy");
+
/** Global reference to about dialog to prevent double open. */
private static AboutDialog aboutDlg;
@@ -70,7 +73,7 @@ public class AboutDialog extends JDialog {
private final String ver;
/** Release date. */
- private final Date release;
+ private final LocalDate release;
/** Copyright. */
private final String copyright;
@@ -85,7 +88,7 @@ public class AboutDialog extends JDialog {
* @param release Release date.
* @param copyright Copyright.
*/
- AboutDialog(String appName, String bannerSpec, String ver, Date release, String copyright) {
+ AboutDialog(String appName, String bannerSpec, String ver, LocalDate release, String copyright) {
this.appName = appName;
this.bannerSpec = bannerSpec;
@@ -101,7 +104,7 @@ public class AboutDialog extends JDialog {
}
/** Close action. */
- private Action closeAct = new AbstractAction("Close") {
+ private final Action closeAct = new AbstractAction("Close") {
@Override public void actionPerformed(ActionEvent e) {
assert SwingUtilities.isEventDispatchThread();
@@ -110,7 +113,7 @@ public class AboutDialog extends JDialog {
};
/** Close button. */
- private JButton closeBtn = new JButton(closeAct);
+ private final JButton closeBtn = new JButton(closeAct);
/**
* Create and initialize dialog controls.
@@ -224,7 +227,7 @@ public class AboutDialog extends JDialog {
licPanel.add(Box.createVerticalGlue(), gbcStrut());
addAboutItem(licPanel, "Version:", ver);
- addAboutItem(licPanel, "Release Date:", new SimpleDateFormat("dd MMM yyyy").format(release));
+ addAboutItem(licPanel, "Release Date:", RELEASE_DATE_FORMATTER.format(release));
addAboutItem(licPanel, "Copyright:", copyright);
return licPanel;
@@ -325,8 +328,8 @@ public class AboutDialog extends JDialog {
* @param release Release date.
* @param copyright Copyright blurb.
*/
- public static void centerShow(final String appName, final String bannerSpec,
- final String ver, final Date release, final String copyright) {
+ public static void centerShow(String appName, String bannerSpec,
+ String ver, LocalDate release, String copyright) {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
if (aboutDlg == null) {
diff --git a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
index 460f7c3..cd67d36 100644
--- a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
+++ b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
@@ -27,12 +27,9 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.URL;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Date;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
@@ -67,7 +64,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_PROG_NAME;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_RESTART_CODE;
import static org.apache.ignite.internal.IgniteVersionUtils.ACK_VER_STR;
import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
-import static org.apache.ignite.internal.IgniteVersionUtils.RELEASE_DATE_STR;
+import static org.apache.ignite.internal.IgniteVersionUtils.RELEASE_DATE;
import static org.apache.ignite.internal.IgniteVersionUtils.VER_STR;
/**
@@ -127,9 +124,6 @@ public final class CommandLineStartup {
/** @see IgniteSystemProperties#IGNITE_PROG_NAME */
public static final String DFLT_PROG_NAME = "ignite.{sh|bat}";
- /** Build date. */
- private static Date releaseDate;
-
/**
* Static initializer.
*/
@@ -157,8 +151,6 @@ public final class CommandLineStartup {
// Mac OS specific customizations: app icon and about dialog.
try {
- releaseDate = new SimpleDateFormat("ddMMyyyy", Locale.US).parse(RELEASE_DATE_STR);
-
Class<?> appCls = Class.forName("com.apple.eawt.Application");
Object osxApp = appCls.getDeclaredMethod("getApplication").invoke(null);
@@ -184,7 +176,7 @@ public final class CommandLineStartup {
new InvocationHandler() {
@Override public Object invoke(Object proxy, Method mtd, Object[] args) throws Throwable {
AboutDialog.centerShow("Ignite Node", bannerUrl.toExternalForm(), VER_STR,
- releaseDate, COPYRIGHT);
+ RELEASE_DATE, COPYRIGHT);
return null;
}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/AbstractDataTypesCoverageTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/AbstractDataTypesCoverageTest.java
index e8aa75f..ac1917f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/AbstractDataTypesCoverageTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/AbstractDataTypesCoverageTest.java
@@ -20,10 +20,12 @@ package org.apache.ignite.internal.processors.cache;
import java.io.Serializable;
import java.sql.Time;
import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
@@ -287,13 +289,13 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
private static class TestPolicy implements ExpiryPolicy, Serializable {
/** */
- private Long create;
+ private final Long create;
/** */
- private Long access;
+ private final Long access;
/** */
- private Long update;
+ private final Long update;
/**
* @param create TTL for creation.
@@ -567,10 +569,10 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
private static final long serialVersionUID = 0L;
/** Original value. */
- private Object val;
+ private final Object val;
/** Converted value. */
- private String sqlStrVal;
+ private final String sqlStrVal;
/**
* Constructor.
@@ -604,13 +606,14 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
private static final String PATTERN = "HH:mm:ss.SSS";
/** */
- private static final SimpleDateFormat TIME_DATE_FORMAT = new SimpleDateFormat(PATTERN);
+ private static final DateTimeFormatter TIME_DATE_FORMAT =
+ DateTimeFormatter.ofPattern(PATTERN).withZone(ZoneId.systemDefault());
/** Original value. */
- private Object val;
+ private final Object val;
/** Converted value. */
- private String sqlStrVal;
+ private final String sqlStrVal;
/**
* Constructor.
@@ -619,7 +622,11 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Timed(Time time) {
val = time;
- sqlStrVal = "PARSEDATETIME('" + TIME_DATE_FORMAT.format(time) + "', '" + PATTERN + "')";
+ sqlStrVal = String.format(
+ "PARSEDATETIME('%s', '%s')",
+ TIME_DATE_FORMAT.format(Instant.ofEpochMilli(time.getTime())),
+ PATTERN
+ );
}
/**
@@ -629,8 +636,11 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Timed(LocalTime time) {
val = time;
- sqlStrVal = "PARSEDATETIME('" + TIME_DATE_FORMAT.format(
- java.sql.Time.valueOf(time)) + "', '" + PATTERN + "')";
+ sqlStrVal = String.format(
+ "PARSEDATETIME('%s', '%s')",
+ TIME_DATE_FORMAT.format(time),
+ PATTERN
+ );
}
/** @inheritDoc */
@@ -655,13 +665,14 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
private static final String PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
/** */
- private static final SimpleDateFormat DATE_TIME_DATE_FORMAT = new SimpleDateFormat(PATTERN);
+ private static final DateTimeFormatter DATE_TIME_DATE_FORMAT =
+ DateTimeFormatter.ofPattern(PATTERN).withZone(ZoneId.systemDefault());
/** Original value. */
- private Object val;
+ private final Object val;
/** Converted value. */
- private String sqlStrVal;
+ private final String sqlStrVal;
/**
* Constructor.
@@ -670,7 +681,7 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Dated(Date date) {
val = date;
- sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(date) + "', '" + PATTERN + "')";
+ sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(date.toInstant()) + "', '" + PATTERN + "')";
}
/**
@@ -680,8 +691,7 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Dated(LocalDateTime date) {
val = date;
- sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(
- java.sql.Timestamp.valueOf(date)) + "', '" + PATTERN + "')";
+ sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(date) + "', '" + PATTERN + "')";
}
/**
@@ -691,7 +701,7 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Dated(Timestamp ts, String ptrn) {
val = ts;
- sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(ts) + "', '" + ptrn + "')";
+ sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(ts.toLocalDateTime()) + "', '" + ptrn + "')";
}
/**
@@ -701,8 +711,7 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
*/
public Dated(LocalDate date) {
val = date;
- sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(
- java.sql.Timestamp.valueOf(date.atStartOfDay())) + "', '" + PATTERN + "')";
+ sqlStrVal = "PARSEDATETIME('" + DATE_TIME_DATE_FORMAT.format(date.atStartOfDay()) + "', '" + PATTERN + "')";
}
/** @inheritDoc */
@@ -724,10 +733,10 @@ public abstract class AbstractDataTypesCoverageTest extends GridCommonAbstractTe
private static final long serialVersionUID = 0L;
/** Original value. */
- private Object val;
+ private final Object val;
/** Converted value. */
- private String sqlStrVal;
+ private final String sqlStrVal;
/**
* Constructor.
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/cache/GridCacheBenchmark.java b/modules/core/src/test/java/org/apache/ignite/loadtests/cache/GridCacheBenchmark.java
index 23edc21..c5bf9a9 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/cache/GridCacheBenchmark.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/cache/GridCacheBenchmark.java
@@ -17,11 +17,12 @@
package org.apache.ignite.loadtests.cache;
-import java.util.Date;
+import java.time.Instant;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.testframework.GridFileLock;
@@ -190,7 +191,7 @@ public class GridCacheBenchmark {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
durPutx,
durGet);
}
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridIoManagerBenchmark.java b/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridIoManagerBenchmark.java
index 1841d66..0ab8246 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridIoManagerBenchmark.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridIoManagerBenchmark.java
@@ -18,9 +18,9 @@
package org.apache.ignite.loadtests.communication;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
@@ -36,13 +36,13 @@ import org.apache.ignite.internal.IgniteKernal;
import org.apache.ignite.internal.managers.communication.GridIoManager;
import org.apache.ignite.internal.managers.communication.GridMessageListener;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.loadtests.util.GridCumulativeAverage;
-import org.apache.ignite.testframework.GridLoadTestUtils;
import org.jetbrains.annotations.Nullable;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -194,8 +194,8 @@ public class GridIoManagerBenchmark {
try {
X.println("Saving results to output file: " + outputFilename);
- appendLineToFile(outputFilename, "%s,%d", GridLoadTestUtils.DATE_TIME_FORMAT.format(
- new Date()), qpsAvg.get());
+ appendLineToFile(outputFilename, "%s,%d", IgniteUtils.LONG_DATE_FMT.format(
+ Instant.now()), qpsAvg.get());
}
catch (IOException e) {
X.println("Failed to record results to a file: " + e.getMessage());
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/dsi/GridDsiClient.java b/modules/core/src/test/java/org/apache/ignite/loadtests/dsi/GridDsiClient.java
index 42f325d..84f1de2 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/dsi/GridDsiClient.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/dsi/GridDsiClient.java
@@ -18,9 +18,9 @@
package org.apache.ignite.loadtests.dsi;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@@ -36,6 +36,7 @@ import org.apache.ignite.Ignition;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.compute.ComputeTaskFuture;
import org.apache.ignite.internal.util.GridAtomicLong;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.T3;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.lang.IgnitePredicate;
@@ -371,7 +372,7 @@ public class GridDsiClient implements Callable {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d,%d,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
txPerSecond,
avgLatency,
maxSubmitTime);
@@ -389,7 +390,7 @@ public class GridDsiClient implements Callable {
GridLoadTestUtils.appendLineToFile(
srvOutputFileName,
"%s,%d,%d,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
sst.get1(),
sst.get2(),
sst.get3());
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClient.java b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClient.java
index bb8c571..8f91f00 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClient.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClient.java
@@ -18,9 +18,9 @@
package org.apache.ignite.loadtests.job;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.LongAdder;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCompute;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.lang.GridAbsClosure;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
@@ -125,7 +126,7 @@ public class GridJobExecutionLoadTestClient implements Callable<Object> {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
avgTxPerSec.get()
);
}
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClientSemaphore.java b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClientSemaphore.java
index 674ae10..d4254ab 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClientSemaphore.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionLoadTestClientSemaphore.java
@@ -18,9 +18,9 @@
package org.apache.ignite.loadtests.job;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -30,6 +30,7 @@ import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCompute;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cluster.ClusterGroup;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.lang.GridAbsClosure;
import org.apache.ignite.internal.util.typedef.CI1;
import org.apache.ignite.internal.util.typedef.G;
@@ -141,7 +142,7 @@ public class GridJobExecutionLoadTestClientSemaphore implements Callable<Object>
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
avgTxPerSec.get()
);
}
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeLoadTest.java b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeLoadTest.java
index 8dea6df..078f5c5 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeLoadTest.java
@@ -18,9 +18,9 @@
package org.apache.ignite.loadtests.job;
import java.io.IOException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
@@ -36,6 +36,7 @@ import org.apache.ignite.compute.ComputeJobResult;
import org.apache.ignite.compute.ComputeJobResultPolicy;
import org.apache.ignite.compute.ComputeTask;
import org.apache.ignite.compute.ComputeTaskCancelledException;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
@@ -162,7 +163,7 @@ public class GridJobExecutionSingleNodeLoadTest {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
avgTasksPerSec.get());
}
catch (IOException e) {
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeSemaphoreLoadTest.java b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeSemaphoreLoadTest.java
index c0a0973..0107dca 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeSemaphoreLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/job/GridJobExecutionSingleNodeSemaphoreLoadTest.java
@@ -18,7 +18,7 @@
package org.apache.ignite.loadtests.job;
import java.io.IOException;
-import java.util.Date;
+import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
@@ -32,6 +32,7 @@ import org.apache.ignite.compute.ComputeJobResultPolicy;
import org.apache.ignite.compute.ComputeTask;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.CI1;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.G;
@@ -137,7 +138,7 @@ public class GridJobExecutionSingleNodeSemaphoreLoadTest {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
avgTasksPerSec.get());
}
catch (IOException e) {
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/mergesort/GridMergeSortLoadTest.java b/modules/core/src/test/java/org/apache/ignite/loadtests/mergesort/GridMergeSortLoadTest.java
index 6aff740..34625e6 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/mergesort/GridMergeSortLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/mergesort/GridMergeSortLoadTest.java
@@ -18,10 +18,11 @@
package org.apache.ignite.loadtests.mergesort;
import java.io.IOException;
-import java.util.Date;
+import java.time.Instant;
import java.util.Random;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.lang.GridAbsClosure;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
@@ -94,7 +95,7 @@ public class GridMergeSortLoadTest {
GridLoadTestUtils.appendLineToFile(
outputFileName,
"%s,%d",
- GridLoadTestUtils.DATE_TIME_FORMAT.format(new Date()),
+ IgniteUtils.LONG_DATE_FMT.format(Instant.now()),
execTime / 1000);
}
}
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridLoadTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridLoadTestUtils.java
index 9d4db7f..4e2718c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridLoadTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridLoadTestUtils.java
@@ -23,7 +23,6 @@ import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
-import java.text.SimpleDateFormat;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -35,9 +34,6 @@ import org.jetbrains.annotations.Nullable;
* Utility class for load tests.
*/
public class GridLoadTestUtils {
- /** Date and time format. */
- public static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
-
/** Lock file. */
public static final File LOCK_FILE = new File(System.getProperty("user.home"), ".gg-loadtest-lock");
diff --git a/modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularTxStreamer.java b/modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularTxStreamer.java
index e0c5eb0..db15ec7 100644
--- a/modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularTxStreamer.java
+++ b/modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularTxStreamer.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.ducktest.tests.cellular_affinity_test;
import java.time.Duration;
import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -31,6 +30,7 @@ import org.apache.ignite.IgniteCache;
import org.apache.ignite.cache.affinity.Affinity;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.internal.ducktest.utils.IgniteAwareApplication;
+import org.apache.ignite.internal.util.IgniteUtils;
/**
* Streams transactions to specified cell.
@@ -121,10 +121,10 @@ public class CellularTxStreamer extends IgniteAwareApplication {
}
List<String> result = new ArrayList<>();
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss.SSS");
for (int i = 0; i < precision; i++)
- result.add(Duration.ofNanos(latencies[i]).toMillis() + " ms at " + formatter.format(opStartTimes[i]));
+ result.add(Duration.ofNanos(latencies[i]).toMillis() + " ms at " +
+ IgniteUtils.DEBUG_DATE_FMT.format(opStartTimes[i]));
recordResult("WORST_LATENCY", result.toString());
recordResult("STREAMED", cnt - warmup);
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsTypesAbstractTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsTypesAbstractTest.java
index 553b5b5..8cb82c9 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsTypesAbstractTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsTypesAbstractTest.java
@@ -17,12 +17,11 @@
package org.apache.ignite.internal.processors.query.stat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.TimeZone;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
import java.util.UUID;
-
import org.apache.ignite.Ignite;
/**
@@ -40,34 +39,20 @@ public abstract class StatisticsTypesAbstractTest extends StatisticsAbstractTest
private static final String START_DATE = "1970.01.01 12:00:00 UTC";
/** Start time. */
- protected static final long TIMESTART;
+ protected static final Instant TIMESTART = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss z")
+ .parse(START_DATE, Instant::from);
/** Time format. */
- private static final SimpleDateFormat TIME_FORMATTER = new SimpleDateFormat("HH:mm:ss");
+ private static final DateTimeFormatter TIME_FORMATTER =
+ DateTimeFormatter.ofPattern("HH:mm:ss").withZone(ZoneId.of("UTC"));
/** Date format. */
- private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
-
- /** Timestam format. */
- private static final SimpleDateFormat TIMESTAMP_FORMATTER = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
- static {
- TimeZone tz = TimeZone.getTimeZone("UTC");
- SimpleDateFormat SDF = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z");
- SDF.setTimeZone(tz);
- Calendar cal = Calendar.getInstance();
- try {
- cal.setTime(SDF.parse(START_DATE));
- }
- catch (ParseException e) {
- // No-op.
- }
- TIMESTART = cal.getTimeInMillis();
+ private static final DateTimeFormatter DATE_FORMATTER =
+ DateTimeFormatter.ofPattern("yyyy-MM-dd").withZone(ZoneId.of("UTC"));
- TIME_FORMATTER.setTimeZone(tz);
- DATE_FORMATTER.setTimeZone(tz);
- TIMESTAMP_FORMATTER.setTimeZone(tz);
- }
+ /** Timestamp format. */
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("UTC"));
/** {@inheritDoc} */
@Override protected void beforeTestsStarted() throws Exception {
@@ -132,22 +117,13 @@ public abstract class StatisticsTypesAbstractTest extends StatisticsAbstractTest
return String.valueOf((double) cntr / 100);
case "TIME":
- Calendar timeCalendar = Calendar.getInstance();
- timeCalendar.setTimeInMillis(TIMESTART);
- timeCalendar.add(Calendar.SECOND, (int) cntr);
- return "'" + TIME_FORMATTER.format(timeCalendar.getTime()) + "'";
+ return "'" + TIME_FORMATTER.format(TIMESTART.plus(cntr, ChronoUnit.SECONDS)) + "'";
case "DATE":
- Calendar dateCalendar = Calendar.getInstance();
- dateCalendar.setTimeInMillis(TIMESTART);
- dateCalendar.add(Calendar.DATE, (int) cntr);
- return "'" + DATE_FORMATTER.format(dateCalendar.getTime()) + "'";
+ return "'" + DATE_FORMATTER.format(TIMESTART.plus(cntr, ChronoUnit.DAYS)) + "'";
case "TIMESTAMP":
- Calendar tsCalendar = Calendar.getInstance();
- tsCalendar.setTimeInMillis(TIMESTART);
- tsCalendar.add(Calendar.SECOND, (int) cntr);
- return "'" + TIMESTAMP_FORMATTER.format(tsCalendar.getTime()) + "'";
+ return "'" + TIMESTAMP_FORMATTER.format(TIMESTART.plus(cntr, ChronoUnit.SECONDS)) + "'";
case "VARCHAR":
return "'varchar" + cntr + "'";
diff --git a/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/StartNodeCallableImpl.java b/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/StartNodeCallableImpl.java
index a3d2d6d..57bb2eb 100644
--- a/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/StartNodeCallableImpl.java
+++ b/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/StartNodeCallableImpl.java
@@ -23,8 +23,9 @@ import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.PrintStream;
import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.UUID;
import java.util.regex.Pattern;
import com.jcraft.jsch.ChannelExec;
@@ -71,7 +72,8 @@ public class StartNodeCallableImpl implements StartNodeCallable {
private static final String DFLT_SCRIPT_LINUX = "bin/ignite.sh -v";
/** Date format for log file name. */
- private static final SimpleDateFormat FILE_NAME_DATE_FORMAT = new SimpleDateFormat("MM-dd-yyyy--HH-mm-ss");
+ private static final DateTimeFormatter FILE_NAME_DATE_FORMAT =
+ DateTimeFormatter.ofPattern("MM-dd-yyyy--HH-mm-ss").withZone(ZoneId.systemDefault());
/** Used to register successful node start in log */
private static final String SUCCESSFUL_START_MSG = "Successfully bound to TCP port";
@@ -171,7 +173,8 @@ public class StartNodeCallableImpl implements StartNodeCallable {
if (cfg == null)
cfg = "";
- String id = FILE_NAME_DATE_FORMAT.format(new Date()) + '-' + UUID.randomUUID().toString().substring(0, 8);
+ String id = FILE_NAME_DATE_FORMAT.format(Instant.now()) + '-' +
+ UUID.randomUUID().toString().substring(0, 8);
String scriptOutputFileName = id + ".log";
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
index c28292c..9989d00 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
@@ -48,9 +48,6 @@ class VisorConsole {
/** Copyright. */
protected def copyright() = COPYRIGHT
- /** Release date. */
- protected def releaseDate() = new SimpleDateFormat("ddMMyyyy").parse(RELEASE_DATE_STR)
-
/** Program name. */
protected val progName = sys.props.getOrElse(IGNITE_PROG_NAME, "ignitevisorcmd")
@@ -326,7 +323,7 @@ class VisorConsole {
new java.lang.reflect.InvocationHandler {
def invoke(proxy: Any, mth: java.lang.reflect.Method, args: Array[Object]) = {
AboutDialog.centerShow("Visor - Ignite Shell Console", bannerIconUrl.toExternalForm,
- version(), releaseDate(), copyright())
+ version(), RELEASE_DATE, copyright())
null
}