Buggy code:
private int convertUsage ( Usage usage ) { } protected void bindProgram ( Shader shader ) { } protected void updateShaderUniforms ( Shader shader ) { } protected void updateUniform ( Shader shader , Uniform uniform ) { } protected void updateUniformLocation ( Shader shader , Uniform uniform ) { } protected void updateNameBuffer ( ) { } public void updateShaderData ( Shader shader ) { } protected void resetUniformLocations ( Shader shader ) { } public void updateTexImageData ( Image img , Texture . Type type ) { } private void setupTextureParams ( Texture tex ) { } private int convertTextureType ( Texture . Type type ) { } private int convertMagFilter ( Texture . MagFilter filter ) { } private int convertMinFilter ( Texture . MinFilter filter ) { } private int convertWrapMode ( Texture . WrapMode mode ) { } private void renderMeshVertexArray ( Mesh mesh , int lod , int count ) { } private void renderMeshDefault ( Mesh mesh , int lod , int count ) { } public void setVertexAttrib ( VertexBuffer vb , VertexBuffer idb ) { } public void setVertexAttrib ( VertexBuffer vb ) { } public void drawTriangleArray ( Mesh . Mode mode , int count , int vertCount ) { } public void drawTriangleList ( VertexBuffer indexBuf , Mesh mesh , int count ) { } public int convertElementMode ( Mesh . Mode mode ) { } private int convertVertexBufferFormat ( Format format ) { } public void clearVertexAttribs ( ) { } public void clearTextureUnits ( ) { } public void updateFrameBuffer ( FrameBuffer fb ) { } public void updateFrameBufferAttachment ( FrameBuffer fb , RenderBuffer rb ) { } public void updateRenderTexture ( FrameBuffer fb , RenderBuffer rb ) { } private void updateRenderBuffer ( FrameBuffer fb , RenderBuffer rb ) { } private int convertAttachmentSlot ( int attachmentSlot ) { } private void checkFrameBufferStatus ( FrameBuffer fb ) { } private void checkFrameBufferError ( ) { } private void printRealRenderBufferInfo ( FrameBuffer fb , RenderBuffer rb , String name ) { } private void printRealFrameBufferInfo ( FrameBuffer fb ) { } public void drawTriangleList_Array ( VertexBuffer indexBuf , Mesh mesh , int count ) { } public void setVertexAttrib_Array ( VertexBuffer vb , VertexBuffer idb ) { } public void setVertexAttrib_Array ( VertexBuffer vb ) { } public void updateShaderSourceData ( ShaderSource source ) { int id = source . getId ( ) ; if ( id == ( - 1 ) ) { id = JmeIosGLES . glCreateShader ( convertShaderType ( source . getType ( ) ) ) ; JmeIosGLES . checkGLError ( ) ; if ( id <= 0 ) { throw new RendererException ( "Invalid<seq2seq4repair_space>ID<seq2seq4repair_space>received<seq2seq4repair_space>when<seq2seq4repair_space>trying<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>shader." ) ; } source . setId ( id ) ; } if ( ! ( source . getLanguage ( ) . equals ( "GLSL100" ) ) ) { throw new RendererException ( ( "This<seq2seq4repair_space>shader<seq2seq4repair_space>cannot<seq2seq4repair_space>run<seq2seq4repair_space>in<seq2seq4repair_space>OpenGL<seq2seq4repair_space>ES.<seq2seq4repair_space>" + "Only<seq2seq4repair_space>GLSL<seq2seq4repair_space>1.0<seq2seq4repair_space>shaders<seq2seq4repair_space>are<seq2seq4repair_space>supported." ) ) ; } byte [ ] definesCodeData = source . getDefines ( ) . getBytes ( ) ; byte [ ] sourceCodeData = source . getSource ( ) . getBytes ( ) ; ByteBuffer codeBuf = BufferUtils . createByteBuffer ( ( ( definesCodeData . length ) + ( sourceCodeData . length ) ) ) ; codeBuf . put ( definesCodeData ) ; codeBuf . put ( sourceCodeData ) ; codeBuf . flip ( ) ; if ( ( powerVr ) && ( ( source . getType ( ) ) == ( ShaderType . Vertex ) ) ) { JmeIosGLES . glShaderSource ( id , ( ( source . getDefines ( ) ) + ( source . getSource ( ) ) ) ) ; } else { String precision = "" ; if ( ( source . getType ( ) ) == ( ShaderType . Fragment ) ) { precision = "precision<seq2seq4repair_space>mediump<seq2seq4repair_space>float;\n" ; } JmeIosGLES . glShaderSource ( id , ( ( precision + ( source . getDefines ( ) ) ) + ( source . getSource ( ) ) ) ) ; } JmeIosGLES . glCompileShader ( id ) ; JmeIosGLES . checkGLError ( ) ; JmeIosGLES . glGetShaderiv ( id , GL_COMPILE_STATUS , intBuf1 , 0 ) ; JmeIosGLES . checkGLError ( ) ; boolean compiledOK = ( intBuf1 [ 0 ] ) == ( JmeIosGLES . GL_TRUE ) ; String infoLog = null ; if ( ( IGLESShaderRenderer . VALIDATE_SHADER ) || ( ! compiledOK ) ) { JmeIosGLES . glGetShaderiv ( id , GL_INFO_LOG_LENGTH , intBuf1 , 0 ) ; JmeIosGLES . checkGLError ( ) ; infoLog = JmeIosGLES . glGetShaderInfoLog ( id ) ; } if ( compiledOK ) { if ( infoLog != null ) { IGLESShaderRenderer . logger . log ( Level . FINE , "compile<seq2seq4repair_space>success:<seq2seq4repair_space>{0},<seq2seq4repair_space>{1}" , new Object [ ] { source . getName ( ) , infoLog } ) ; } else { IGLESShaderRenderer . logger . log ( Level . FINE , "compile<seq2seq4repair_space>success:<seq2seq4repair_space>{0}" , source . getName ( ) ) ; } source . clearUpdateNeeded ( ) ; } else { <START_BUG> IGLESShaderRenderer . logger . log ( Level . WARNING , "Bad<seq2seq4repair_space>compile<seq2seq4repair_space>of:\n{0}" , new Object [ ] { ShaderDebug . formatShaderSource ( source . getDefines ( ) , source . getSource ( ) , stringBuf . toString ( ) ) } ) ; <END_BUG> if ( infoLog != null ) { throw new RendererException ( ( ( ( "compile<seq2seq4repair_space>error<seq2seq4repair_space>in:<seq2seq4repair_space>" + source ) + "\n" ) + infoLog ) ) ; } else { throw new RendererException ( ( ( "compile<seq2seq4repair_space>error<seq2seq4repair_space>in:<seq2seq4repair_space>" + source ) + "\nerror:<seq2seq4repair_space><not<seq2seq4repair_space>provided>" ) ) ; } } } public int convertShaderType ( ShaderType type ) { } private int convertTestFunction ( RenderState . TestFunction testFunc ) { } public void setMainFrameBufferSrgb ( boolean srgb ) { } public void setLinearizeSrgbImages ( boolean linearize ) { } public void readFrameBufferWithFormat ( FrameBuffer fb , ByteBuffer byteBuf , Image . Format format ) { } No newline ; at end ; of file ; }

Fix:
IGLESShaderRenderer . logger . log ( Level . WARNING , "Bad<seq2seq4repair_space>compile<seq2seq4repair_space>of:\n{0}" , new Object [ ] { ShaderDebug . formatShaderSource ( ( ( ( stringBuf . toString ( ) ) + ( source . getDefines ( ) ) ) + ( source . getSource ( ) ) ) ) } ) ;