StokeBloke.com

Minecraft 1.8.2 – ArrayIndexOutOfBoundsException at LinuxDisplay.getAvailableDisplayModes()

Thursday, February 19th, 2015

I tried to play minecraft 1.8.2 this evening, only to have it crash on every startup with :

Time: 19/02/15 18:58
Description: Initializing game

java.lang.ExceptionInInitializerError
        at avf.ar(SourceFile:560)
        at avf.am(SourceFile:361)
        at avf.a(SourceFile:310)
        at net.minecraft.client.main.Main.main(SourceFile:124)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:951)
        at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738)
        at org.lwjgl.opengl.Display.(Display.java:138)
        ... 4 more

The cause seems to be the move from lwjgl 2.9.1 to 2.9.4 with Minecraft 1.8.2.

After a lot of debugging and swearing from me, Steve found out that it was an issue with my dual monitors. Installing xrandr fixes lwjgl and then allows minecraft to start.

The issue comes from this line in the XRandR class which doesnt throw any exception when the command isnt available.  Parsing command line output from a child process in Java is really a bad idea.

Warning

/**
* Utility for working with the xrandr commmand-line utility. Assumes
* xrandr v1.2 or higher.
*/