generator-jhipster: Mongobee fails due to guava method signature changed

Overview of the issue

Error creating bean with name ‘mongobee’, no such method iterator(). because com.google.guava dependency is on version 18 and method iterator does not exist.

Motivation for or Use Case

https://stackoverflow.com/questions/45208470/error-creating-bean-with-name-mongobee-defined-in-class-path-resource/45211323

Suggest a Fix

Update dependency to 22

JHipster Version(s)

v4.6.2.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 16 (12 by maintainers)

Most upvoted comments

I just ran gradlew dependencies and it showed guava is referenced 162 times in 7 different versions: 14.0.1, 15.0, 16.0, 16.0.1, 18.0, 19.0 and 20.0 !!! It reminds me of managing commons-logging dep many years ago. Fortunately, our code does not depend on it directly, so we’re not part of the problem 😉

OK, I have reproduced the bug in 4.6.2

stack trace
2017-08-01 15:52:21.838 DEBUG 9374 --- [  restartedMain] Mongobee dao                             : Index in collection dbchangelog was created
2017-08-01 15:52:21.851  INFO 9374 --- [  restartedMain] com.github.mongobee.Mongobee             : Mongobee aqcuired process lock, starting the data migration sequence..
2017-08-01 15:52:22.012  INFO 9374 --- [  restartedMain] com.github.mongobee.Mongobee             : Mongobee is releasing process lock.
2017-08-01 15:52:22.016  WARN 9374 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongobee' defined in class path resource [it/eng/survant/config/DatabaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
2017-08-01 15:52:22.046 ERROR 9374 --- [  restartedMain] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘mongobee’ defined in class path resource [it/eng/survant/config/DatabaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at it.eng.survant.AnalysismicroserviceApp.main(AnalysismicroserviceApp.java:68) 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:498) at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) Caused by: java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator; at org.reflections.Reflections.expandSuperTypes(Reflections.java:380) at org.reflections.Reflections.<init>(Reflections.java:126) at org.reflections.Reflections.<init>(Reflections.java:168) at org.reflections.Reflections.<init>(Reflections.java:141) at com.github.mongobee.utils.ChangeService.fetchChangeLogs(ChangeService.java:43) at com.github.mongobee.Mongobee.executeMigration(Mongobee.java:166) at com.github.mongobee.Mongobee.execute(Mongobee.java:153) at com.github.mongobee.Mongobee.afterPropertiesSet(Mongobee.java:123) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) … 19 common frames omitted

I pinned version of guava to 18 as another method was removed in 19 and up. When I checked maven it resolved to 18 too. Can check it during the week again.