Skip to content

Commit f834642

Browse files
author
Vincent Potucek
committed
Pull #3003: fix unused stream in DefaultPluginXmlFactory#write
1 parent 7c41ac2 commit f834642

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.net.URL;
2626
import java.nio.file.Files;
2727
import java.nio.file.Path;
28+
import java.util.Objects;
2829

2930
import org.apache.maven.api.annotations.Nonnull;
3031
import org.apache.maven.api.di.Named;
@@ -38,6 +39,7 @@
3839
import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxReader;
3940
import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxWriter;
4041

42+
import static java.util.Objects.requireNonNull;
4143
import static org.apache.maven.impl.ImplUtils.nonNull;
4244
import static org.apache.maven.impl.StaxLocation.getLocation;
4345
import static org.apache.maven.impl.StaxLocation.getMessage;
@@ -47,8 +49,7 @@
4749
public class DefaultPluginXmlFactory implements PluginXmlFactory {
4850
@Override
4951
public PluginDescriptor read(@Nonnull XmlReaderRequest request) throws XmlReaderException {
50-
nonNull(request, "request");
51-
Path path = request.getPath();
52+
Path path = requireNonNull(request).getPath();
5253
URL url = request.getURL();
5354
Reader reader = request.getReader();
5455
InputStream inputStream = request.getInputStream();
@@ -62,14 +63,9 @@ public PluginDescriptor read(@Nonnull XmlReaderRequest request) throws XmlReader
6263
return xml.read(inputStream, request.isStrict());
6364
} else if (reader != null) {
6465
return xml.read(reader, request.isStrict());
65-
} else if (path != null) {
66-
try (InputStream is = Files.newInputStream(path)) {
67-
return xml.read(is, request.isStrict());
68-
}
69-
} else {
70-
try (InputStream is = url.openStream()) {
71-
return xml.read(is, request.isStrict());
72-
}
66+
}
67+
try (InputStream is = Files.newInputStream(requireNonNull(path))) {
68+
return xml.read(is, request.isStrict());
7369
}
7470
} catch (Exception e) {
7571
throw new XmlReaderException("Unable to read plugin: " + getMessage(e), getLocation(e), e);
@@ -78,8 +74,7 @@ public PluginDescriptor read(@Nonnull XmlReaderRequest request) throws XmlReader
7874

7975
@Override
8076
public void write(XmlWriterRequest<PluginDescriptor> request) throws XmlWriterException {
81-
nonNull(request, "request");
82-
PluginDescriptor content = nonNull(request.getContent(), "content");
77+
PluginDescriptor content = requireNonNull(requireNonNull(request, "request").getContent(), "content");
8378
Path path = request.getPath();
8479
OutputStream outputStream = request.getOutputStream();
8580
Writer writer = request.getWriter();

impl/maven-impl/src/test/java/org/apache/maven/impl/DefaultPluginXmlFactoryTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@ void shouldThrowXmlReaderExceptionOnMalformedXml() {
230230
assertTrue(exception.getMessage().contains("Unable to read plugin"));
231231
assertInstanceOf(Exception.class, exception.getCause());
232232
}
233+
@Test
234+
void shouldReadFromInputStreasm() {
235+
PluginDescriptor descriptor = sut.read(XmlReaderRequest.builder()
236+
.inputStream(new ByteArrayInputStream(SAMPLE_PLUGIN_XML.getBytes()))
237+
.build());
238+
assertEquals("Sample Plugin", descriptor.getName());
239+
assertEquals("org.example", descriptor.getGroupId());
240+
assertEquals("sample-plugin", descriptor.getArtifactId());
241+
assertEquals("1.0.0", descriptor.getVersion());
242+
}
233243

234244

235245
}

0 commit comments

Comments
 (0)