Cycles in Java classes cause infinite loop in ModelAttributeParameterExpander AGAIN
See original GitHub issueHi I saw the bug : Cycles in Java classes cause infinite loop in ModelAttributeParameterExpander #621
Since 2.5.0 that bug should be fixed , but mine has same errors with 2.6.1 version.
this is console logs.
Logs and Stacktrace
2017-01-01 19:42:49.973 INFO --- [on(2)-127.0.0.1] d.s.w.p.DocumentationPluginsBootstrapper [120] : Context refreshed
2017-01-01 19:42:50.033 INFO --- [on(2)-127.0.0.1] d.s.w.p.DocumentationPluginsBootstrapper [123] : Found 1 custom documentation plugin(s)
2017-01-01 19:42:50.085 INFO --- [on(2)-127.0.0.1] s.d.s.w.s.ApiListingReferenceScanner [ 41] : Scanning for api listing references
2017-01-01 19:42:57.973 WARN --- [on(2)-127.0.0.1] o.s.w.c.s.XmlWebApplicationContext [546] : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError
2017-01-01 19:42:57.999 INFO --- [on(2)-127.0.0.1] com.healing.beauty.service.PushService [133] : destroy
2017-01-01 19:42:57.999 INFO --- [on(2)-127.0.0.1] com.healing.beauty.service.PushService [135] : removeProvider : BC
2017-01-01 19:42:58.005 INFO --- [on(2)-127.0.0.1] o.s.c.ehcache.EhCacheManagerFactoryBean [181] : Shutting down EhCache CacheManager
2017-01-01 19:42:58.013 INFO --- [on(2)-127.0.0.1] o.s.s.c.ThreadPoolTaskScheduler [203] : Shutting down ExecutorService 'taskScheduler'
2017-01-01 19:42:58.014 INFO --- [on(2)-127.0.0.1] o.s.s.concurrent.ThreadPoolTaskExecutor [203] : Shutting down ExecutorService 'taskExecutor'
2017-01-01 19:42:58.024 ERROR --- [on(2)-127.0.0.1] o.s.web.servlet.DispatcherServlet [502] : Context initialization failed
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:51) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:852) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at javax.servlet.GenericServlet.init(GenericServlet.java:158) [servlet-api.jar:3.1.FR]
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4997) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5289) [catalina.jar:8.0.30]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.30]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) [catalina.jar:8.0.30]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) [catalina.jar:8.0.30]
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1675) [catalina.jar:8.0.30]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.30]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_65]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_65]
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:465) [catalina.jar:8.0.30]
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) [catalina.jar:8.0.30]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.30]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_65]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_65]
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1471) [na:1.8.0_65]
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) [na:1.8.0_65]
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1312) [na:1.8.0_65]
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1404) [na:1.8.0_65]
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:832) [na:1.8.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) [na:1.8.0_65]
at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_65]
at sun.rmi.transport.Transport$1.run(Transport.java:197) [na:1.8.0_65]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_65]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) [na:1.8.0_65]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) [na:1.8.0_65]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) [na:1.8.0_65]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683) [na:1.8.0_65]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_65]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) [na:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_65]
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2205) ~[guava-19.0.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3953) ~[guava-19.0.jar:na]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957) ~[guava-19.0.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875) ~[guava-19.0.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4881) ~[guava-19.0.jar:na]
at springfox.documentation.spring.web.scanners.CachingOperationReader.read(CachingOperationReader.java:57) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.scanners.ApiDescriptionReader.read(ApiDescriptionReader.java:66) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:89) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.scanners.ApiDocumentationScanner.scan(ApiDocumentationScanner.java:70) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.scanDocumentation(DocumentationPluginsBootstrapper.java:85) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:127) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
... 61 common frames omitted
Caused by: java.lang.StackOverflowError: null
at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3797) ~[na:1.8.0_65]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658) ~[na:1.8.0_65]
at java.util.regex.Pattern$Branch.match(Pattern.java:4604) ~[na:1.8.0_65]
at java.util.regex.Pattern$Branch.match(Pattern.java:4602) ~[na:1.8.0_65]
at java.util.regex.Pattern$Branch.match(Pattern.java:4602) ~[na:1.8.0_65]
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568) ~[na:1.8.0_65]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717) ~[na:1.8.0_65]
at java.util.regex.Pattern$Curly.match0(Pattern.java:4279) ~[na:1.8.0_65]
at java.util.regex.Pattern$Curly.match(Pattern.java:4234) ~[na:1.8.0_65]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658) ~[na:1.8.0_65]
at java.util.regex.Pattern$Branch.match(Pattern.java:4604) ~[na:1.8.0_65]
at java.util.regex.Pattern$Branch.match(Pattern.java:4602) ~[na:1.8.0_65]
at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798) ~[na:1.8.0_65]
at java.util.regex.Pattern$Start.match(Pattern.java:3461) ~[na:1.8.0_65]
at java.util.regex.Matcher.search(Matcher.java:1248) ~[na:1.8.0_65]
at java.util.regex.Matcher.find(Matcher.java:664) ~[na:1.8.0_65]
at java.util.Formatter.parse(Formatter.java:2549) ~[na:1.8.0_65]
at java.util.Formatter.format(Formatter.java:2501) ~[na:1.8.0_65]
at java.util.Formatter.format(Formatter.java:2455) ~[na:1.8.0_65]
at java.lang.String.format(String.java:2940) ~[na:1.8.0_65]
at springfox.documentation.spring.web.readers.parameter.ExpandedParameterBuilder.apply(ExpandedParameterBuilder.java:64) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.plugins.DocumentationPluginsManager.expandParameter(DocumentationPluginsManager.java:116) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.simpleFields(ModelAttributeParameterExpander.java:156) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.expand(ModelAttributeParameterExpander.java:119) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.expand(ModelAttributeParameterExpander.java:94) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.expand(ModelAttributeParameterExpander.java:94) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.expand(ModelAttributeParameterExpander.java:110) ~[springfox-spring-web-2.6.1.jar:2.6.1]
at springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander.expand(ModelAttributeParameterExpander.java:110) ~[springfox-spring-web-2.6.1.jar:2.6.1]
and then last logs are repeated like 500times and it failed.
I assume it is same bugs that #621 issues… but I don’t know why it happens again. please help me out of this.
I am using spring-4.2.4 and in servlet-context.xml I put
<!-- swagger -->
<beans:bean id="swagger2Config"
class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration"></beans:bean>
<mvc:default-servlet-handler />
<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"></mvc:resources>
<mvc:resources location="classpath:/META-INF/resources/webjars/"
mapping="/webjars/**"></mvc:resources>
Issue Analytics
- State:
- Created 7 years ago
- Comments:7 (3 by maintainers)
Top Results From Across the Web
Why does Java toString() loop infinitely on indirect cycles?
I think fundamentally it's because while the language tries to stop you from shooting yourself in the foot, it shouldn't really do so...
Read more >Infinite Loops in Java - Baeldung
Simply put, an infinite loop is an instruction sequence that loops endlessly when a terminating condition isn't met. Creating an infinite loop ......
Read more >For Loop in Java | Important points - GeeksforGeeks
For loop must consist of a valid expression in the loop statement failing which can lead to an infinite loop. The statement
Read more >Infinite loop - Wikipedia
In computer programming, an infinite loop (or endless loop) is a sequence of instructions that, as written, will continue endlessly, unless an external ......
Read more >Infinite loops - a free Hacking with Swift tutorial
All apps on your iPhone use infinite loops, because they start running, then continually watch for events until you choose to quit them....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
In the near term, until we release 2.7, unfortunately the answer is yes.
Hi, I’m was reading some topics about this cycles in java classes and on release 2.7.0 this was supposed to be fixed, right? But I’m using springfox 2.7.0 and still get this error and I don’t know what I’m doing wrong:
Stack Trace