[
https://issues.jenkins-ci.org/browse/JENKINS-6296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
evernat resolved JENKINS-6296.
------------------------------
Resolution: Incomplete
No response from the reporter, so closing as incomplete.
> Remote API /computer/api/xml fails when the offlinecause is an EOFException
> ---------------------------------------------------------------------------
>
> Key: JENKINS-6296
> URL: https://issues.jenkins-ci.org/browse/JENKINS-6296
> Project: Jenkins
> Issue Type: Bug
> Components: core
> Reporter: roxspring
>
> [17:33] <@mindless> roxspring: do you think the EOFException was contained
> within the OfflineCause ?
> [17:36] <@mindless> roxspring: yeah, I see
> OfflineCause.ChannelTermination.cause is @Exported
> [17:36] <@mindless> kohsuke: is @Exported on Exception bad? it's not an
> @ExportedBean ..
> [17:36] <@kohsuke> I don't think it's bad, but if the bean itself isn't
> exported, it will have no effect.
> [17:37] <@mindless> kohsuke: http://hudson.pastebin.com/GQsLWw68
> [17:37] <@mindless> I could move @Exported to getShortDescription instead..
> returns cause.toString()
> [17:38] <@kohsuke> I think exposing structuerd data is a good thing
> [17:38] <@kohsuke> So the cause field is an Exception type?
> [17:38] <@mindless> yes
> [17:39] <@kohsuke> Maybe requiring the class to be marked was not a good idea
> [17:40] <@kohsuke> perhaps we should have just exported whatever properties
> annotated with @Exported
> [17:40] <@mindless> it is annotated with @Exported
> [17:40] <@mindless> @Exported public final Exception cause;
> [17:40] <@kohsuke> but not the value referenced by the cause field.
> [17:40] <@mindless> you've lost me
> [17:41] <@kohsuke> The error is saying that the actual value, an instance of
> EOFException, is not annotated with @ExportedBean
> [17:41] <@kohsuke> but if the semantics is such that no classes need to be
> annotated by @ExportedBean, and if we just write out whatever @Exported
> properties,
> [17:41] <@kohsuke> we'd just get <cause /> without an error
> [17:41] <@mindless> oh
> [17:41] <@kohsuke> because EOFException doesn't have any @Exported field
> [17:42] <@kohsuke> Or I suppose I could treat a value without @ExportedBean
> as if it were null?
> [17:42] <@kohsuke> instead of a hard error
> [17:42] <@kohsuke> or it could be a switch like
> @Exported(ignoreUnexportable=true)
> [17:43] <@kohsuke> Can you file a ticket for this?
> [17:43] <@mindless> roxspring: ^
> {noformat}
> java.lang.reflect.InvocationTargetException
> at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:169)
> at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:101)
> at
> org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:54)
> at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:75)
> at
> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:519)
> at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:145)
> at
> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:519)
> at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:145)
> at
> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:519)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:435)
> at org.kohsuke.stapler.Stapler.service(Stapler.java:123)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
> at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
> at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
> at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
> at
> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
> at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
> at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
> at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
> at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
> at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
> at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
> 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
> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
> 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
> org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
> 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:66)
> at
> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
> at
> hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
> at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
> at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
> at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
> at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
> at
> winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
> at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
> at java.lang.Thread.run(Unknown Source)
> Caused by: org.kohsuke.stapler.export.NotExportableException: class
> java.io.EOFException doesn't have @ExportedBean
> at org.kohsuke.stapler.export.Model.<init>(Model.java:46)
> at org.kohsuke.stapler.export.ModelBuilder.get(ModelBuilder.java:25)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:181)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:106)
> at org.kohsuke.stapler.export.Property.writeTo(Property.java:83)
> at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:156)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:188)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:106)
> at org.kohsuke.stapler.export.Property.writeTo(Property.java:83)
> at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:156)
> at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:153)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:188)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:138)
> at org.kohsuke.stapler.export.Property.writeValue(Property.java:106)
> at org.kohsuke.stapler.export.Property.writeTo(Property.java:83)
> at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:156)
> at org.kohsuke.stapler.export.Model.writeTo(Model.java:129)
> at org.kohsuke.stapler.export.Model.writeTo(Model.java:148)
> at
> org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:153)
> at hudson.model.Api.doXml(Api.java:87)
> ... 52 more{noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira