Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate Lichess API sending incomplete response #7

Open
marvk opened this issue Mar 22, 2019 · 0 comments
Open

Investigate Lichess API sending incomplete response #7

marvk opened this issue Mar 22, 2019 · 0 comments
Assignees
Labels
bug Something isn't working Lichess API

Comments

@marvk
Copy link
Owner

marvk commented Mar 22, 2019

Received an incomplete API response in this game, full logs here.

  00:31:04.005 [I/O dispatcher 55] TRACE net.marvk.chess.lichess4j.GameStateResponseConsumer - Received game state response:
  {"type":"gameState","moves":"e2e4 d7d6 g1f3 g8f6 b1c3 c7c5 f1b5 c8d7 b5c4 b8c6 d2d3 e7e6 e1g1 f8e7 c1e3 e8g8 a1b1 f6g4 e3f4 g4e5 c4b3 e5f3 d1f3 c6d4 f3e3 e6e5 f4g3 e7g5 f2f4 g5h6 e3f2 d4b3 a2b3 h6f4 g3f4 e5f4 f2f4 d7c6 c3d5 c6d5 e4d5 d8c7 f1f2 a8d8 f4a4 b7b6 b1f1 c7e7 f2f5 d8d7 a4e4 f8e8 f1e1 e7e4 e1e4 d7e7 e4e7 e8e7 g1f2 b6b5 h2h3 e7e8 f5h5 g7g6 h5h4 e8e5 c2c4 f7f5 f2f3 b5c4 b3c4 e5e1 g2g4 e1d1 f3e3 f5f4 e3e4 d1d2 g4g5 d2b2 e4f4 b2d2 f4e4 d2g2 h4g4 g2f2 e4e3 f2h2 g4g3 h2c2 g3f3 c2g2 h3h4 g2h2 f3f4 a7a5 d3d4 c5d4 e3d4 a5a4 c4c5 h2d2 d4e3 d2d5 c5d6 a4a3 f4a4 d5d6 a4a3 d6d8 a3a7 d8f8 a7d7 f8f5 e3e4 f5f2 d7d8 g8g7 d8c8 f2h2 c8c7 g7g8 c7c8 g8f7 c8c7 f7f8 c7h7 f8g8 h7h6 g8g7 e4e5 h2f2 e5e6 f2f5 e6d7 f5c5 d7d6 c5c2 d6e6 c2c3 e6e5 c3c4 e5d5 c4b4 d5e6 b4d4 e6e7 d4d5 e7e8 d5d2 h4h5 g6h5 e8e7 d2h2 e7e6 h2e2 e6f5 e2f2 f5e5 g7g8 h6h5 f2f7 h5h6 g8g7 h6f6 f7d7 f6c6 d7d2 g5g6 d2f2 c6a6 f2f3 a6d6 f3f1 d6b6 f1f8 b6e6 g7g8 e6f6 f8d8 e5f5 d8d4 f6f7 d4d2 f5g5 d2g2 g5f6 g2f2 f6e7 f2d2 f7h7 d2g2 e7f6 g2g3 h7g7 g8f8 g7c7 g3f3 f6e6 f8g8 c7d7 f3f2 d7h7 f2f8 h7b7 f8f1 b7a7 f1f4 e6e5 f4f3 a7c7 f3f1 c7h7 f1f8 h7b7 f8f2 b7d7 g8f8 g6g7 f8g8 e5e6 g8h7 d7f7 f2g2 e6f6 g2g6 f6e5 g6g4 g7g8n h7g8 f7f5 g8g7 f5f2 g4g6 f2a2 g7g8 a2d2 g6g4 e5f6 g4g3 d2d8 g8h7 d8d7 h7h6 d7a7 g3f3 f6e5 h6g6 a7a2 g6g7 a2h2 g7g8 e5e6 f3f1 h2g2 g8h7 e6e5 f1f7 e5d5 f7c7 d5d4 c7c6 d4e5 c6c4 e5e6 c4c5 e6f6 c5b5 g2h2 h7g8 h2f2 b5c5 f2a2 c5d5 a2a8 g8h7 a8a4 d5b5 a4h4 h7g8 h4h2 b5b7 h2a2 b7g7 a2e2 g7g3 e2a2 g3g1 a2a8 g8h7 a8a7","wtime":106460,"btime":105740,"winc":0,"binc":0}
  00:31:04.005 [I/O dispatcher 55] INFO  net.marvk.chess.lichess4j.GameStateResponseConsumer - Received game state: GameState(moves=[e2e4, d7d6, g1f3, g8f6, b1c3, c7c5, f1b5, c8d7, b5c4, b8c6, d2d3, e7e6, e1g1, f8e7, c1e3, e8g8, a1b1, f6g4, e3f4, g4e5, c4b3, e5f3, d1f3, c6d4, f3e3, e6e5, f4g3, e7g5, f2f4, g5h6, e3f2, d4b3, a2b3, h6f4, g3f4, e5f4, f2f4, d7c6, c3d5, c6d5, e4d5, d8c7, f1f2, a8d8, f4a4, b7b6, b1f1, c7e7, f2f5, d8d7, a4e4, f8e8, f1e1, e7e4, e1e4, d7e7, e4e7, e8e7, g1f2, b6b5, h2h3, e7e8, f5h5, g7g6, h5h4, e8e5, c2c4, f7f5, f2f3, b5c4, b3c4, e5e1, g2g4, e1d1, f3e3, f5f4, e3e4, d1d2, g4g5, d2b2, e4f4, b2d2, f4e4, d2g2, h4g4, g2f2, e4e3, f2h2, g4g3, h2c2, g3f3, c2g2, h3h4, g2h2, f3f4, a7a5, d3d4, c5d4, e3d4, a5a4, c4c5, h2d2, d4e3, d2d5, c5d6, a4a3, f4a4, d5d6, a4a3, d6d8, a3a7, d8f8, a7d7, f8f5, e3e4, f5f2, d7d8, g8g7, d8c8, f2h2, c8c7, g7g8, c7c8, g8f7, c8c7, f7f8, c7h7, f8g8, h7h6, g8g7, e4e5, h2f2, e5e6, f2f5, e6d7, f5c5, d7d6, c5c2, d6e6, c2c3, e6e5, c3c4, e5d5, c4b4, d5e6, b4d4, e6e7, d4d5, e7e8, d5d2, h4h5, g6h5, e8e7, d2h2, e7e6, h2e2, e6f5, e2f2, f5e5, g7g8, h6h5, f2f7, h5h6, g8g7, h6f6, f7d7, f6c6, d7d2, g5g6, d2f2, c6a6, f2f3, a6d6, f3f1, d6b6, f1f8, b6e6, g7g8, e6f6, f8d8, e5f5, d8d4, f6f7, d4d2, f5g5, d2g2, g5f6, g2f2, f6e7, f2d2, f7h7, d2g2, e7f6, g2g3, h7g7, g8f8, g7c7, g3f3, f6e6, f8g8, c7d7, f3f2, d7h7, f2f8, h7b7, f8f1, b7a7, f1f4, e6e5, f4f3, a7c7, f3f1, c7h7, f1f8, h7b7, f8f2, b7d7, g8f8, g6g7, f8g8, e5e6, g8h7, d7f7, f2g2, e6f6, g2g6, f6e5, g6g4, g7g8n, h7g8, f7f5, g8g7, f5f2, g4g6, f2a2, g7g8, a2d2, g6g4, e5f6, g4g3, d2d8, g8h7, d8d7, h7h6, d7a7, g3f3, f6e5, h6g6, a7a2, g6g7, a2h2, g7g8, e5e6, f3f1, h2g2, g8h7, e6e5, f1f7, e5d5, f7c7, d5d4, c7c6, d4e5, c6c4, e5e6, c4c5, e6f6, c5b5, g2h2, h7g8, h2f2, b5c5, f2a2, c5d5, a2a8, g8h7, a8a4, d5b5, a4h4, h7g8, h4h2, b5b7, h2a2, b7g7, a2e2, g7g3, e2a2, g3g1, a2a8, g8h7, a8a7], whiteTime=106460, blackTime=105740, whiteIncrement=0, blackIncrement=0)
  00:31:04.005 [I/O dispatcher 55] DEBUG net.marvk.chess.lichess4j.GameThread - Not calculating move for opponent
  00:31:04.201 [I/O dispatcher 55] TRACE net.marvk.chess.lichess4j.GameStateResponseConsumer - Received game state response:
  {"type":"gameState","moves":"e2e4 d7d6 g1f3 g8f6 b1c3 c7c5 f1b5 c8d7 b5c4 b8c6 d2d3 e7e6 e1g1 f8e7 c1e3 e8g8 a1b1 f6g4 e3f4 g4e5 c4b3 e5f3 d1f3 c6d4 f3e3 e6e5 f4g3 e7g5 f2f4 g5h6 e3f2 d4b3 a2b3 h6f4 g3f4 e5f4 f2f4 d7c6 c3d5 c6d5 e4d5 d8c7 f1f2 a8d8 f4a4 b7b6 b1f1 c7e7 f2f5 d8d7 a4e4 f8e8 f1e1 e7e4 e1e4 d7e7 e4e7 e8e7 g1f2 b6b5 h2h3 e7e8 f5h5 g7g6 h5h4 e8e5 c2c4 f7f5 f2f3 b5c4 b3c4 e5e1 g2g4 e1d1 f3e3 f5f4 e3e4 d1d2 g4g5 d2b2 e4f4 b2d2 f4e4 d2g2 h4g4 g2f2 e4e3 f2h2 g4g3 h2c2 g3f3 c2g2 h3h4 g2h2 f3f4 a7a5 d3d4 c5d4 e3d4 a5a4 c4c5 h2d2 d4e3 d2d5 c5d6 a4a3 f4a4 d5d6 a4a3 d6d8 a3a7 d8f8 a7d7 f8f5 e3e4 f5f2 d7d8 g8g7 d8c8 f2h2 c8c7 g7g8 c7c8 g8f7 c8c7 f7f8 c7h7 f8g8 h7h6 g8g7 e4e5 h2f2 e5e6 f2f5 e6d7 f5c5 d7d6 c5c2 d6e6 c2c3 e6e5 c3c4 e5d5 c4b4 d5e6 b4d4 e6e7 d4d5 e7e8 d5d2 h4h5 g6h5 e8e7 d2h2 e7e6 h2e2 e6f5 e2f2 f5e5 g7g8 h6h5 f2f7 h5h6 g8g7 h6f6 f7d7 f6c6 d7d2 g5g6 d2f2 c6a6 f2f3 a6d6 f3f1 d6b6 f1f8 b6e6 g7g8 e6f6 f8d8 e5f5 d8d4 f6f7 d4d2 f5g5 d2g2 g5f6 g2f2 f6e7 f2d2 f7h7 d2g2 e7f6 g2g3 h7g7 g8f8 g7c7 g3f3 f6e6 f8g8 c7d7 f3f2 d7h7 f2f8 h7b7 f8f1 b7a7 f1f4 e6e5 f4f3 a7c7 f3f1 c7h7 f1f8 h7b7 f8f2 b7d7 g8f8 g6g7 f8g8 e5e6 g8h7 d7f7 f2g2 e6f6 g2g6 f6e5 g6g4 g7g8n h7g8 f7f5 g8g7 f5f2 g4g6 f2a2 g7g8 a2d2 g6g4 e5f6 g4g3 d2d8 g8h7 d8d7 h7h6 d7a7 g3f3 f6e5 h6g6 a7a2 g6g7 a2h2 g7g8 e5e6 f3f1 h2g2 g8h7 e6e5 f1f7 e5d5 f7c7 d5d4 c7c6 d4e5 c6c4 e5e6 c4c5 e6f6 c5b5 g2h2 h7g8 h2f2 b5c5 f2a2 c5d5 a2a8 g8h7 a8a4 d5b5 a4h4 h7g8 h4h2 b5b7 h2a
  00:31:04.202 [pool-2-thread-7] ERROR net.marvk.chess.lichess4j.GameThread - 
  java.util.concurrent.ExecutionException: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 1444 path $.moves
  	at org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71) ~[httpcore-4.4.11.jar:4.4.11]
  	at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84) ~[httpcore-4.4.11.jar:4.4.11]
  	at org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at net.marvk.chess.lichess4j.GameThread.run(GameThread.java:151) [classes/:?]
  	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) [?:?]
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) [?:?]
  	at java.lang.Thread.run(Thread.java:844) [?:?]
  Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 1444 path $.moves
  	at com.google.gson.internal.Streams.parse(Streams.java:60) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:65) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:927) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:892) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:841) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:813) ~[gson-2.8.5.jar:?]
  	at net.marvk.chess.lichess4j.GameStateResponseConsumer.lambda$onCharReceived$0(GameStateResponseConsumer.java:58) ~[classes/:?]
  	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
  	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:?]
  	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
  	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
  	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
  	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
  	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
  	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:430) ~[?:?]
  	at net.marvk.chess.lichess4j.GameStateResponseConsumer.onCharReceived(GameStateResponseConsumer.java:59) ~[classes/:?]
  	at org.apache.http.nio.client.methods.AsyncCharConsumer.handleDecodingResult(AsyncCharConsumer.java:131) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.client.methods.AsyncCharConsumer.onContentReceived(AsyncCharConsumer.java:116) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.protocol.AbstractAsyncResponseConsumer.consumeContent(AbstractAsyncResponseConsumer.java:147) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.client.MainClientExec.consumeContent(MainClientExec.java:329) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.consumeContent(DefaultClientExchangeHandlerImpl.java:157) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:330) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	... 1 more
  Caused by: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 1444 path $.moves
  	at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568) ~[gson-2.8.5.jar:?]
  	at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1031) ~[gson-2.8.5.jar:?]
  	at com.google.gson.stream.JsonReader.nextString(JsonReader.java:815) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:702) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:723) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:698) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.Streams.parse(Streams.java:48) ~[gson-2.8.5.jar:?]
  	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:65) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:927) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:892) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:841) ~[gson-2.8.5.jar:?]
  	at com.google.gson.Gson.fromJson(Gson.java:813) ~[gson-2.8.5.jar:?]
  	at net.marvk.chess.lichess4j.GameStateResponseConsumer.lambda$onCharReceived$0(GameStateResponseConsumer.java:58) ~[classes/:?]
  	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
  	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:?]
  	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
  	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
  	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
  	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
  	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
  	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:430) ~[?:?]
  	at net.marvk.chess.lichess4j.GameStateResponseConsumer.onCharReceived(GameStateResponseConsumer.java:59) ~[classes/:?]
  	at org.apache.http.nio.client.methods.AsyncCharConsumer.handleDecodingResult(AsyncCharConsumer.java:131) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.client.methods.AsyncCharConsumer.onContentReceived(AsyncCharConsumer.java:116) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.protocol.AbstractAsyncResponseConsumer.consumeContent(AbstractAsyncResponseConsumer.java:147) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.client.MainClientExec.consumeContent(MainClientExec.java:329) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.consumeContent(DefaultClientExchangeHandlerImpl.java:157) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:330) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) ~[httpasyncclient-4.1.4.jar:4.1.4]
  	at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) ~[httpcore-nio-4.4.10.jar:4.4.10]
  	... 1 more
  00:31:04.218 [pool-2-thread-7] INFO net.marvk.chess.lichess4j.GameThread - Closing stream for game qmsO36Kc
@marvk marvk added bug Something isn't working Lichess API labels Mar 22, 2019
@marvk marvk self-assigned this Mar 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Lichess API
Projects
None yet
Development

No branches or pull requests

1 participant