Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swagger2Controller.getDocumentation get IndexOutOfBoundsException #1129

Closed
yqzhan2014 opened this issue Jan 7, 2016 · 7 comments
Closed
Labels
Milestone

Comments

@yqzhan2014
Copy link

In 2.2.2 version it's OK, but when upgrade to 2.3.1(or 2.3.0), i got a IndexOutOfBoundsException.
I finally find in my rest API request DTO, if exist a filed "JSONObject", it will happen.
If delete it, it's OK. Why? Is there some change about this?

@dilipkrish
Copy link
Member

Could you provide a stacktrace?

@yqzhan2014
Copy link
Author

2016-01-07 18:47:16,073 ERROR [http-nio-8080-exec-13#101] <com.huawei.iom.component.base.exception.ExceptionHandler.resolveException,117> - java.lang.IndexOutOfBoundsException: Index: 1
at java.util.Collections$EmptyList.get(Collections.java:4454)
at springfox.documentation.swagger2.mappers.ModelMapper.typeOfValue(ModelMapper.java:109)
at springfox.documentation.swagger2.mappers.ModelMapper.mapProperties(ModelMapper.java:91)
at springfox.documentation.swagger2.mappers.ModelMapper.mapModels(ModelMapper.java:65)
at springfox.documentation.swagger2.mappers.ModelMapper.modelsFromApiListings(ModelMapper.java:190)
at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl.mapDocumentation(ServiceModelToSwagger2MapperImpl.java:50)
at springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(Swagger2Controller.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.huawei.m2m.nscl.security.filter.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:207)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.huawei.iccp.monitor.thread.filter.ThreadFilter.doFilter(ThreadFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

发件人: Dilip Krishnan [mailto:notifications@github.com]
发送时间: 2016年1月7日 20:40
收件人: springfox/springfox
抄送: Zhanyongqiang
主题: Re: [springfox] Swagger2Controller.getDocumentation get IndexOutOfBoundsException (#1129)

Could you provide a stacktrace?


Reply to this email directly or view it on GitHubhttps://github.com//issues/1129#issuecomment-169652831.

@dilipkrish
Copy link
Member

Also from which library are you using JSONObject? Could you provide the class definition of the model that has this type perhaps?

@dilipkrish dilipkrish added the bug label Jan 7, 2016
@dilipkrish dilipkrish added this to the 2.4.0 milestone Jan 7, 2016
@yqzhan2014
Copy link
Author

We use two kinds json library, both not work,

net.sf.json.JSONObject;

and

com.fasterxml.jackson.databind.node.ObjectNode

in springfox 2.2.2, they will be treat object

"body": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},

In swagger ui, it show “{}”
[cid:image001.png@01D14A13.8B935E20]

发件人: Dilip Krishnan [mailto:notifications@github.com]
发送时间: 2016年1月7日 22:38
收件人: springfox/springfox
抄送: Zhanyongqiang
主题: Re: [springfox] Swagger2Controller.getDocumentation get IndexOutOfBoundsException (#1129)

Also from which library are you using JSONObject? Could you provide the class definition of the model that has this type perhaps?


Reply to this email directly or view it on GitHubhttps://github.com//issues/1129#issuecomment-169681199.

@dilipkrish
Copy link
Member

@yqzhan2014 Out of curiosity, what version of jackson are you using?

@sac10nikam
Copy link

I am getting same issue when I am trying to hit swagger-ui.html page in browser?

java.lang.IndexOutOfBoundsException: Index: 1
at java.util.Collections$EmptyList.get(Collections.java:4454)
at springfox.documentation.swagger2.mappers.ModelMapper.typeOfValue(ModelMapper.java:129)
at springfox.documentation.swagger2.mappers.ModelMapper.mapProperties(ModelMapper.java:92)
at springfox.documentation.swagger2.mappers.ModelMapper.mapModels(ModelMapper.java:67)
at springfox.documentation.swagger2.mappers.ModelMapper.modelsFromApiListings(ModelMapper.java:205)
at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl.mapDocumentation(ServiceModelToSwagger2MapperImpl.java:50)
at springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(Swagger2Controller.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
..............
..............

Please help me. Should I change swagger version to 2.6.1
I am using 2.5.0

@yqzhan2014
Copy link
Author

yqzhan2014 commented Dec 2, 2016 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants