reflections: java.lang.IllegalStateException: zip file closed
When using version 9.12 on kubernetes 1.15 with spring boot 2.2.4 we get following error. When using version 9.11 we do not have this issue.
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [x.x.x.SerializedTypeNameResolver]: Factory method 'serializedTypeNameResolver' threw exception; nested exception is java.lang.IllegalStateException: zip file closed
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 95 common frames omitted
Caused by: java.lang.IllegalStateException: zip file closed
at java.base/java.util.zip.ZipFile.ensureOpen(ZipFile.java:915) ~[na:na]
at java.base/java.util.zip.ZipFile.stream(ZipFile.java:647) ~[na:na]
at java.base/java.util.zip.ZipFile$1.stream(ZipFile.java:1131) ~[na:na]
at java.base/java.util.jar.JarFile.stream(JarFile.java:534) ~[na:na]
at org.reflections.vfs.ZipDir.lambda$getFiles$2(ZipDir.java:21) ~[reflections-0.9.12.jar!/:na]
at org.reflections.Reflections.scan(Reflections.java:260) ~[reflections-0.9.12.jar!/:na]
at org.reflections.Reflections.scan(Reflections.java:216) ~[reflections-0.9.12.jar!/:na]
at org.reflections.Reflections.<init>(Reflections.java:137) ~[reflections-0.9.12.jar!/:na]
at org.reflections.Reflections.<init>(Reflections.java:182) ~[reflections-0.9.12.jar!/:na]
at org.reflections.Reflections.<init>(Reflections.java:155) ~[reflections-0.9.12.jar!/:na]
at x.x.x.serializedTypeNameResolver.getTypesForName(SerializedTypeNameResolver.java:44) ~[integration-axondb-11.369.0.jar!/:11.369.0]
at x.x.x.serializedTypeNameResolver.<init>(GSerializedTypeNameResolver.java:23) ~[integration-axondb-11.369.0.jar!/:11.369.0]
at x.x.x.serializedTypeNameResolver(AxonServerSharedConfiguration.java:115) ~[integration-axondb-11.369.0.jar!/:11.369.0]
Our config is as follows:
private Map<String, Class<?>> getTypesForName() {
Reflections reflections = new Reflections("x.x.x");
return reflections.getTypesAnnotatedWith(JsonTypeInfo.class).stream()
.map(clazz -> clazz.getAnnotationsByType(JsonSubTypes.class))
.flatMap(Arrays::stream)
.flatMap(annotation -> Arrays.stream(annotation.value()))
.filter(type -> isValidType(type.value()))
.collect(toMap(JsonSubTypes.Type::name, JsonSubTypes.Type::value, (name1, name2) -> name1));
}
“edit” It runs on adoptOpenJdk 11.0.6_10
About this issue
- Original URL
- State: open
- Created 4 years ago
- Reactions: 26
- Comments: 23 (1 by maintainers)
Commits related to this issue
- Downgrade Reflections from 0.9.12 to 0.9.11 .. due to a known regression: https://github.com/ronmamo/reflections/issues/279 — committed to trustin/armeria by trustin 4 years ago
- Downgrade Reflections from 0.9.12 to 0.9.11 (#2519) .. due to a known regression: https://github.com/ronmamo/reflections/issues/279 — committed to line/armeria by trustin 4 years ago
- Downgrade Reflections from 0.9.12 to 0.9.11 (#2519) .. due to a known regression: https://github.com/ronmamo/reflections/issues/279 — committed to jrhee17/armeria by trustin 4 years ago
- Downgrade Reflections from 0.9.12 to 0.9.11 (#2519) .. due to a known regression: https://github.com/ronmamo/reflections/issues/279 — committed to heowc/armeria by trustin 4 years ago
- Downgrade Reflections from 0.9.12 to 0.9.11 (#2519) .. due to a known regression: https://github.com/ronmamo/reflections/issues/279 — committed to fmguerreiro/armeria by trustin 4 years ago
- https://github.com/ronmamo/reflections/issues/279 — committed to wybosys/nnt.logic.jvm by wybosys 4 years ago
#me_too --> downgraded to 0.9.11 as suggested.
This seems to have been fixed now in Spring boot 2.3.6.RELEASE
https://github.com/spring-projects/spring-boot/releases/tag/v2.3.6.RELEASE
Could this be related to multi threading issue that’s been around since
0.9.10and described in https://github.com/ronmamo/reflections/issues/81? A common “solution” is to downgrade to0.9.9until it’s fixed. 😦I have checked different versions of Spring and I can confirm what @bmaehr already mentioned. The library throws this exception when it is used with
spring-bootof version2.3.5or earlier. Switching to2.3.6solves the issue. With the latestspring-bootversion2.7.4it also works.Spring framework ticket related to this issue: spring-projects/spring-boot#23821
0.9.11 has the same error popping up for us randomly (we are not using spring), with exactly same message. Could it be that there is something unfortunate in openjdk 11? We are mixing things built with java 11 and java 8, don’t know if this is important.
As far as I understood spring fixed a similar problem, but not the same. At least I still have the problem with spring-boot 2.4.0 and reflections 0.9.12. Downgrading to 0.9.11 solves it.
This is still an issue, I also had to downgrade to 0.9.11, is there something we can do to help figure this out ?
Facing the same issue … any updates?
I got the same issue when running a packed jar from spring boot, but starting the same application from the source-code with maven spring plugin, run without any related issue