I'm using LWJGL version 3.2.0.
After getting garbage from org.lwjgl.openal.ALUtil#getStringList(NULL, ALC11.ALC_ALL_DEVICES_SPECIFIER) I've tried to find out what's wrong and found that simple code like that:
long addr = ALC10.nalcGetString(NULL, ALC11.ALC_DEVICE_SPECIFIER);
ByteBuffer buffer = memByteBuffer(addr, 11);
String str1 = memUTF8(buffer, 11, 0);
buffer.get();
String str2 = memUTF8(buffer, 11, 0);
gives different results: str1="OpenAL Soft" while str2="penAL Soft".
When I step into memUTF8 and then into org.lwjgl.system.MemoryTextDecoding#decodeUTF8 my debugger (IntelliJ IDEA) complains about source code version mismatch. I've tried to copy MemoryTextDecoding into my code and then call like that:
String str2 = MemoryTextDecoding.decodeUTF8(buffer, 11, 0);
That works Ok, str2="OpenAL Soft" as expected.
I'm sure there is no other versions of LWJGL libs in my classpath, so have no idea - what can be wrong?