[Libreoffice-commits] .: Branch 'libreoffice-3-6' - binaryurp/source

Michael Stahl mst at kemper.freedesktop.org
Wed Aug 15 03:47:14 PDT 2012


 binaryurp/source/bridge.cxx |   19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

New commits:
commit d58a927f4a66d2df9872fbe0a609b67f90f85147
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Aug 15 11:37:34 2012 +0200

    fdo#43433: Binary URP works gracefully with old Java URP
    
    ...which did not support protocol properties yet.
    
    Change-Id: Ic5bb346764fb039856e16169d5ae96d01422e7e0
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/binaryurp/source/bridge.cxx b/binaryurp/source/bridge.cxx
index fbb70a4..216d866 100644
--- a/binaryurp/source/bridge.cxx
+++ b/binaryurp/source/bridge.cxx
@@ -678,7 +678,24 @@ void Bridge::sendRequestChangeRequest() {
 void Bridge::handleRequestChangeReply(
     bool exception, BinaryAny const & returnValue)
 {
-    throwException(exception, returnValue);
+    try {
+        throwException(exception, returnValue);
+    } catch (css::uno::RuntimeException & e) {
+        // Before OOo 2.2, Java URP would throw a RuntimeException when
+        // receiving a requestChange message (see i#35277 "Java URP: Support
+        // Manipulation of Protocol Properties"):
+        if (mode_ != MODE_REQUESTED) {
+            throw;
+        }
+        SAL_WARN(
+            "binaryurp",
+            "requestChange caught RuntimeException \'" << e.Message
+                << "' in state 'requested'");
+        mode_ = MODE_NORMAL;
+        getWriter()->unblock();
+        decrementCalls();
+        return;
+    }
     sal_Int32 n = *static_cast< sal_Int32 * >(
         returnValue.getValue(
             css::uno::TypeDescription(cppu::UnoType< sal_Int32 >::get())));


More information about the Libreoffice-commits mailing list