Re: plugin:descriptor fails with java.util.NoSuchElementException

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: plugin:descriptor fails with java.util.NoSuchElementException

Gabriel Belingueres-2
Indeed, that seems to be the case. It magically worked after replacing the
following line:
http://codehaus-plexus.github.io/plexus-utils/xref/org/codehaus/plexus/util/xml/PrettyPrintXMLWriter.html#L307

with this:
String element = elementStack.removeLast();
write( "</" + element + ">" );

I will soon create the issue and PR.

Gabriel

El jue., 29 de nov. de 2018 a la(s) 15:25, Robert Scholte (
[hidden email]) escribió:

> At builds.apache.org:
> Java version: 1.7.0_79, vendor: Oracle Corporation
>
> Local
> Java version: 1.7.0_80, vendor: Oracle Corporation
>
> does seem to be Java7 only...
> I need to check this for a longer period, but might be a good conclusion.
>
> thanks,
> Robert
>
>
> On Thu, 29 Nov 2018 04:54:59 +0100, Gabriel Belingueres
> <[hidden email]> wrote:
>
> > Hi Robert:
> >
> > I'm testing it and getting *consistently* the same exception with this
> > config:
> >
> > Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3;
> > 2018-10-24T15:41:47-03:00)
> > Maven home: C:\productos\apache-maven-3.6.0\bin\..
> > Java version: 1.7.0_80, vendor: Oracle Corporation, runtime: C:\Program
> > Files\Java\jdk1.7.0_80\jre
> > Default locale: es_AR, platform encoding: Cp1252
> > OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"
> >
> > (actually it is a win 10 but it fails to recognze it).
> >
> > It works OK when remote debugging with mvnDebug.
> >
> > Don't know why throws a NoSuchElementException when trying to remove an
> > element on a non empty LinkedList...my best guess is that it is some sort
> > of bug in the hotspot optimization of the JVM.
> >
> > Which Java 7 specific update is running on Jenkins?
> >
> > Gabriel
> >
> > El mar., 27 de nov. de 2018 a la(s) 17:52, Robert Scholte (
> > [hidden email]) escribió:
> >
> >> Hi,
> >>
> >> sometimes the maven-plugin-plugin fails to write the plugin descriptor
> >> and
> >> exits with the exception below.
> >> I see the same unreliable behavior on our Jenkins servers too,
> >> re-running
> >> often fixes the issue.
> >> I have seen the issue several times locally when running with mvn.cmd,
> >> so
> >> far never with mvnDebug.cmd and always running with default #threads.
> >> I can't find a reason why elementStack[1] gets out of sync.
> >>
> >> If there are others experiencing the same or similar issues, please
> >> share
> >> your analysis.
> >> Hopefully we can solve this instability issue soon.
> >>
> >> thanks,
> >> Robert
> >>
> >> [1]
> >>
> >>
> http://codehaus-plexus.github.io/plexus-utils/xref/org/codehaus/plexus/util/xml/PrettyPrintXMLWriter.html#L40
> >>
> >>
> >>
> >> [ERROR] Failed to execute goal
> >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> (default-descriptor) on project maven-javadoc-plugin: Execution
> >> default-descriptor of goal
> >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor failed.
> >> NoSuchElementException -> [Help 1]
> >> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> >> execute
> >> goal org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> (default-descriptor) on project maven-javadoc-plugin: Execution
> >> default-descriptor of goal
> >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor failed
> >>
> >>
> >>
> >> Caused by: java.util.NoSuchElementException
> >>      at java.util.LinkedList.removeLast (LinkedList.java:281)
> >>      at org.codehaus.plexus.util.xml.PrettyPrintXMLWriter.endElement
> >> (PrettyPrintXMLWriter.java:297)
> >>      at
> >>
> org.apache.maven.tools.plugin.generator.PluginDescriptorGenerator.writeDescriptor
> >>
> >> (PluginDescriptorGenerator.java:175)
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: plugin:descriptor fails with java.util.NoSuchElementException

Gabriel Belingueres-2
I'll go for a minimal patch commenting with the rationale, and then build
upon that.

I also tested it will work if execute maven disabling string concatenation
optimization:
MAVEN_OPTS=-XX:-OptimizeStringConcat
which could used as a workaround for the short term.

El vie., 30 de nov. de 2018 a la(s) 06:18, Robert Scholte (
[hidden email]) escribió:

> Interesting if that works, but if the concatenation is the issue, we
> could
> also try:
>
> write( "</" );
> write( elementStack.removeLast() );
> write( ">" );
>
> If this doesn't work but your proposed code does, it must have a good
> comment that this is a Java 7 workaround and can only be optimized once
> we
> require Java 8.
>
> I have also another idea: replace LinkedList with ArrayDeque, since it is
> really a LinkedList implementation issue. Also, according to the docs:
> "this class is likely to be faster than Stack when used as a stack, and
> faster than LinkedList when used as a queue."
>
> thanks,
> Robert
>
> On Fri, 30 Nov 2018 07:38:38 +0100, Hervé BOUTEMY <[hidden email]>
>
> wrote:
>
> > wow, nice idea
> > I noticed the issue for a long time, but never figured out the link
> with
> > Java
> > 7 nor this idea of fix that is so "magic"...
> >
> > thank you for the help
> >
> > Regards,
> >
> > Hervé
> >
> > Le vendredi 30 novembre 2018, 05:11:56 CET Gabriel Belingueres a écrit :
> >> Indeed, that seems to be the case. It magically worked after replacing
> >> the
> >> following line:
> >>
> http://codehaus-plexus.github.io/plexus-utils/xref/org/codehaus/plexus/util/
> >> xml/PrettyPrintXMLWriter.html#L307
> >>
> >> with this:
> >> String element = elementStack.removeLast();
> >> write( "</" + element + ">" );
> >>
> >> I will soon create the issue and PR.
> >>
> >> Gabriel
> >>
> >> El jue., 29 de nov. de 2018 a la(s) 15:25, Robert Scholte (
> >>
> >> [hidden email]) escribió:
> >> > At builds.apache.org:
> >> > Java version: 1.7.0_79, vendor: Oracle Corporation
> >> >
> >> > Local
> >> > Java version: 1.7.0_80, vendor: Oracle Corporation
> >> >
> >> > does seem to be Java7 only...
> >> > I need to check this for a longer period, but might be a good
> >> conclusion.
> >> >
> >> > thanks,
> >> > Robert
> >> >
> >> >
> >> > On Thu, 29 Nov 2018 04:54:59 +0100, Gabriel Belingueres
> >> >
> >> > <[hidden email]> wrote:
> >> > > Hi Robert:
> >> > >
> >> > > I'm testing it and getting *consistently* the same exception with
> >> this
> >> > > config:
> >> > >
> >> > > Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3;
> >> > > 2018-10-24T15:41:47-03:00)
> >> > > Maven home: C:\productos\apache-maven-3.6.0\bin\..
> >> > > Java version: 1.7.0_80, vendor: Oracle Corporation, runtime:
> >> C:\Program
> >> > > Files\Java\jdk1.7.0_80\jre
> >> > > Default locale: es_AR, platform encoding: Cp1252
> >> > > OS name: "windows 8.1", version: "6.3", arch: "amd64", family:
> >> "windows"
> >> > >
> >> > > (actually it is a win 10 but it fails to recognze it).
> >> > >
> >> > > It works OK when remote debugging with mvnDebug.
> >> > >
> >> > > Don't know why throws a NoSuchElementException when trying to
> >> remove an
> >> > > element on a non empty LinkedList...my best guess is that it is some
> >> > > sort
> >> > > of bug in the hotspot optimization of the JVM.
> >> > >
> >> > > Which Java 7 specific update is running on Jenkins?
> >> > >
> >> > > Gabriel
> >> > >
> >> > > El mar., 27 de nov. de 2018 a la(s) 17:52, Robert Scholte (
> >> > >
> >> > > [hidden email]) escribió:
> >> > >> Hi,
> >> > >>
> >> > >> sometimes the maven-plugin-plugin fails to write the plugin
> >> descriptor
> >> > >> and
> >> > >> exits with the exception below.
> >> > >> I see the same unreliable behavior on our Jenkins servers too,
> >> > >> re-running
> >> > >> often fixes the issue.
> >> > >> I have seen the issue several times locally when running with
> >> mvn.cmd,
> >> > >> so
> >> > >> far never with mvnDebug.cmd and always running with default
> >> #threads.
> >> > >> I can't find a reason why elementStack[1] gets out of sync.
> >> > >>
> >> > >> If there are others experiencing the same or similar issues, please
> >> > >> share
> >> > >> your analysis.
> >> > >> Hopefully we can solve this instability issue soon.
> >> > >>
> >> > >> thanks,
> >> > >> Robert
> >> > >>
> >> > >> [1]
> >> >
> >> >
> >>
> http://codehaus-plexus.github.io/plexus-utils/xref/org/codehaus/plexus/uti
> >> > l/xml/PrettyPrintXMLWriter.html#L40>
> >> > >> [ERROR] Failed to execute goal
> >> > >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> > >> (default-descriptor) on project maven-javadoc-plugin: Execution
> >> > >> default-descriptor of goal
> >> > >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> failed.
> >> > >> NoSuchElementException -> [Help 1]
> >> > >> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> >> > >> execute
> >> > >> goal org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> > >> (default-descriptor) on project maven-javadoc-plugin: Execution
> >> > >> default-descriptor of goal
> >> > >> org.apache.maven.plugins:maven-plugin-plugin:3.5.2:descriptor
> >> failed
> >> > >>
> >> > >>
> >> > >>
> >> > >> Caused by: java.util.NoSuchElementException
> >> > >>
> >> > >>      at java.util.LinkedList.removeLast (LinkedList.java:281)
> >> > >>      at
> >> org.codehaus.plexus.util.xml.PrettyPrintXMLWriter.endElement
> >> > >>
> >> > >> (PrettyPrintXMLWriter.java:297)
> >> > >>
> >> > >>      at
> >> >
> >> >
> >>
> org.apache.maven.tools.plugin.generator.PluginDescriptorGenerator.writeDes
> >> > criptor>
> >> > >> (PluginDescriptorGenerator.java:175)
> >> > >>
> >> > >>
> >> ---------------------------------------------------------------------
> >> > >> To unsubscribe, e-mail: [hidden email]
> >> > >> For additional commands, e-mail: [hidden email]
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [hidden email]
> >> > For additional commands, e-mail: [hidden email]
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>