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

Exceptions thrown and completion not called, when calling EpubNavigatorFragment::go. #144

Open
jerome65536 opened this issue May 20, 2021 · 1 comment
Labels
bug Something isn't working

Comments

@jerome65536
Copy link

To reproduce:

  • Run the app in Android Studio to see the debug logs.
  • Open a book.
  • Tap near the top of the screen to open the top bar.
  • Press the ≡ button.
  • Click on a random chapter (this calls go).
  • Check the logs, scroll some way up and see some exceptions.
--- a/r2-navigator/src/main/java/org/readium/r2/navigator/epub/EpubNavigatorFragment.kt
+++ b/r2-navigator/src/main/java/org/readium/r2/navigator/epub/EpubNavigatorFragment.kt
     override fun go(locator: Locator, animated: Boolean, completion: () -> Unit): Boolean {
+        Log.d("***", "GO -> $locator")
D/***: GO -> Locator(href=/OPS/main4.xml, type=, title=Chapter 5, locations=Locations(fragments=[], progression=0.0, position=null, totalProgression=null, otherLocations={}), text=Text(before=null, highlight=null, after=null))
D/R2BasicWebView: runJavaScript: setScrollMode(true)
D/R2BasicWebView: runJavaScript: setScrollMode(true)
V/PublicationResourceHandler$get: Method: GET, Uri: /2ea13a85628fca53af8a113fb815fb6e/OPS/cover.xml
V/PublicationResourceHandler$get: Method: GET, Uri: /2ea13a85628fca53af8a113fb815fb6e/OPS/title.xml
D/R2BasicWebView: runJavaScript: setScrollMode(true)
D/R2BasicWebView: runJavaScript: setScrollMode(true)
D/R2BasicWebView: runJavaScript: setScrollMode(true)
W/cr_AwContents: Application attempted to call on a destroyed WebView
    java.lang.Throwable
        at org.chromium.android_webview.AwContents.t(chromium-TrichromeWebViewGoogle.apk-stable-410410686:2)
        at Mt.loadingStateChanged(chromium-TrichromeWebViewGoogle.apk-stable-410410686:2)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:335)
        at android.os.Looper.loop(Looper.java:183)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
W/cr_AwContents: Application attempted to call on a destroyed WebView
    java.lang.Throwable
        at org.chromium.android_webview.AwContents.t(chromium-TrichromeWebViewGoogle.apk-stable-410410686:2)
        at Mt.loadingStateChanged(chromium-TrichromeWebViewGoogle.apk-stable-410410686:2)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:335)
        at android.os.Looper.loop(Looper.java:183)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
V/PublicationResourceHandler$get: Method: GET, Uri: /2ea13a85628fca53af8a113fb815fb6e/OPS/main4.xml
V/PublicationResourceHandler$get: Method: GET, Uri: /2ea13a85628fca53af8a113fb815fb6e/OPS/main3.xml
V/PublicationResourceHandler$get: Method: GET, Uri: /2ea13a85628fca53af8a113fb815fb6e/OPS/main5.xml
V/BaseHandler: Method: GET, URL: /assets/readium-css/ReadiumCSS-after.css
V/BaseHandler: Method: GET, URL: /assets/readium-css/ReadiumCSS-before.css
V/BaseHandler: Method: GET, URL: /assets/scripts/gestures.js
E/NanoHTTPD: Could not send response to the client
    java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:117)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:149)
        at org.nanohttpd.protocols.http.response.ChunkedOutputStream.write(ChunkedOutputStream.java:68)
        at org.nanohttpd.protocols.http.response.ChunkedOutputStream.write(ChunkedOutputStream.java:61)
        at java.util.zip.GZIPOutputStream.writeHeader(GZIPOutputStream.java:182)
        at java.util.zip.GZIPOutputStream.<init>(GZIPOutputStream.java:94)
        at java.util.zip.GZIPOutputStream.<init>(GZIPOutputStream.java:109)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectEncoding(Response.java:309)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectTransferAndEncoding(Response.java:300)
        at org.nanohttpd.protocols.http.response.Response.send(Response.java:268)
        at org.nanohttpd.protocols.http.HTTPSession.execute(HTTPSession.java:432)
        at org.nanohttpd.protocols.http.ClientHandler.run(ClientHandler.java:75)
        at java.lang.Thread.run(Thread.java:923)
E/NanoHTTPD: Could not send response to the client
    java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:117)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:149)
        at org.nanohttpd.protocols.http.response.ChunkedOutputStream.write(ChunkedOutputStream.java:68)
        at org.nanohttpd.protocols.http.response.Response.sendBody(Response.java:340)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectEncoding(Response.java:313)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectTransferAndEncoding(Response.java:300)
        at org.nanohttpd.protocols.http.response.Response.send(Response.java:268)
        at org.nanohttpd.protocols.http.HTTPSession.execute(HTTPSession.java:432)
        at org.nanohttpd.protocols.http.ClientHandler.run(ClientHandler.java:75)
        at java.lang.Thread.run(Thread.java:923)
E/NanoHTTPD: Could not send response to the client
    java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:117)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:149)
        at org.nanohttpd.protocols.http.response.ChunkedOutputStream.write(ChunkedOutputStream.java:68)
        at org.nanohttpd.protocols.http.response.ChunkedOutputStream.write(ChunkedOutputStream.java:61)
        at java.util.zip.GZIPOutputStream.writeHeader(GZIPOutputStream.java:182)
        at java.util.zip.GZIPOutputStream.<init>(GZIPOutputStream.java:94)
        at java.util.zip.GZIPOutputStream.<init>(GZIPOutputStream.java:109)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectEncoding(Response.java:309)
        at org.nanohttpd.protocols.http.response.Response.sendBodyWithCorrectTransferAndEncoding(Response.java:300)
        at org.nanohttpd.protocols.http.response.Response.send(Response.java:268)
        at org.nanohttpd.protocols.http.HTTPSession.execute(HTTPSession.java:432)
        at org.nanohttpd.protocols.http.ClientHandler.run(ClientHandler.java:75)
        at java.lang.Thread.run(Thread.java:923)
@mickael-menu mickael-menu added the bug Something isn't working label May 20, 2021
@mickael-menu
Copy link
Member

I think the exceptions are mostly warnings and unrelated to the completion closure not being called. It looks like the completion was not fully implemented because it is not used in the go() API.

@mickael-menu mickael-menu transferred this issue from readium/r2-navigator-kotlin Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants