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 jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to