Starchasers / OCGlasses

mod for minecraft and addon for Open Computers
zlib License
31 stars 17 forks source link

[Bug] Possible NPE crash when taking glasses off, can corrupt saves #95

Closed iamgreaser closed 3 years ago

iamgreaser commented 4 years ago

Describe the bug Sometimes when taking glasses off, the game will crash on a NullPointerException.

I don't know what conditions I need in order to make this happen, but I do know that if you spam 250 Item3Ds with setVisibleThroughObjects set to true, it can happen.

In which environment did the Bug appear? Singleplayer

To Reproduce Steps to reproduce the behavior:

  1. Get some creative mode glasses and bind them to a terminal.
  2. Using a computer, spam 250 Item3Ds with a translation, a defined item (I use "minecraft:stone"), and setVisibleThroughObjects set to true on each of them.
  3. Open your inventory.
  4. Repeatedly remove your glasses and put them back on. Doing that for a minute should be enough time to make the crash happen.

Backtrace

[15:16:22] [Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.client.event.RenderWorldLastEvent@660b834e:
java.lang.NullPointerException: null
    at com.bymarcin.openglasses.surface.OCClientSurface.renderWidgets(OCClientSurface.java:227) ~[OCClientSurface.class:?]
    at com.bymarcin.openglasses.surface.OCClientSurface.renderWorld(OCClientSurface.java:164) ~[OCClientSurface.class:?]
    at com.bymarcin.openglasses.event.minecraft.client.ClientRenderEvents.renderWorldLastEvent(ClientRenderEvents.java:23) ~[ClientRenderEvents.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_363_ClientRenderEvents_renderWorldLastEvent_RenderWorldLastEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
    at net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(ForgeHooksClient.java:196) [ForgeHooksClient.class:?]
    at net.minecraft.client.renderer.EntityRenderer.func_175068_a(EntityRenderer.java:1432) [buq.class:?]
    at net.minecraft.client.renderer.EntityRenderer.func_78471_a(EntityRenderer.java:1259) [buq.class:?]
    at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1062) [buq.class:?]
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1119) [bib.class:?]
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398) [bib.class:?]
    at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
    at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
    at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
    at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]

Minecraft:

I do have several coremods, notably FoamFix. I also gave it about 3GB of RAM.

Additional context

Here's the whole shebang of mods and all that...

Oh yeah, I'm using an Intel HD 530 GPU, that's probably also somewhat important here as it may be a bit easier to reproduce this crash on a weaker GPU. i5-6500 CPU, which is probably not so important.

-- System Details --
Details:
    Minecraft Version: 1.12.2
    Operating System: Linux (amd64) version 5.2.16_1
    Java Version: 1.8.0_242, Void
    Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Void
    Memory: 475848712 bytes (453 MB) / 2258108416 bytes (2153 MB) up to 2863661056 bytes (2731 MB)
    JVM Flags: 2 total; -Xms512m -Xmx3072m
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.5.2854 53 mods loaded, 53 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

    | State  | ID                        | Version             | Source                                        | Signature                                |
    |:------ |:------------------------- |:------------------- |:--------------------------------------------- |:---------------------------------------- |
    | LCHIJA | minecraft                 | 1.12.2              | minecraft.jar                                 | None                                     |
    | LCHIJA | mcp                       | 9.42                | minecraft.jar                                 | None                                     |
    | LCHIJA | FML                       | 8.0.99.99           | forge-1.12.2-14.23.5.2854-universal.jar       | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCHIJA | forge                     | 14.23.5.2854        | forge-1.12.2-14.23.5.2854-universal.jar       | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCHIJA | openmodscore              | 0.12.2              | minecraft.jar                                 | None                                     |
    | LCHIJA | foamfixcore               | 7.7.4               | minecraft.jar                                 | None                                     |
    | LCHIJA | opencomputers|core        | 1.7.5.212           | minecraft.jar                                 | None                                     |
    | LCHIJA | bookshelf                 | 2.3.585             | Bookshelf-1.12.2-2.3.585.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |
    | LCHIJA | buildcraftlib             | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftcore            | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftbuilders        | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcrafttransport       | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftsilicon         | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftcompat          | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftenergy          | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftfactory         | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | buildcraftrobotics        | 7.99.24.6           | buildcraft-all-7.99.24.6.jar                  | None                                     |
    | LCHIJA | charset                   | 0.5.6.4             | Charset-0.5.6.4.jar                           | None                                     |
    | LCHIJA | ctm                       | MC1.12.2-1.0.2.31   | CTM-MC1.12.2-1.0.2.31.jar                     | None                                     |
    | LCHIJA | jei                       | 4.15.0.291          | jei_1.12.2-4.15.0.291.jar                     | None                                     |
    | LCHIJA | chisel                    | MC1.12.2-1.0.2.45   | Chisel-MC1.12.2-1.0.2.45.jar                  | None                                     |
    | LCHIJA | chiselsandbits            | 14.33               | chiselsandbits-14.33.jar                      | None                                     |
    | LCHIJA | codechickenlib            | 3.2.3.358           | CodeChickenLib-1.12.2-3.2.3.358-universal.jar | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
    | LCHIJA | darkutils                 | 1.8.230             | DarkUtils-1.12.2-1.8.230.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |
    | LCHIJA | engination                | MC1.12.2_ver1.07.02 | Engination-MC1.12.2_ver1.07.02.jar            | None                                     |
    | LCHIJA | foamfix                   | 0.10.10-1.12.2      | foamfix-0.10.10-1.12.2.jar                    | None                                     |
    | LCHIJA | forgemultipartcbe         | 2.6.2.83            | ForgeMultipart-1.12.2-2.6.2.83-universal.jar  | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
    | LCHIJA | microblockcbe             | 2.6.2.83            | ForgeMultipart-1.12.2-2.6.2.83-universal.jar  | None                                     |
    | LCHIJA | minecraftmultipartcbe     | 2.6.2.83            | ForgeMultipart-1.12.2-2.6.2.83-universal.jar  | None                                     |
    | LCHIJA | gci                       | 0.6-1.12.2          | gci-0.6-1.12.2.jar                            | None                                     |
    | LCHIJA | mcmultipart               | 2.5.3               | MCMultiPart-2.5.3.jar                         | None                                     |
    | LCHIJA | mrtjpcore                 | 2.1.4.43            | MrTJPCore-1.12.2-2.1.4.43-universal.jar       | None                                     |
    | LCHIJA | openmods                  | 0.12.2              | OpenModsLib-1.12.2-0.12.2.jar                 | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |
    | LCHIJA | openblocks                | 1.8.1               | OpenBlocks-1.12.2-1.8.1.jar                   | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |
    | LCHIJA | opencomputers             | 1.7.5.212           | OpenComputers-MC1.12.2-1.7.5.212.jar          | None                                     |
    | LCHIJA | projectred-core           | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-Base.jar          | None                                     |
    | LCHIJA | projectred-compat         | 1.0                 | ProjectRed-1.12.2-4.9.4.120-compat.jar        | None                                     |
    | LCHIJA | projectred-integration    | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-integration.jar   | None                                     |
    | LCHIJA | projectred-transmission   | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-integration.jar   | None                                     |
    | LCHIJA | projectred-fabrication    | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-fabrication.jar   | None                                     |
    | LCHIJA | projectred-illumination   | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-lighting.jar      | None                                     |
    | LCHIJA | projectred-expansion      | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-mechanical.jar    | None                                     |
    | LCHIJA | projectred-relocation     | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-mechanical.jar    | None                                     |
    | LCHIJA | projectred-transportation | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-mechanical.jar    | None                                     |
    | LCHIJA | projectred-exploration    | 4.9.4.120           | ProjectRed-1.12.2-4.9.4.120-world.jar         | None                                     |
    | LCHIJA | squeedometer              | 1.0.4               | Squeedometer-mc1.12.x-1.0.4.jar               | None                                     |
    | LCHIJA | squake                    | 1.0.6               | Squake-mc1.12.2-1.0.6.jar                     | None                                     |
    | LCHIJA | tis3d                     | 1.3.0.15            | TIS-3D-MC1.12-1.3.0.15.jar                    | None                                     |
    | LCHIJA | worldedit                 | 6.1.8               | worldedit-forge-mc1.12-6.1.8-dist.jar         | None                                     |
    | LCHIJA | rendertoolkit             | 1.3.7               | Commons0815-1.12.2-1.3.7.jar                  | None                                     |
    | LCHIJA | guitoolkit                | 1.3.7               | Commons0815-1.12.2-1.3.7.jar                  | None                                     |
    | LCHIJA | commons0815               | 1.3.7               | Commons0815-1.12.2-1.3.7.jar                  | None                                     |
    | LCHIJA | openglasses               | @VERSION@-50        | OpenGlasses-MC1.12.2-2.2-50.jar               | None                                     |
ben-mkiv commented 4 years ago

here's a prebuild which should fix the issue:

https://ci.pc-logix.com/job/OCGlasses/60/artifact/build/libs/OpenGlasses-MC1.12.2-2.2-60.jar

ben-mkiv commented 3 years ago

official build contains the fix now (however version numbers gone a bit down as the buildbot was set up new, so 53 is newer than the previously linked 60) https://www.curseforge.com/minecraft/mc-mods/openglasses2/files/3143467

feel free to open a new bug report if the issue comes up again