Skip to content

Commit 252d35b

Browse files
author
David Hasani
committed
handle case where metrics.json is missing
1 parent c0fe7bf commit 252d35b

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/ArtifactHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class ArtifactHandler(private val project: Project, private val clientAdaptor: G
200200
downloadedBuildLogPath[job] = path
201201
} else {
202202
downloadedArtifacts[job] = path
203-
if (output.artifact is CodeModernizerArtifact) {
203+
if (output.artifact is CodeModernizerArtifact && output.artifact.metrics != null) {
204204
output.artifact.metrics.linesOfCodeSubmitted = CodeModernizerSessionState.getInstance(project).getLinesOfCodeSubmitted()
205205
output.artifact.metrics.programmingLanguage = CodeModernizerSessionState.getInstance(project).getTransformationLanguage()
206206
clientAdaptor.sendTransformTelemetryEvent(job, output.artifact.metrics)

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerArtifact.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ open class CodeModernizerArtifact(
2929
private val patches: List<VirtualFile>,
3030
val summary: TransformationSummary,
3131
val summaryMarkdownFile: File,
32-
val metrics: CodeModernizerMetrics,
32+
val metrics: CodeModernizerMetrics?,
3333
) : CodeTransformDownloadArtifact {
3434
val patch: VirtualFile
3535
get() = patches.first()
@@ -100,15 +100,16 @@ open class CodeModernizerArtifact(
100100
}
101101
}
102102

103-
private fun loadMetrics(manifest: CodeModernizerManifest): CodeModernizerMetrics {
103+
private fun loadMetrics(manifest: CodeModernizerManifest): CodeModernizerMetrics? {
104104
try {
105105
val metricsFile =
106106
tempDir.resolve(manifest.metricsRoot).listFiles()
107107
?.firstOrNull { it.name.endsWith(METRICS_FILE_NAME) }
108108
?: throw RuntimeException("Could not find metrics.json")
109109
return MAPPER.readValue(metricsFile, CodeModernizerMetrics::class.java)
110-
} catch (exception: JsonProcessingException) {
111-
throw RuntimeException("Unable to deserialize the metrics.json")
110+
} catch (exception: Exception) {
111+
// if metrics.json not present or parsing fails, can still show diff.patch and summary.md
112+
return null
112113
}
113114
}
114115

0 commit comments

Comments
 (0)