Browse Source

Improve null-safety of build-plugin/spring-boot-maven-plugin

See gh-46926
pull/46973/head
Moritz Halbritter 4 months ago
parent
commit
8fa656d3da
  1. 4
      build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java
  2. 3
      build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/PropertiesMergingResourceTransformer.java

4
build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java

@ -51,6 +51,7 @@ import org.springframework.boot.loader.tools.ImagePackager;
import org.springframework.boot.loader.tools.LayoutFactory; import org.springframework.boot.loader.tools.LayoutFactory;
import org.springframework.boot.loader.tools.Libraries; import org.springframework.boot.loader.tools.Libraries;
import org.springframework.boot.loader.tools.LoaderImplementation; import org.springframework.boot.loader.tools.LoaderImplementation;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
/** /**
@ -454,11 +455,12 @@ public abstract class BuildImageMojo extends AbstractPackagerMojo {
} }
} }
private void write(ZipEntry jarEntry, EntryWriter entryWriter, TarArchiveOutputStream tar) { private void write(ZipEntry jarEntry, @Nullable EntryWriter entryWriter, TarArchiveOutputStream tar) {
try { try {
TarArchiveEntry tarEntry = convert(jarEntry); TarArchiveEntry tarEntry = convert(jarEntry);
tar.putArchiveEntry(tarEntry); tar.putArchiveEntry(tarEntry);
if (tarEntry.isFile()) { if (tarEntry.isFile()) {
Assert.state(entryWriter != null, "'entryWriter' must not be null");
entryWriter.write(tar); entryWriter.write(tar);
} }
tar.closeArchiveEntry(); tar.closeArchiveEntry();

3
build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/PropertiesMergingResourceTransformer.java

@ -27,6 +27,8 @@ import org.apache.maven.plugins.shade.relocation.Relocator;
import org.apache.maven.plugins.shade.resource.ReproducibleResourceTransformer; import org.apache.maven.plugins.shade.resource.ReproducibleResourceTransformer;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
import org.springframework.util.Assert;
/** /**
* Extension for the <a href="https://maven.apache.org/plugins/maven-shade-plugin/">Maven * Extension for the <a href="https://maven.apache.org/plugins/maven-shade-plugin/">Maven
* shade plugin</a> to allow properties files (e.g. {@literal META-INF/spring.factories}) * shade plugin</a> to allow properties files (e.g. {@literal META-INF/spring.factories})
@ -88,6 +90,7 @@ public class PropertiesMergingResourceTransformer implements ReproducibleResourc
@Override @Override
public void modifyOutputStream(JarOutputStream os) throws IOException { public void modifyOutputStream(JarOutputStream os) throws IOException {
Assert.state(this.resource != null, "'resource' must not be null");
JarEntry jarEntry = new JarEntry(this.resource); JarEntry jarEntry = new JarEntry(this.resource);
jarEntry.setTime(this.time); jarEntry.setTime(this.time);
os.putNextEntry(jarEntry); os.putNextEntry(jarEntry);

Loading…
Cancel
Save