[ https://issues.apache.org/jira/browse/GEODE-8482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jianxia Chen resolved GEODE-8482. --------------------------------- Resolution: Fixed > Concurrent access to ArrayList should be synchronized > ----------------------------------------------------- > > Key: GEODE-8482 > URL: https://issues.apache.org/jira/browse/GEODE-8482 > Project: Geode > Issue Type: Bug > Affects Versions: 1.14.0 > Reporter: Jianxia Chen > Assignee: Jianxia Chen > Priority: Major > Labels: pull-request-available > > We have seen ArrayIndexOutOfBoundsException when multiple threads access > ArrayList. > {noformat} > java.lang.ArrayIndexOutOfBoundsException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at > java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:598) > at > java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) > at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735) > at > java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160) > at > java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174) > at > java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) > at > java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) > at > java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.createDiskStores(CacheCreation.java:647) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:531) > at > org.apache.geode.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:339) > at > org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4200) > at > org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1621) > at > org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1447) > at > org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191) > at > org.apache.geode.internal.cache.CacheFactoryStatics.create(CacheFactoryStatics.java:61) > at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:352) > > Caused by: java.lang.ArrayIndexOutOfBoundsException: 15 > at java.util.ArrayList.add(ArrayList.java:465) > at > org.apache.geode.internal.cache.control.InternalResourceManager.addStartupTask(InternalResourceManager.java:640) > at > org.apache.geode.internal.cache.DiskStoreImpl.scheduleValueRecovery(DiskStoreImpl.java:2088) > at > org.apache.geode.internal.cache.PersistentOplogSet.recoverOplogs(PersistentOplogSet.java:520) > at > org.apache.geode.internal.cache.PersistentOplogSet.recoverRegionsThatAreReady(PersistentOplogSet.java:379) > at > org.apache.geode.internal.cache.DiskStoreImpl.recoverRegionsThatAreReady(DiskStoreImpl.java:2076) > at > org.apache.geode.internal.cache.DiskStoreImpl.initializeIfNeeded(DiskStoreImpl.java:2064) > at > org.apache.geode.internal.cache.DiskStoreImpl.doInitialRecovery(DiskStoreImpl.java:2069) > at > org.apache.geode.internal.cache.DiskStoreFactoryImpl.initializeDiskStore(DiskStoreFactoryImpl.java:192) > at > org.apache.geode.internal.cache.DiskStoreFactoryImpl.create(DiskStoreFactoryImpl.java:156) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.createDiskStore(CacheCreation.java:834) > at > org.apache.geode.internal.cache.xmlcache.CacheCreation.lambda$createDiskStores$0(CacheCreation.java:650) > at > java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) > at > java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) > at > java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) > at > java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) > at > java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) > at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) > at > java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) > at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) > at > java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172) > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)