0

We are using wildfly-9.01. I am getting error/caused while executing action:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 200
    at java.io.ExpiringCache.cleanup(ExpiringCache.java:120)
    at java.io.ExpiringCache.get(ExpiringCache.java:76)
    at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:406)
    at java.io.File.getCanonicalPath(File.java:618)
    at java.io.FilePermission$1.run(FilePermission.java:215)
    at java.io.FilePermission$1.run(FilePermission.java:203)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.FilePermission.init(FilePermission.java:203)
    at java.io.FilePermission.<init>(FilePermission.java:277)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
    at java.io.File.exists(File.java:814)
    at org.jboss.modules.FileResourceLoader$4.run(FileResourceLoader.java:194)
    at org.jboss.modules.FileResourceLoader$4.run(FileResourceLoader.java:192)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.modules.FileResourceLoader.getResource(FileResourceLoader.java:192)
    at org.jboss.modules.ModuleClassLoader.loadResourceLocal(ModuleClassLoader.java:343)
    at org.jboss.modules.ModuleClassLoader$1.loadResourceLocal(ModuleClassLoader.java:95)
    at org.jboss.modules.Module.getResourceAsStream(Module.java:627)
    at org.jboss.modules.ModuleClassLoader.findResourceAsStream(ModuleClassLoader.java:537)
    at org.jboss.modules.ConcurrentClassLoader.getResourceAsStream(ConcurrentClassLoader.java:358)
    at __redirected.__RedirectedUtils.findProviderClassNames(__RedirectedUtils.java:148)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:103)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:99)
    at __redirected.__XMLInputFactory.<init>(__XMLInputFactory.java:106)
    at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at java.lang.Class.newInstance(Class.java:442)
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:193)
    .. 45 more

I'm getting this exception while creating a new instance of RestTemplate object.

RestTemplate restTemplate = new RestTemplate()

Please refer full stack-trace here

2022-08-05 12:06:38,848 ERROR [io.undertow.request] (default task-423) UT005023: Exception handling request to //dashboard: javax.xml.stream.FactoryConfigurationError: Provider __redirected.__XMLInputFactory could not be instantiated: java.lang.ArrayIndexOutOfBoundsException: 200
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:205)
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:152)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:265)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:227)
    at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:154)
    at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.xmlInputFactory(Jackson2ObjectMapperBuilder.java:817)
    at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.create(Jackson2ObjectMapperBuilder.java:807)
    at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:585)
    at org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter.<init>(MappingJackson2XmlHttpMessageConverter.java:50)
    at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:167)
    at com.myapp.security.rest.client.SecurityHttpClient.<init>(SecurityHttpClient.java:35)
    at com.myapp.security.rest.client.SecurityHttpClient.<init>(SecurityHttpClient.java:40)
    at com.myapp.security.util.AuthorizationUtil.getUSP(AuthorizationUtil.java:135)
    at com.myapp.security.filter.SecurityFilter.processFilter(SecurityFilter.java:55)
    at com.myapp.security.filter.BaseFilter.doFilter(BaseFilter.java:89)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
    at io.undertow.servlet.handlers.ServletInitialHandler$1$1.run(ServletInitialHandler.java:178)
    at java.security.AccessController.doPrivileged(Native Method)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 200
    at java.io.ExpiringCache.cleanup(ExpiringCache.java:120)
    at java.io.ExpiringCache.get(ExpiringCache.java:76)
    at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:406)
    at java.io.File.getCanonicalPath(File.java:618)
    at java.io.FilePermission$1.run(FilePermission.java:215)
    at java.io.FilePermission$1.run(FilePermission.java:203)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.FilePermission.init(FilePermission.java:203)
    at java.io.FilePermission.<init>(FilePermission.java:277)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
    at java.io.File.exists(File.java:814)
    at org.jboss.modules.FileResourceLoader$4.run(FileResourceLoader.java:194)
    at org.jboss.modules.FileResourceLoader$4.run(FileResourceLoader.java:192)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.modules.FileResourceLoader.getResource(FileResourceLoader.java:192)
    at org.jboss.modules.ModuleClassLoader.loadResourceLocal(ModuleClassLoader.java:343)
    at org.jboss.modules.ModuleClassLoader$1.loadResourceLocal(ModuleClassLoader.java:95)
    at org.jboss.modules.Module.getResourceAsStream(Module.java:627)
    at org.jboss.modules.ModuleClassLoader.findResourceAsStream(ModuleClassLoader.java:537)
    at org.jboss.modules.ConcurrentClassLoader.getResourceAsStream(ConcurrentClassLoader.java:358)
    at __redirected.__RedirectedUtils.findProviderClassNames(__RedirectedUtils.java:148)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:103)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:99)
    at __redirected.__XMLInputFactory.<init>(__XMLInputFactory.java:106)
    at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at java.lang.Class.newInstance(Class.java:442)
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:193)
    .. 45 more
    
    

Any suggestions for things to look at or try to avoid such issue?

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • I found one more git thread which have a similar kind of issue. https://github.com/adoptium/adoptium-support/issues/230 – Bhanu PS Kushwah Sep 01 '22 at 08:12
  • What is the exact Java version you're using? – Mark Rotteveel Sep 01 '22 at 09:14
  • 1
    This is an interesting issue. At the first glance, it looks impossible. At the second, there might be a corner case if the cache changes in between the `cleanup` method, which is only possible if some Instrumentation is going on which triggers another file permission check exactly at this point. This should sort itself out in newer Java versions due to [JDK-8164705](https://bugs.openjdk.org/browse/JDK-8164705). That’s why the linked issue on JDK-11 is said to be solved with `sun.io.useCanonCaches=false` and `sun.io.useCanonPrefixCache=false` (which is the default in JDK 12 and newer). – Holger Sep 01 '22 at 14:17

0 Answers0