public void saveWithoutUnsafeResultElements() { final AnalysisResult safeAnalysisResult = createSafeAnalysisResult(); saveOrThrow(safeAnalysisResult, _resource); }
private static void saveResult(final AnalysisResultFuture result, final Resource resultResource) { final AnalysisResultSaveHandler analysisResultSaveHandler = new AnalysisResultSaveHandler(result, resultResource); try { analysisResultSaveHandler.saveOrThrow(); } catch (final SerializationException e) { // attempt to save what we can - and then rethrow final AnalysisResult safeAnalysisResult = analysisResultSaveHandler.createSafeAnalysisResult(); if (safeAnalysisResult == null) { logger.error("Serialization of result failed without any safe result elements to persist"); } else { final Map<ComponentJob, AnalyzerResult> unsafeResultElements = analysisResultSaveHandler.getUnsafeResultElements(); logger.error("Serialization of result failed with the following unsafe elements: {}", unsafeResultElements); logger.warn("Partial AnalysisResult will be persisted to filename '{}'", resultResource.getQualifiedPath()); analysisResultSaveHandler.saveWithoutUnsafeResultElements(); } // rethrow the exception regardless throw e; } }
final boolean success = saveHandler.saveAttempt(); if (!success) { final AnalysisResult safeAnalysisResult = saveHandler.createSafeAnalysisResult(); if (safeAnalysisResult == null) { WidgetUtils.showErrorMessage("Error writing result to file!", "See the log for error details.");
} catch (SerializationException e) { final AnalysisResult safeAnalysisResult = analysisResultSaveHandler.createSafeAnalysisResult(); if (safeAnalysisResult == null) { logger.error("Serialization of result failed without any safe result elements to persist");