From 3b28681201ac8dd97f168a2210d3bcb08a2c5029 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Mon, 30 Oct 2023 21:35:24 +0530 Subject: [PATCH] fix(projects): add null check for simple name while creating ClassInfo (fixes #1411) --- .../com/itsaky/androidide/projects/classpath/ClassInfo.kt | 6 +++++- .../androidide/projects/classpath/JarFsClasspathReader.kt | 4 +++- .../androidide/projects/classpath/ZipFileClasspathReader.kt | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ClassInfo.kt b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ClassInfo.kt index c7f017a26..a1e94303b 100644 --- a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ClassInfo.kt +++ b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ClassInfo.kt @@ -37,7 +37,7 @@ private constructor( companion object { @JvmStatic - fun create(name: String): ClassInfo { + fun create(name: String): ClassInfo? { val isTopLevel = name.indexOf('$') == -1 val simpleName = @@ -49,6 +49,10 @@ private constructor( name } + if (simpleName.isBlank()) { + return null + } + val packageName = if (name.contains('.')) { name.substringBeforeLast('.') diff --git a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/JarFsClasspathReader.kt b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/JarFsClasspathReader.kt index 373716723..ec894923f 100644 --- a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/JarFsClasspathReader.kt +++ b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/JarFsClasspathReader.kt @@ -79,7 +79,9 @@ class JarFsClasspathReader : IClasspathReader { name = name.replace('/', '.') } - builder.add(ClassInfo.create(name)) + ClassInfo.create(name)?.also { + builder.add(it) + } return super.visitFile(file, attrs) } diff --git a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ZipFileClasspathReader.kt b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ZipFileClasspathReader.kt index 5ba4a42a1..ba630709f 100644 --- a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ZipFileClasspathReader.kt +++ b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/classpath/ZipFileClasspathReader.kt @@ -53,8 +53,10 @@ class ZipFileClasspathReader : IClasspathReader { if (name.contains('/')) { name = name.replace('/', '.') } - - classes.add(ClassInfo.create(name)) + + ClassInfo.create(name)?.also { classInfo -> + classes.add(classInfo) + } } } }