Greetings.
I have written a notification plugin that sends events to Amazon Kinesis.
Unfortunately, if I run this plugin in a job using Maven 3.0.3 the plugin
works but the job crashes at the end:
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
at java.util.HashMap$EntryIterator.next(HashMap.java:966)
at java.util.HashMap$EntryIterator.next(HashMap.java:964)
at
com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:55)
at
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
at
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
at
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
at
hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:217)
at
hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:204)
... 425 more[ERROR] [ERROR] To see the full stack trace of the errors,
re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to
enable full debug logging.[ERROR] [ERROR] For more information about the errors
and possible solutions, please read the following articles:[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorExceptionchannel
stopped
Archiving artifacts
Finished: FAILURE
I searched around and found several bug reports on similar issues,
indicating that fixes had been submitted, so I tried with Maven 3.2.2 and
everything works fine.
What I want to do is have my plugin detect which version of Maven is being
used and disable itself if an unsafe version has been selected.
I've not had any luck figuring out how to do that:
- I tried extending MavenReporter, so I could get a MavenBiuldProxy in
preBuild() or preExecute(), and call
getMavenBuildInformation().getVersion(), but neither would ever fire. Not
sure this is the right version to check anyway.
- I tried using Jenkins.getInstance().getPlugin("maven-plugin") to work
my way towards calling hudson.MavenInformation.getVersion(), but couldn't
figure out how to get a useful object to make a call on. Not sure this is
the right version to check anyway.
Any advice would be much appreciated.
Thanks,
- Jeff
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.