[JIRA] [jclouds-plugin] (JENKINS-31811) Parse time with timezone

5 views
Skip to first unread message

rettenbs@in.tum.de (JIRA)

unread,
Nov 30, 2015, 12:24:02 PM11/30/15
to jenkinsc...@googlegroups.com
Sebastian Rettenberger created an issue
 
Jenkins / Bug JENKINS-31811
Parse time with timezone
Issue Type: Bug Bug
Assignee: Fritz Elfert
Components: jclouds-plugin
Created: 30/Nov/15 5:23 PM
Environment: Jenkins version: 1.634
Labels: plugin
Priority: Minor Minor
Reporter: Sebastian Rettenberger

Hi,

I am trying to connect to an OpenNebula system which has EC2 capabilities. However, when I test the connection I get the following error message:

Cannot connect to specified cloud, please check the identity and credentials: Invalid format: "2015-07-31T18:58:18+0200" is malformed at "+0200"

Here is a stack trace when I try to manage the cloud node:

javax.servlet.ServletException: java.lang.IllegalArgumentException: Invalid format: "2015-07-31T18:58:18+0200" is malformed at "+0200"
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Invalid format: "2015-07-31T18:58:18+0200" is malformed at "+0200"
	at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866)
	at org.jclouds.date.joda.JodaDateService.iso8601DateParse(JodaDateService.java:117)
	at org.jclouds.date.internal.DateServiceDateCodecFactory$DateServiceIso8601Codec.toDate(DateServiceDateCodecFactory.java:114)
	at org.jclouds.ec2.xml.BaseReservationHandler.endElement(BaseReservationHandler.java:148)
	at org.jclouds.ec2.xml.DescribeInstancesResponseHandler.endElement(DescribeInstancesResponseHandler.java:85)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
	at org.jclouds.http.functions.ParseSax.doParse(ParseSax.java:139)
	at org.jclouds.http.functions.ParseSax.parse(ParseSax.java:128)
	at org.jclouds.http.functions.ParseSax.apply(ParseSax.java:84)
	at org.jclouds.http.functions.ParseSax.apply(ParseSax.java:52)
	at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:93)
	at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:76)
	at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:47)
	at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
	at shaded.com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:79)
	at com.sun.proxy.$Proxy132.describeInstancesInRegion(Unknown Source)
	at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy$2.apply(EC2ListNodesStrategy.java:146)
	at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy$2.apply(EC2ListNodesStrategy.java:142)
	at shaded.com.google.common.collect.Iterators$8.transform(Iterators.java:794)
	at shaded.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
	at shaded.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
	at shaded.com.google.common.collect.Iterators$5.hasNext(Iterators.java:543)
	at shaded.com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
	at shaded.com.google.common.collect.Iterators$5.hasNext(Iterators.java:542)
	at shaded.com.google.common.collect.Iterators$7.computeNext(Iterators.java:645)
	at shaded.com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at shaded.com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at shaded.com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
	at shaded.com.google.common.collect.Iterators$7.computeNext(Iterators.java:645)
	at shaded.com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at shaded.com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at shaded.com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:314)
	at shaded.com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300)
	at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.listDetailsOnNodesMatching(EC2ListNodesStrategy.java:114)
	at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.listNodes(EC2ListNodesStrategy.java:90)
	at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.listNodes(EC2ListNodesStrategy.java:62)
	at org.jclouds.compute.internal.BaseComputeService.listNodes(BaseComputeService.java:340)
	at jenkins.plugins.jclouds.compute.JCloudsCloud.getRunningNodesCount(JCloudsCloud.java:295)
	at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvision(JCloudsCloud.java:278)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	... 60 more

Best regards,
Sebastian

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.2#64017-sha1:e244265)
Atlassian logo

fritz@fritz-elfert.de (JIRA)

unread,
Nov 30, 2015, 5:33:06 PM11/30/15
to jenkinsc...@googlegroups.com
Fritz Elfert commented on Bug JENKINS-31811
 
Re: Parse time with timezone

1. Which version of the jclouds-plugin?
2. Looks like either a bug in jclouds or even a malformed response from OpenNebula (because it happens while parsing a response from OpenNebula) rather than a bug in the plugin.

rettenbs@in.tum.de (JIRA)

unread,
Dec 1, 2015, 3:50:02 AM12/1/15
to jenkinsc...@googlegroups.com

I am using the latest JClouds plugin: 2.8

Yeah, you are right. This might be a problem in JClouds itself. Should I report the bug there?

fritz@fritz-elfert.de (JIRA)

unread,
Dec 1, 2015, 5:25:01 AM12/1/15
to jenkinsc...@googlegroups.com

2.8 is quite old and uses an equally old version of jclouds. (I recently took over development and had not yet the chance to create a new release).
If you can, you might try building it from git and use that.

rettenbs@in.tum.de (JIRA)

unread,
Dec 1, 2015, 8:34:04 AM12/1/15
to jenkinsc...@googlegroups.com

I tried the latest version from Github, still the same error.

rettenbs@in.tum.de (JIRA)

unread,
Dec 4, 2015, 6:37:01 AM12/4/15
to jenkinsc...@googlegroups.com

I figured out that the time format should be "2015-07-31T18:58:18+02:00", according to the standard. I asked the administrators of your OpenNebula cloud if they can fix this in the interface. However, it would be nice if JCloud is a bit less restrictive on the time format.

rettenbs@in.tum.de (JIRA)

unread,
Dec 9, 2015, 5:57:01 AM12/9/15
to jenkinsc...@googlegroups.com

After some debugging with our OpenNebula admin, we figured out that it is a bug in JClouds and not in OpenNebula.

The JClouds community pointed me to this bug: https://issues.apache.org/jira/browse/JCLOUDS-1038

Can you create a branch of the plugin which uses JClouds 2.0.0-SNAPSHOT? This should include the bugfix. I would like to test this.

fritz@fritz-elfert.de (JIRA)

unread,
Nov 18, 2016, 8:26:01 PM11/18/16
to jenkinsc...@googlegroups.com

Finally, jclouds-2.0.0 was released this week and I just upgraded the the plugin's pom accordingly in git.
So:
You might giv that one a try.

This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages