From e7e54d0ffdc664bed3067bf51a756e5d18c42ef4 Mon Sep 17 00:00:00 2001 From: OLEGSHA Date: Mon, 2 Nov 2020 17:27:17 +0300 Subject: [PATCH] Code review --- .../client/ProgressiaClientMain.java | 3 +- .../common/util/crash/Analyzer.java | 2 +- .../common/util/crash/ContextProvider.java | 1 - .../util/crash/CrashReportGenerator.java | 55 +++++++++---------- .../crash/analyzers/OutOfMemoryAnalyzer.java | 2 +- .../crash/providers/OSContextProvider.java | 10 ++-- 6 files changed, 34 insertions(+), 39 deletions(-) diff --git a/src/main/java/ru/windcorp/progressia/client/ProgressiaClientMain.java b/src/main/java/ru/windcorp/progressia/client/ProgressiaClientMain.java index 369602e..84fa145 100644 --- a/src/main/java/ru/windcorp/progressia/client/ProgressiaClientMain.java +++ b/src/main/java/ru/windcorp/progressia/client/ProgressiaClientMain.java @@ -34,10 +34,11 @@ public class ProgressiaClientMain { CrashReportGenerator.registerProvider(new OSContextProvider()); CrashReportGenerator.registerAnalyzer(new OutOfMemoryAnalyzer()); try { + @SuppressWarnings("unused") long[] ssdss = new long[1 << 30]; } catch (Throwable t) { - CrashReportGenerator.makeCrashReport(t, ""); + CrashReportGenerator.makeCrashReport(t, "u %s stupid", "vry"); } ProgressiaLauncher.launch(args, new ClientProxy()); diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/Analyzer.java b/src/main/java/ru/windcorp/progressia/common/util/crash/Analyzer.java index 47b9e76..0afdb1d 100644 --- a/src/main/java/ru/windcorp/progressia/common/util/crash/Analyzer.java +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/Analyzer.java @@ -1,5 +1,5 @@ package ru.windcorp.progressia.common.util.crash; public interface Analyzer { - String getPrompt(Throwable throwable, String messageFormat, Object... args); + String analyze(Throwable throwable, String messageFormat, Object... args); } diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/ContextProvider.java b/src/main/java/ru/windcorp/progressia/common/util/crash/ContextProvider.java index ad0d5d3..06150f0 100644 --- a/src/main/java/ru/windcorp/progressia/common/util/crash/ContextProvider.java +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/ContextProvider.java @@ -3,6 +3,5 @@ package ru.windcorp.progressia.common.util.crash; import java.util.Map; public interface ContextProvider { - Map provideContext(); } diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/CrashReportGenerator.java b/src/main/java/ru/windcorp/progressia/common/util/crash/CrashReportGenerator.java index 4c808dd..c51c125 100644 --- a/src/main/java/ru/windcorp/progressia/common/util/crash/CrashReportGenerator.java +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/CrashReportGenerator.java @@ -13,50 +13,47 @@ import java.util.Map; public class CrashReportGenerator { - private CrashReportGenerator() { - } + private CrashReportGenerator() {} - final static File latestLogFile = new File("crash-reports/latest.log"); + private static final File LATEST_LOG_FILE = new File("crash-reports/latest.log"); - private static Collection providers = new ArrayList(); - private static Collection> providerResponse = new ArrayList>(); + private static final Collection PROVIDERS = new ArrayList<>(); + private static final Collection> PROVIDER_RESPONSES = new ArrayList<>(); - private static Collection analyzers = new ArrayList(); - private static Collection analyzerResponse = new ArrayList(); + private static final Collection ANALYZER = new ArrayList<>(); + private static final Collection ANALYZER_RESPONSES = new ArrayList<>(); - private static final Logger logger = LogManager.getLogger("crash"); + private static final Logger LOGGER = LogManager.getLogger("crash"); - static public void makeCrashReport(Throwable throwable, String messageFormat, Object... args) { + public static void makeCrashReport(Throwable throwable, String messageFormat, Object... args) { StringBuilder output = new StringBuilder(); - for (ContextProvider currentProvider : providers) { - if (currentProvider != null) { - providerResponse.add(currentProvider.provideContext()); + for (ContextProvider provider : PROVIDERS) { + if (provider != null) { + PROVIDER_RESPONSES.add(provider.provideContext()); } } - if (throwable != null) { - for (Analyzer currentAnalyzer : analyzers) { - if (currentAnalyzer != null) { - analyzerResponse.add(currentAnalyzer.getPrompt(throwable, messageFormat, args)); - } + for (Analyzer analyzer : ANALYZER) { + if (analyzer != null) { + ANALYZER_RESPONSES.add(analyzer.analyze(throwable, messageFormat, args)); } } - for (Map currentProviderResponse : providerResponse) { - if (currentProviderResponse != null && !currentProviderResponse.isEmpty()) { + for (Map response : PROVIDER_RESPONSES) { + if (response != null && !response.isEmpty()) { addSeparator(output); - for (Map.Entry entry : currentProviderResponse.entrySet()) { + for (Map.Entry entry : response.entrySet()) { output.append(entry.getKey()).append(": ").append(entry.getValue()).append("\n"); } } } - for (String currentPrompt : analyzerResponse) { - if (currentPrompt != null && !currentPrompt.isEmpty()) { + for (String response : ANALYZER_RESPONSES) { + if (response != null && !response.isEmpty()) { addSeparator(output); - output.append(currentPrompt).append("\n"); + output.append(response).append("\n"); } } @@ -72,8 +69,8 @@ public class CrashReportGenerator { sink.append("Null"); } - logger.info("\n" + output.toString()); - logger.fatal("Stacktrace: \n" + sink.toString()); + LOGGER.info(output.toString()); + LOGGER.fatal("Stacktrace: \n" + sink.toString()); addSeparator(output); @@ -86,11 +83,9 @@ public class CrashReportGenerator { // PLAK } - createFileForCrashReport(output); createFileForLatestCrashReport(output); - System.exit(0); } @@ -111,7 +106,7 @@ public class CrashReportGenerator { } public static void createFileForLatestCrashReport(StringBuilder sb) { - try (FileOutputStream fos = new FileOutputStream(latestLogFile)) { + try (FileOutputStream fos = new FileOutputStream(LATEST_LOG_FILE)) { byte[] buffer = sb.toString().getBytes(); fos.write(buffer, 0, buffer.length); @@ -121,11 +116,11 @@ public class CrashReportGenerator { } public static void registerProvider(ContextProvider provider) { - providers.add(provider); + PROVIDERS.add(provider); } public static void registerAnalyzer(Analyzer analyzer) { - analyzers.add(analyzer); + ANALYZER.add(analyzer); } private static void addSeparator(StringBuilder sb) { diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/analyzers/OutOfMemoryAnalyzer.java b/src/main/java/ru/windcorp/progressia/common/util/crash/analyzers/OutOfMemoryAnalyzer.java index e750cea..d5fb6dc 100644 --- a/src/main/java/ru/windcorp/progressia/common/util/crash/analyzers/OutOfMemoryAnalyzer.java +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/analyzers/OutOfMemoryAnalyzer.java @@ -4,7 +4,7 @@ import ru.windcorp.progressia.common.util.crash.Analyzer; public class OutOfMemoryAnalyzer implements Analyzer { @Override - public String getPrompt(Throwable throwable, String messageFormat, Object... args) { + public String analyze(Throwable throwable, String messageFormat, Object... args) { if (throwable instanceof OutOfMemoryError) return "Try add memory for the JVM"; return null; diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/providers/OSContextProvider.java b/src/main/java/ru/windcorp/progressia/common/util/crash/providers/OSContextProvider.java index 712ee17..56b8916 100644 --- a/src/main/java/ru/windcorp/progressia/common/util/crash/providers/OSContextProvider.java +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/providers/OSContextProvider.java @@ -9,10 +9,10 @@ public class OSContextProvider implements ContextProvider { @Override public Map provideContext() { - Map theThings = new HashMap<>(); - theThings.put("Name OS", System.getProperty("os.name")); - theThings.put("Version OS", System.getProperty("os.version")); - theThings.put("Architecture OS", System.getProperty("os.arch")); - return theThings; + Map result = new HashMap<>(); + result.put("Name OS", System.getProperty("os.name")); + result.put("Version OS", System.getProperty("os.version")); + result.put("Architecture OS", System.getProperty("os.arch")); + return result; } }