Skip to content

Commit dca1161

Browse files
committed
fix: accept null decompiled source payloads from Delphi
1 parent 8344682 commit dca1161

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

apps/labrinth/migrations/20250810155316_delphi-reports.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ CREATE TABLE delphi_report_issue_java_classes (
5959
ON DELETE CASCADE
6060
ON UPDATE CASCADE,
6161
internal_class_name TEXT NOT NULL,
62-
decompiled_source TEXT NOT NULL,
62+
decompiled_source TEXT,
6363
UNIQUE (issue_id, internal_class_name)
6464
);

apps/labrinth/src/database/models/delphi_report_item.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ pub enum DelphiReportIssueType {
231231
MalformedJar,
232232
NestedJarTooDeep,
233233
FailedDecompilation,
234-
#[serde(alias = "ANALYSIS FAILURE!")]
235234
AnalysisFailure,
236235

237236
MalwareEasyforme,
@@ -257,7 +256,7 @@ pub struct DBDelphiReportIssueJavaClass {
257256
pub id: DelphiReportIssueJavaClassId,
258257
pub issue_id: DelphiReportIssueId,
259258
pub internal_class_name: InternalJavaClassName,
260-
pub decompiled_source: DecompiledJavaClassSource,
259+
pub decompiled_source: Option<DecompiledJavaClassSource>,
261260
}
262261

263262
impl DBDelphiReportIssueJavaClass {
@@ -274,7 +273,7 @@ impl DBDelphiReportIssueJavaClass {
274273
",
275274
self.issue_id as DelphiReportIssueId,
276275
self.internal_class_name.0,
277-
self.decompiled_source.0,
276+
self.decompiled_source.as_ref().map(|decompiled_source| &decompiled_source.0),
278277
)
279278
.fetch_one(&mut **transaction)
280279
.await?))

apps/labrinth/src/routes/internal/delphi.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct DelphiReport {
5050
pub delphi_version: i32,
5151
pub issues: HashMap<
5252
DelphiReportIssueType,
53-
HashMap<InternalJavaClassName, DecompiledJavaClassSource>,
53+
HashMap<InternalJavaClassName, Option<DecompiledJavaClassSource>>,
5454
>,
5555
}
5656

@@ -67,9 +67,11 @@ impl DelphiReport {
6767

6868
for (issue, trace) in &self.issues {
6969
for (class, code) in trace {
70+
let code = code.as_deref().map(|code| &**code);
7071
write!(
7172
&mut message_header,
72-
"\n issue {issue} found at class `{class}`:\n```\n{code}\n```"
73+
"\n issue {issue} found at class `{class}`:\n```\n{}\n```",
74+
code.unwrap_or("No decompiled source available")
7375
)
7476
.ok();
7577
}

0 commit comments

Comments
 (0)