Mercurial > hg > heapstats
changeset 173:b92aa059996a
Bug 3057: [JDK 9] HeapStats Analyzer could not start on JDK 9 Reviewed-by: ykubota http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3057 Closes #29
line wrap: on
line diff
--- a/ChangeLog Fri Jul 01 10:07:50 2016 +0900 +++ b/ChangeLog Fri Jul 01 21:59:42 2016 +0900 @@ -1,3 +1,7 @@ +2016-07-01 Yasumasa Suenaga <kubota.yuji@lab.ntt.co.jp> + + * Bug 3057: [JDK 9] HeapStats Analyzer could not start on JDK 9 + 2016-07-01 KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp> * Bug 3023: [JDK 9] Search JDK shared-library correctly
--- a/analyzer/fx/heapstats.properties Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/heapstats.properties Fri Jul 01 21:59:42 2016 +0900 @@ -10,4 +10,5 @@ socketend=tcp,udp,tcp6,udp6 heaporder_bottom_young=true language=en +datetime_format=yyyy/MM/dd HH:mm:ss #plugins= \ No newline at end of file
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/jvmlive/jdp/JdpDecoder.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/jvmlive/jdp/JdpDecoder.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,7 +42,7 @@ import jp.co.ntt.oss.heapstats.fx.lambda.EventHandlerWrapper; import jp.co.ntt.oss.heapstats.jmx.JMXHelper; import jp.co.ntt.oss.heapstats.lambda.RunnableWrapper; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; +import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; /** @@ -172,7 +172,7 @@ private void setJdpTableKeyValue(JdpTableKeyValue val, Labeled jmxURL){ switch(val.keyProperty().get()){ case "Received Time": - val.valueProperty().set((new LocalDateTimeConverter()).toString(receivedTime)); + val.valueProperty().set(receivedTime.format(HeapStatsUtils.getDateTimeFormatter())); break; case "Address": @@ -222,7 +222,7 @@ jmxProcPool.submit(new RunnableWrapper(() -> heapstatsValue.valueProperty().set(new JMXHelper(jmxServiceURL)))); jdpTableKeyValue.set(FXCollections.observableArrayList( - new JdpTableKeyValue("Received Time", (new LocalDateTimeConverter()).toString(receivedTime)), + new JdpTableKeyValue("Received Time", receivedTime.format(HeapStatsUtils.getDateTimeFormatter())), new JdpTableKeyValue("Address", sourceAddr.getAddress().getHostAddress()), new JdpTableKeyValue("JDP Instance Name", instanceName), new JdpTableKeyValue("Main Class", mainClass),
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/ArchiveDataConverter.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/ArchiveDataConverter.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -18,9 +18,10 @@ package jp.co.ntt.oss.heapstats.plugin.builtin.log; +import java.util.Optional; import javafx.util.StringConverter; import jp.co.ntt.oss.heapstats.container.log.ArchiveData; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; +import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; /** * This class converts LocalDateTime in ArchiveData to String. @@ -32,8 +33,9 @@ @Override public String toString(ArchiveData object) { - LocalDateTimeConverter dateTimeConv = new LocalDateTimeConverter(); - return dateTimeConv.toString(object.getDate()); + return Optional.ofNullable(object) + .map(o -> o.getDate().format(HeapStatsUtils.getDateTimeFormatter())) + .orElse(null); } @Override
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/LogController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/LogController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,6 +42,7 @@ import javafx.scene.control.TextField; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; +import javafx.util.converter.LocalDateTimeStringConverter; import jp.co.ntt.oss.heapstats.WindowController; import jp.co.ntt.oss.heapstats.container.log.ArchiveData; import jp.co.ntt.oss.heapstats.container.log.DiffData; @@ -53,7 +54,6 @@ import jp.co.ntt.oss.heapstats.plugin.builtin.log.tabs.LogResourcesController; import jp.co.ntt.oss.heapstats.task.ParseLogFile; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; import jp.co.ntt.oss.heapstats.utils.TaskAdapter; /** @@ -94,8 +94,9 @@ public void initialize(URL url, ResourceBundle rb) { super.initialize(url, rb); - startCombo.setConverter(new LocalDateTimeConverter()); - endCombo.setConverter(new LocalDateTimeConverter()); + LocalDateTimeStringConverter converter = new LocalDateTimeStringConverter(HeapStatsUtils.getDateTimeFormatter(), null); + startCombo.setConverter(converter); + endCombo.setConverter(converter); okBtn.disableProperty().bind(startCombo.getSelectionModel().selectedIndexProperty().greaterThanOrEqualTo(endCombo.getSelectionModel().selectedIndexProperty())); archiveList = new SimpleObjectProperty<>(FXCollections.emptyObservableList());
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/LogDataConverter.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/LogDataConverter.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,7 +19,7 @@ import javafx.util.StringConverter; import jp.co.ntt.oss.heapstats.container.log.LogData; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; +import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; /** * StringConverter for LogData. This class provides method to convert @@ -27,12 +27,12 @@ * * @author Yasumasa Suenaga. */ + public class LogDataConverter extends StringConverter<LogData> { @Override public String toString(LogData object) { - LocalDateTimeConverter dateTimeConv = new LocalDateTimeConverter(); - return dateTimeConv.toString(object.getDateTime()); + return object.getDateTime().format(HeapStatsUtils.getDateTimeFormatter()); } /**
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/tabs/LogResourcesController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/log/tabs/LogResourcesController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Nippon Telegraph and Telephone Corporation + * Copyright (C) 2015-2016 Nippon Telegraph and Telephone Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -53,7 +53,6 @@ import jp.co.ntt.oss.heapstats.container.log.LogData; import jp.co.ntt.oss.heapstats.container.log.SummaryData; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; /** * FXML Controller class for "Resource Data" tab in LogData plugin. @@ -322,9 +321,8 @@ return; } - LocalDateTimeConverter converter = new LocalDateTimeConverter(); List<String> archiveDateList = archiveList.get().stream() - .map(a -> converter.toString(a.getDate())) + .map(a -> a.getDate().format(HeapStatsUtils.getDateTimeFormatter())) .collect(Collectors.toList()); chartGrid.getChildren().stream() .filter(n -> n instanceof StackPane) @@ -342,9 +340,8 @@ return; } - LocalDateTimeConverter converter = new LocalDateTimeConverter(); List<String> suspectRebootDateList = suspectList.stream() - .map(d -> converter.toString(d)) + .map(d -> d.format(HeapStatsUtils.getDateTimeFormatter())) .collect(Collectors.toList()); chartGrid.getChildren().stream() .filter(n -> n instanceof StackPane) @@ -393,8 +390,6 @@ /* Monitor contantion */ private final ObservableList<XYChart.Data<String, Long>> monitorsBuf; - private final LocalDateTimeConverter converter; - private final List<LogData> targetLogData; private final List<DiffData> targetDiffData; @@ -422,14 +417,13 @@ threadsBuf = FXCollections.observableArrayList(); monitorsBuf = FXCollections.observableArrayList(); - converter = new LocalDateTimeConverter(); this.targetLogData = targetLogData; this.targetDiffData = targetDiffData; totalLoopCount = targetDiffData.size() + targetLogData.size(); } private void addDiffData(DiffData data) { - String time = converter.toString(data.getDateTime()); + String time = data.getDateTime().format(HeapStatsUtils.getDateTimeFormatter()); javaUserUsageBuf.add(new XYChart.Data<>(time, data.getJavaUserUsage())); javaSysUsageBuf.add(new XYChart.Data<>(time, data.getJavaSysUsage())); @@ -450,7 +444,7 @@ } private void addLogData(LogData data) { - String time = converter.toString(data.getDateTime()); + String time = data.getDateTime().format(HeapStatsUtils.getDateTimeFormatter()); javaVSZUsageBuf.add(new XYChart.Data<>(time, data.getJavaVSSize() / 1024 / 1024)); javaRSSUsageBuf.add(new XYChart.Data<>(time, data.getJavaRSSize() / 1024 / 1024));
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/SnapShotController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/SnapShotController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -75,7 +75,6 @@ import jp.co.ntt.oss.heapstats.task.CSVDumpHeap; import jp.co.ntt.oss.heapstats.task.ParseHeader; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; import jp.co.ntt.oss.heapstats.utils.TaskAdapter; /** @@ -399,10 +398,9 @@ double startX = xAxis.getLayoutX() + xAxis.getStartMargin() - 1.0d; double yPos = yAxis.getLayoutY() + chartTitle.getLayoutY() + chartTitle.getHeight(); - LocalDateTimeConverter converter = new LocalDateTimeConverter(); List<Rectangle> rectList = summaryData.get().getRebootSuspectList() .stream() - .map(d -> converter.toString(d)) + .map(d -> d.format(HeapStatsUtils.getDateTimeFormatter())) .map(s -> new Rectangle(xAxis.getDisplayPosition(s) + startX, yPos, 4d, yAxis.getHeight())) .peek(r -> ((Rectangle) r).setStyle("-fx-fill: yellow;")) .collect(Collectors.toList());
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/SnapShotHeaderConverter.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/SnapShotHeaderConverter.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ import java.util.Optional; import javafx.util.StringConverter; import jp.co.ntt.oss.heapstats.container.snapshot.SnapShotHeader; -import jp.co.ntt.oss.heapstats.utils.*; +import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; /** * StringConverter for LocalDateTime of SnapShotHeader. <br/> @@ -33,8 +33,8 @@ @Override public String toString(SnapShotHeader object) { return Optional.ofNullable(object) - .map(o -> (new LocalDateTimeConverter()).toString(o.getSnapShotDate())) - .orElse(""); + .map(o -> o.getSnapShotDate().format(HeapStatsUtils.getDateTimeFormatter())) + .orElse(null); } @Override
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/HistogramController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/HistogramController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Nippon Telegraph and Telephone Corporation + * Copyright (C) 2015-2016 Nippon Telegraph and Telephone Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -75,7 +75,6 @@ import jp.co.ntt.oss.heapstats.plugin.builtin.snapshot.ChartColorManager; import jp.co.ntt.oss.heapstats.task.DiffCalculator; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; import jp.co.ntt.oss.heapstats.utils.TaskAdapter; import jp.co.ntt.oss.heapstats.xml.binding.Filter; import jp.co.ntt.oss.heapstats.xml.binding.Filters; @@ -234,8 +233,7 @@ seriesMap.put(objData.getName(), series); } - LocalDateTimeConverter converter = new LocalDateTimeConverter(); - String time = converter.toString(header.getSnapShotDate()); + String time = header.getSnapShotDate().format(HeapStatsUtils.getDateTimeFormatter()); long yValue = instanceGraph.get() ? objData.getCount() : objData.getTotalSize() / 1024 / 1024; XYChart.Data<String, Long> data = new XYChart.Data<>(time, yValue);
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SnapshotController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SnapshotController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Nippon Telegraph and Telephone Corporation + * Copyright (C) 2015-2016 Nippon Telegraph and Telephone Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -51,7 +51,6 @@ import jp.co.ntt.oss.heapstats.plugin.builtin.snapshot.ChartColorManager; import jp.co.ntt.oss.heapstats.plugin.builtin.snapshot.SnapShotHeaderConverter; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; /** * FXML Controller class for "SnapShot Data" tab in SnapShot plugin. @@ -159,7 +158,7 @@ ResourceBundle resource = ResourceBundle.getBundle("snapshotResources", new Locale(HeapStatsUtils.getLanguage())); summaryList.addAll( - new AbstractMap.SimpleEntry<>(resource.getString("snapshot.date"), (new LocalDateTimeConverter()).toString(header.getSnapShotDate())), + new AbstractMap.SimpleEntry<>(resource.getString("snapshot.date"), header.getSnapShotDate().format(HeapStatsUtils.getDateTimeFormatter())), new AbstractMap.SimpleEntry<>(resource.getString("snapshot.hasreftree"), header.hasReferenceData() ? "Yes" : "N/A"), new AbstractMap.SimpleEntry<>(resource.getString("snapshot.entries"), Long.toString(header.getNumEntries())), new AbstractMap.SimpleEntry<>(resource.getString("snapshot.instances"), Long.toString(header.getNumInstances())),
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Nippon Telegraph and Telephone Corporation + * Copyright (C) 2015-2016 Nippon Telegraph and Telephone Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -43,7 +43,6 @@ import jp.co.ntt.oss.heapstats.container.snapshot.SnapShotHeader; import jp.co.ntt.oss.heapstats.container.snapshot.SummaryData; import jp.co.ntt.oss.heapstats.utils.HeapStatsUtils; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; /** * FXML Controller class for "Summary Data" tab in SnapShot plugin. @@ -182,8 +181,6 @@ private int processedIndex; - private final LocalDateTimeConverter converter; - private final Consumer<XYChart<String, ? extends Number>> drawRebootSuspectLine; /* Java Heap Usage Chart */ @@ -209,7 +206,6 @@ */ public CalculateGCSummaryTask(Consumer<XYChart<String, ? extends Number>> drawRebootSuspectLine) { this.drawRebootSuspectLine = drawRebootSuspectLine; - converter = new LocalDateTimeConverter(); youngUsageBuf = FXCollections.observableArrayList(); oldUsageBuf = FXCollections.observableArrayList(); @@ -221,7 +217,7 @@ } private void processSnapShotHeader(SnapShotHeader header) { - String time = converter.toString(header.getSnapShotDate()); + String time = header.getSnapShotDate().format(HeapStatsUtils.getDateTimeFormatter()); youngUsageBuf.add(new XYChart.Data<>(time, header.getNewHeap() / 1024 / 1024)); oldUsageBuf.add(new XYChart.Data<>(time, header.getOldHeap() / 1024 / 1024));
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/threadrecorder/ThreadRecorderController.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/threadrecorder/ThreadRecorderController.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Yasumasa Suenaga + * Copyright (C) 2015-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -47,7 +47,6 @@ import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; -import jp.co.ntt.oss.heapstats.utils.LocalDateTimeConverter; /** * FXML Controller class @@ -113,8 +112,7 @@ rangeEnd.set(newTime); } - LocalDateTimeConverter converter = new LocalDateTimeConverter(); - target.setText(converter.toString(newTime)); + target.setText(newTime.format(HeapStatsUtils.getDateTimeFormatter())); } }
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/utils/HeapStatsUtils.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/utils/HeapStatsUtils.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2015 Yasumasa Suenaga + * Copyright (C) 2014-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,6 +28,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -61,6 +62,9 @@ /* Resource bundle for HeapStats Analyzer. */ private static ResourceBundle resource; + + /* Cached DatetTimeFormatter */ + private static DateTimeFormatter formatter; public static Path getHeapStatsHomeDirectory() { @@ -168,6 +172,10 @@ if (heapOrder == null) { prop.setProperty("heaporder", "true"); } + + /* DateTime format */ + prop.putIfAbsent("datetime_format", "yyyy/MM/dd HH:mm:ss"); + formatter = DateTimeFormatter.ofPattern(prop.getProperty("datetime_format")); /* Add shutdown hook for saving current settings. */ Runnable savePropImpl = () -> { @@ -294,6 +302,14 @@ public static ResourceBundle getResourceBundle() { return ResourceBundle.getBundle("HeapStatsResources", new Locale(getLanguage())); } + + /** + * Get DataTimeFormatter which is initialized by datetime_format value in heapstats.properties. + * @return Instance of DateTimeFormatter. + */ + public static DateTimeFormatter getDateTimeFormatter(){ + return formatter; + } /** * Convert stack trace to String.
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/utils/LocalDateTimeConverter.java Fri Jul 01 10:07:50 2016 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2014-2015 Yasumasa Suenaga - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package jp.co.ntt.oss.heapstats.utils; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import javafx.util.StringConverter; - -/** - * StringConverter for LocalDateTime. <br/> - * This class is used at JavaFX controls. - * - * @author Yasumasa Suenaga - */ -public class LocalDateTimeConverter extends StringConverter<LocalDateTime>{ - - private static final DateTimeFormatter formatter; - - static{ - formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - } - - @Override - public String toString(LocalDateTime object) { - return formatter.format(object); - } - - @Override - public LocalDateTime fromString(String string) { - return LocalDateTime.parse(string, formatter); - } - -}
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/utils/ThreadStatConverter.java Fri Jul 01 10:07:50 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/utils/ThreadStatConverter.java Fri Jul 01 21:59:42 2016 +0900 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Yasumasa Suenaga + * Copyright (C) 2015-2016 Yasumasa Suenaga * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -27,11 +27,10 @@ * @author Yasumasa Suenaga */ public class ThreadStatConverter extends StringConverter<ThreadStat>{ - + @Override public String toString(ThreadStat object) { - LocalDateTimeConverter converter = new LocalDateTimeConverter(); - return converter.toString(object.getTime()); + return object.getTime().format(HeapStatsUtils.getDateTimeFormatter()); } @Override