[Libreoffice-bugs] [Bug 141209] New: URP bridge disposed by invalid UTF-16 (lone low surrogate) in Writer document

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Tue Mar 23 18:38:54 UTC 2021


https://bugs.documentfoundation.org/show_bug.cgi?id=141209

            Bug ID: 141209
           Summary: URP bridge disposed by invalid UTF-16 (lone low
                    surrogate) in Writer document
           Product: LibreOffice
           Version: 7.0.5.2 release
          Hardware: x86-64 (AMD64)
                OS: Windows (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: sdk
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: thomas.kraemer at posteo.de

Created attachment 170669
  --> https://bugs.documentfoundation.org/attachment.cgi?id=170669&action=edit
Java project which reproduces the problem

1. Start the attached Java project (It is based on the "DocumentLoader.java"
example from the 7.1 SDK. So you can just drop the Main.java into your
preferred environment if maven is not to your taste.) The example code starts a
new LibreOffice Writer process, waits for 30 seconds and then prints the
content of the document to sysout via
com.sun.star.text.XTextDocument.getText().
2. To reproduce the problem enter a lone low surrogate into the Writer
document. E.g. enter "df09" into the document and then press Alt+X (or Alt+C
depending on your locale).
3. Wait until the 30 s timeout has passed.

Observed result:
----------------
The example program will exit with the following exception:
com.sun.star.lang.DisposedException
    at
com.sun.star.lib.uno.environments.remote.JobQueue.removeJob(JobQueue.java:201)
    at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:308)
    at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:281)
    at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:81)
    at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:619)
    at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:145)
    at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:129)
    at com.sun.proxy.$Proxy6.getString(Unknown Source)
    at com.vector.Main.main(Main.java:28)
Caused by: java.io.EOFException
    at java.base/java.io.DataInputStream.readInt(DataInputStream.java:396)
    at com.sun.star.lib.uno.protocols.urp.urp.readBlock(urp.java:364)
    at com.sun.star.lib.uno.protocols.urp.urp.readMessage(urp.java:96)
    at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge$MessageDispatcher.run(java_remote_bridge.java:92)

The LibreOffice process is still running afterwards but the socket connection
is closed. (There is no issue when “closing” the surrogate pair, e.g. for the
input 🌉(\ud83c\udf09).)

Expected result
---------------
The URP bridge is still usable for further requests by the "client" after
catching the exception for getText().

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20210323/2a376f1e/attachment.htm>


More information about the Libreoffice-bugs mailing list