Skip to content

Failure to scan a project with empty properties in the pom.xml #55

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
fabapp2 opened this issue Mar 28, 2022 · 0 comments · Fixed by #769
Closed

Failure to scan a project with empty properties in the pom.xml #55

fabapp2 opened this issue Mar 28, 2022 · 0 comments · Fixed by #769
Assignees
Labels
type: bug Something isn't working

Comments

@fabapp2
Copy link
Contributor

fabapp2 commented Mar 28, 2022

Thanks @virgium03 for raising this issue!

Version: 0.9.1.

If any of the pom.xml files in a project contain empty properties elements, the tool fails. The fix is to remove the empty properties element from the incriminated pom.xml file.

Examples which generate a failure:

<properties> </properties>

or

<properties>
 
</properties>

The stacktrace is as follows:

java.io.UncheckedIOException: Failed to parse C:\Users\ratoico\work\projects\uumds-admin\admin-common\common-facade\pom.xml
at org.openrewrite.maven.internal.RawMaven.parse(RawMaven.java:90)
at org.openrewrite.maven.MavenParser.lambda$parseInputs$0(MavenParser.java:74)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.openrewrite.maven.MavenParser.parseInputs(MavenParser.java:75)
at com.vmware.sbm.project.buildfile.RewriteMavenParser.parseInputs(RewriteMavenParser.java:46)
at org.openrewrite.Parser.parse(Parser.java:39)
at com.vmware.sbm.project.buildfile.OpenRewriteMavenBuildFilesFactory.applyProjections(OpenRewriteMavenBuildFilesFactory.java:32)
at com.vmware.sbm.project.SimpleProjectContextBuilder.buildContext(SimpleProjectContextBuilder.java:43)
at com.vmware.sbm.project.CachingProjectContextBuilder.buildContext(CachingProjectContextBuilder.java:43)
at com.vmware.sbm.commands.ScanCommand.execute(ScanCommand.java:26)
at com.vmware.sbm.shell.ScanShellCommand.scan(ScanShellCommand.java:39)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
at org.springframework.shell.Shell.evaluate(Shell.java:180)
at org.springframework.shell.Shell.run(Shell.java:142)
at org.springframework.shell.jline.InteractiveShellApplicationRunner.run(InteractiveShellApplicationRunner.java:84)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:797)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:787)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1313)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
at com.vmware.sbm.SpringShellApplication.main(SpringShellApplication.java:10)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot coerce empty String ("") to element of java.util.LinkedHashMap<java.lang.String,java.lang.String> (but could if coercion was enabled using CoercionConfig)
at [Source: (sun.nio.ch.ChannelInputStream); line: 17, column: 5] (through reference chain: org.openrewrite.maven.internal.RawPom["properties"])
at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
at com.fasterxml.jackson.databind.DeserializationContext.reportBadCoercion(DeserializationContext.java:1666)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._checkCoercionFail(StdDeserializer.java:1432)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromEmptyString(StdDeserializer.java:325)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromString(StdDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:444)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:542)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:565)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:449)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1405)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:362)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:195)
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3585)
at org.openrewrite.maven.internal.RawMaven.parse(RawMaven.java:84)
... 38 more

@fabapp2 fabapp2 added the type: bug Something isn't working label Mar 28, 2022
@fabapp2 fabapp2 self-assigned this Apr 25, 2023
fabapp2 added a commit that referenced this issue Apr 25, 2023
@fabapp2 fabapp2 linked a pull request Apr 25, 2023 that will close this issue
fabapp2 added a commit that referenced this issue Apr 26, 2023
* style: Replace concatenated with multiline String
* test: Test that verifies that #55 is fixed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
1 participant