javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit 1963dc64554a8b64c229ddd72bc615f3e736731a
Author: Damjan Jovanovic <[email protected]>
Date:   Fri Sep 8 02:17:19 2017 +0000

    Fix a locking bug in our Java ComponentBase class, where after the 
transition
    
    to disposed, the relevant variables (bDisposed and bInDispose) are written 
to
    outside a synchronized block.
    
    The equivalent C++ implementation in main/cppuhelper/source/implbase.cxx,
    method WeakComponentImplHelperBase::dispose(), already does this.
    
    Patch by: me
    
    (cherry picked from commit 2d382cef5450cf1593322184649257d3666cbbd8)
    
    Change-Id: I6c3e2ef78bc3c945245fe9fb7b6b713eb83710be
    Reviewed-on: https://gerrit.libreoffice.org/42189
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Stephan Bergmann <[email protected]>

diff --git a/javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java 
b/javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java
index 783c1d0cfcc2..d886ef7020d5 100644
--- a/javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java
+++ b/javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java
@@ -87,8 +87,11 @@ public class ComponentBase extends WeakBase implements 
XComponent
             {
                 // finally makes sure that the  flags are set even if a 
RuntimeException is thrown.
                 // That ensures that this function is only called once.
-                bDisposed= true;
-                bInDispose= false;
+                synchronized (this)
+                {
+                    bDisposed= true;
+                    bInDispose= false;
+                }
             }
         }
         else
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to