Interactive Corporea

Interactive Corporea

1M Downloads

Unhandled StringIndexOutOfBoundsException in HaloSearchBar.backspace()

tweakbsd opened this issue ยท 1 comments

commented

I encountered an edge case where HaloSearchBar.backspace() line 80 throw's a StringIndexOutOfBoundsException. Unfortunately I can't replicate it it seem to happen when you spam the backspace key when text is selected.

A simple fix would be to add a try{} catch{} block around the methods body. But there can be a better solution
of course.

Here is a stack trace:

[07Feb2022 06:47:02.349] [Render thread/FATAL] [net.minecraft.client.Minecraft/]: Unreported exception thrown!
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1967) ~[?:1.8.0_74]
at shblock.interactivecorporea.client.requestinghalo.HaloSearchBar.backspace(HaloSearchBar.java:80) ~[?:?]
at shblock.interactivecorporea.client.requestinghalo.RequestingHaloInterface.onKeyEvent(RequestingHaloInterface.java:551) ~[?:?]
at shblock.interactivecorporea.client.requestinghalo.RequestingHaloInterfaceHandler.onKeyEvent(RequestingHaloInterfaceHandler.java:234) ~[?:?]
at net.minecraftforge.eventbus.ASMEventHandler_294_RequestingHaloInterfaceHandler_onKeyEvent_KeyInputEvent.invoke(.dynamic) ~[?:?]
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?]
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?]
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?]
at net.minecraftforge.client.ForgeHooksClient.fireKeyInput(ForgeHooksClient.java:738) ~[?:?]
at sun.reflect.GeneratedMethodAccessor135.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
at net.optifine.reflect.Reflector.call(Reflector.java:953) ~[?:?]
at net.optifine.reflect.ReflectorMethod.call(ReflectorMethod.java:133) ~[?:?]
at net.minecraft.client.KeyboardListener.func_197961_a(KeyboardListener.java:548) ~[?:?]
at shblock.interactivecorporea.client.requestinghalo.RequestingHaloInterfaceHandler.lambda$null$0(RequestingHaloInterfaceHandler.java:59) ~[?:?]
at net.minecraft.util.concurrent.ThreadTaskExecutor.execute(ThreadTaskExecutor.java:111) ~[?:?]
at shblock.interactivecorporea.client.requestinghalo.RequestingHaloInterfaceHandler.lambda$setupKeyboardListener$1(RequestingHaloInterfaceHandler.java:59) ~[?:?]
at org.lwjgl.glfw.GLFWKeyCallbackI.callback(GLFWKeyCallbackI.java:37) ~[lwjgl-glfw-3.2.1.jar:build 12]
at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.1.jar:build 12]
at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3050) ~[lwjgl-glfw-3.2.1.jar:build 12]
at com.mojang.blaze3d.systems.RenderSystem.flipFrame(SourceFile:102) ~[?:?]
at net.minecraft.client.MainWindow.func_227802_e_(MainWindow.java:398) ~[?:?]
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:996) ~[?:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) ~[?:?]
at net.minecraft.client.main.Main.main(Main.java:184) ~[1.16.5-forge-36.1.32.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.5-36.1.32.jar:36.1]
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?]
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?]
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?]

commented

Thanks for the report!