Skip to content

Commit 16d7e49

Browse files
authored
Improve the error message for zip64 option (#1287)
* Check e and e.cause both * Remove the comment about rethrowing * Remove DocumentationRegistry
1 parent ee5197f commit 16d7e49

File tree

4 files changed

+21
-41
lines changed

4 files changed

+21
-41
lines changed

api/shadow.api

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ public abstract interface class com/github/jengelman/gradle/plugins/shadow/tasks
179179

180180
public class com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction : org/gradle/api/internal/file/copy/CopyAction {
181181
public static final field Companion Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction$Companion;
182-
public fun <init> (Ljava/io/File;Lkotlin/jvm/functions/Function1;Lorg/gradle/api/internal/DocumentationRegistry;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZLjava/lang/String;)V
182+
public fun <init> (Ljava/io/File;Lkotlin/jvm/functions/Function1;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZLjava/lang/String;)V
183183
public fun execute (Lorg/gradle/api/internal/file/copy/CopyActionProcessingStream;)Lorg/gradle/api/tasks/WorkResult;
184184
}
185185

lint-baseline.xml

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<issues format="6" by="lint 8.8.1" type="baseline" client="gradle" dependencies="false" name="AGP (8.8.1)" variant="all" version="8.8.1">
2+
<issues format="6" by="lint 8.8.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.8.2)" variant="all" version="8.8.2">
33

44
<issue
55
id="InternalGradleApiUsage"
@@ -34,25 +34,14 @@
3434
column="1"/>
3535
</issue>
3636

37-
<issue
38-
id="InternalGradleApiUsage"
39-
message="Avoid using internal Gradle APIs"
40-
errorLine1="import org.gradle.api.internal.DocumentationRegistry"
41-
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
42-
<location
43-
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt"
44-
line="18"
45-
column="1"/>
46-
</issue>
47-
4837
<issue
4938
id="InternalGradleApiUsage"
5039
message="Avoid using internal Gradle APIs"
5140
errorLine1="import org.gradle.api.internal.file.CopyActionProcessingStreamAction"
5241
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
5342
<location
5443
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt"
55-
line="19"
44+
line="18"
5645
column="1"/>
5746
</issue>
5847

@@ -63,7 +52,7 @@
6352
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
6453
<location
6554
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt"
66-
line="20"
55+
line="19"
6756
column="1"/>
6857
</issue>
6958

@@ -74,7 +63,7 @@
7463
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
7564
<location
7665
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt"
77-
line="21"
66+
line="20"
7867
column="1"/>
7968
</issue>
8069

@@ -85,18 +74,7 @@
8574
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
8675
<location
8776
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt"
88-
line="22"
89-
column="1"/>
90-
</issue>
91-
92-
<issue
93-
id="InternalGradleApiUsage"
94-
message="Avoid using internal Gradle APIs"
95-
errorLine1="import org.gradle.api.internal.DocumentationRegistry"
96-
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
97-
<location
98-
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar.kt"
99-
line="33"
77+
line="21"
10078
column="1"/>
10179
</issue>
10280

@@ -107,7 +85,7 @@
10785
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
10886
<location
10987
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar.kt"
110-
line="34"
88+
line="32"
11189
column="1"/>
11290
</issue>
11391

@@ -118,7 +96,7 @@
11896
errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
11997
<location
12098
file="src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar.kt"
121-
line="35"
99+
line="33"
122100
column="1"/>
123101
</issue>
124102

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ import org.apache.tools.zip.ZipEntry
1515
import org.apache.tools.zip.ZipOutputStream
1616
import org.gradle.api.GradleException
1717
import org.gradle.api.file.FileCopyDetails
18-
import org.gradle.api.internal.DocumentationRegistry
1918
import org.gradle.api.internal.file.CopyActionProcessingStreamAction
2019
import org.gradle.api.internal.file.copy.CopyAction
2120
import org.gradle.api.internal.file.copy.CopyActionProcessingStream
2221
import org.gradle.api.internal.file.copy.FileCopyDetailsInternal
2322
import org.gradle.api.logging.Logging
2423
import org.gradle.api.tasks.WorkResult
2524
import org.gradle.api.tasks.WorkResults
26-
import org.gradle.api.tasks.bundling.Zip
2725
import org.objectweb.asm.ClassReader
2826
import org.objectweb.asm.ClassWriter
2927
import org.objectweb.asm.commons.ClassRemapper
@@ -34,7 +32,6 @@ import org.objectweb.asm.commons.ClassRemapper
3432
public open class ShadowCopyAction(
3533
private val zipFile: File,
3634
private val zosProvider: (File) -> ZipOutputStream,
37-
private val documentationRegistry: DocumentationRegistry,
3835
private val transformers: Set<Transformer>,
3936
private val relocators: Set<Relocator>,
4037
private val unusedClasses: Set<String>,
@@ -58,14 +55,23 @@ public open class ShadowCopyAction(
5855
addDirs(zos)
5956
}
6057
} catch (e: Exception) {
61-
if (e.cause is Zip64RequiredException) {
58+
if (e is Zip64RequiredException || e.cause is Zip64RequiredException) {
59+
val message = if (e is Zip64RequiredException) e.message else e.cause?.message
6260
throw Zip64RequiredException(
63-
"${e.cause?.message}\n\nTo build this archive, please enable the zip64 extension.\n" +
64-
"See: ${documentationRegistry.getDslRefForProperty(Zip::class.java, "zip64")}",
61+
"""
62+
$message
63+
64+
To build this archive, please enable the zip64 extension. e.g.
65+
```kts
66+
tasks.shadowJar {
67+
isZip64 = true
68+
}
69+
```
70+
See: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:zip64 for more details.
71+
""".trimIndent(),
6572
)
6673
}
6774
zipFile.delete()
68-
// Rethrow the exception like `java.util.zip.ZipException: archive is not a ZIP archive`.
6975
throw e
7076
}
7177
return WorkResults.didWork(true)

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import com.github.jengelman.gradle.plugins.shadow.internal.sourceSets
1212
import com.github.jengelman.gradle.plugins.shadow.relocation.CacheableRelocator
1313
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
1414
import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator
15-
import com.github.jengelman.gradle.plugins.shadow.tasks.DependencyFilter
1615
import com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer
1716
import com.github.jengelman.gradle.plugins.shadow.transformers.CacheableTransformer
1817
import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer
@@ -30,7 +29,6 @@ import org.gradle.api.UncheckedIOException
3029
import org.gradle.api.artifacts.Configuration
3130
import org.gradle.api.file.ConfigurableFileCollection
3231
import org.gradle.api.file.DuplicatesStrategy
33-
import org.gradle.api.internal.DocumentationRegistry
3432
import org.gradle.api.internal.file.FileResolver
3533
import org.gradle.api.internal.file.copy.CopyAction
3634
import org.gradle.api.provider.Property
@@ -269,7 +267,6 @@ public abstract class ShadowJar :
269267
throw UncheckedIOException("Unable to create ZIP output stream for file $destination.", e)
270268
}
271269
}
272-
val documentationRegistry = services.get(DocumentationRegistry::class.java)
273270
val unusedClasses = if (minimizeJar.get()) {
274271
val unusedTracker = UnusedTracker.forProject(apiJars, sourceSetsClassesDirs.files, toMinimize)
275272
includedDependencies.files.forEach {
@@ -282,7 +279,6 @@ public abstract class ShadowJar :
282279
return ShadowCopyAction(
283280
archiveFile.get().asFile,
284281
zosProvider,
285-
documentationRegistry,
286282
transformers.get(),
287283
relocators.get() + packageRelocators,
288284
unusedClasses,

0 commit comments

Comments
 (0)