As you may have seen there's an issue with this random ConcurrentModificationException. I got it while running gitweb for the first time but gitweb seems to be fine afterwards. Others got it too but not sure for what. I'm looking through the stacktrace and as I follow it, layout render method iterates all of a layout's components and does the same thing for all iterations until all of the rendering has been completed. But what I'm confused about is how there's the concurrent modification exception. If the others had gotten it while opening gitweb, it could be that while gitweb frame is making an online request and populating the layout's components, the client is simultaneously iterating and rendering the components. It seems to be just a timing thing really since threads do their business independently so eventually you're going to get a concurrent modification exception. I don't know what the odds of it are mostly because I don't know enough about the online request mechanism to guess.
---- Minecraft Crash Report -------- Minecraft Crash Report ----
WARNING: coremods are present: ObfuscatePlugin (obfuscate-0.2.4-1.12.2.jar)Contact their authors BEFORE contacting forge
// Shall we play a game?
Time: 5/20/18 3:46 PMDescription: Rendering screen
java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:185) at com.mrcrayfish.device.api.app.ScrollableLayout.render(ScrollableLayout.java:51) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:189) at com.mrcrayfish.device.programs.system.layout.StandardLayout.render(StandardLayout.java:64) at com.mrcrayfish.device.api.app.Application.render(Application.java:134) at com.mrcrayfish.device.core.Window.render(Window.java:117) at com.mrcrayfish.device.core.Laptop.func_73863_a(Laptop.java:243) at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:368) at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1124) at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1117) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:397) at net.minecraft.client.main.Main.main(SourceFile:123) 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 net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:---------------------------------------------------------------------------------------
-- Head --Thread: Client threadStacktrace: at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:185) at com.mrcrayfish.device.api.app.ScrollableLayout.render(ScrollableLayout.java:51) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:189) at com.mrcrayfish.device.programs.system.layout.StandardLayout.render(StandardLayout.java:64) at com.mrcrayfish.device.api.app.Application.render(Application.java:134) at com.mrcrayfish.device.core.Window.render(Window.java:117) at com.mrcrayfish.device.core.Laptop.func_73863_a(Laptop.java:243) at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:368)
I'm guessing that a fix for it is, if I'm correct, to maybe have a mutex bit that the online request thread and the client thread use to determine whether the components have been populated by the application's modules before proceeding to render. What does everybody else think?
As you may have seen there's an issue with this random ConcurrentModificationException. I got it while running gitweb for the first time but gitweb seems to be fine afterwards. Others got it too but not sure for what. I'm looking through the stacktrace and as I follow it, layout render method iterates all of a layout's components and does the same thing for all iterations until all of the rendering has been completed. But what I'm confused about is how there's the concurrent modification exception. If the others had gotten it while opening gitweb, it could be that while gitweb frame is making an online request and populating the layout's components, the client is simultaneously iterating and rendering the components. It seems to be just a timing thing really since threads do their business independently so eventually you're going to get a concurrent modification exception. I don't know what the odds of it are mostly because I don't know enough about the online request mechanism to guess.
---- Minecraft Crash Report -------- Minecraft Crash Report ---- WARNING: coremods are present: ObfuscatePlugin (obfuscate-0.2.4-1.12.2.jar)Contact their authors BEFORE contacting forge // Shall we play a game? Time: 5/20/18 3:46 PMDescription: Rendering screen java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:185) at com.mrcrayfish.device.api.app.ScrollableLayout.render(ScrollableLayout.java:51) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:189) at com.mrcrayfish.device.programs.system.layout.StandardLayout.render(StandardLayout.java:64) at com.mrcrayfish.device.api.app.Application.render(Application.java:134) at com.mrcrayfish.device.core.Window.render(Window.java:117) at com.mrcrayfish.device.core.Laptop.func_73863_a(Laptop.java:243) at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:368) at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1124) at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1117) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:397) at net.minecraft.client.main.Main.main(SourceFile:123) 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 net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:--------------------------------------------------------------------------------------- -- Head --Thread: Client threadStacktrace: at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:185) at com.mrcrayfish.device.api.app.ScrollableLayout.render(ScrollableLayout.java:51) at com.mrcrayfish.device.api.app.Layout.render(Layout.java:189) at com.mrcrayfish.device.programs.system.layout.StandardLayout.render(StandardLayout.java:64) at com.mrcrayfish.device.api.app.Application.render(Application.java:134) at com.mrcrayfish.device.core.Window.render(Window.java:117) at com.mrcrayfish.device.core.Laptop.func_73863_a(Laptop.java:243) at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:368)
I'm guessing that a fix for it is, if I'm correct, to maybe have a mutex bit that the online request thread and the client thread use to determine whether the components have been populated by the application's modules before proceeding to render. What does everybody else think?