From 77031644f16b63c794c1eef0ec4456d37e34fe23 Mon Sep 17 00:00:00 2001 From: jan iversen Date: Fri, 22 Jan 2016 15:04:25 +0100 Subject: cid#1326434, 1326446, 1326248, 1326254 null pointer dereferencing, added null check Change-Id: I78f3ee1eb5d5bd4ebe7b3a6775db4884859dbcf6 Reviewed-on: https://gerrit.libreoffice.org/21712 Tested-by: Jenkins Reviewed-by: jan iversen --- .../sun/star/wiki/MainThreadDialogExecutor.java | 54 +++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'swext/mediawiki') diff --git a/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java b/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java index 784bc7774e11..a6ee07fc8504 100644 --- a/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java +++ b/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java @@ -60,40 +60,40 @@ public class MainThreadDialogExecutor implements XCallback private static boolean GetCallback( XComponentContext xContext, MainThreadDialogExecutor aExecutor ) { + if (aExecutor == null) + return false; + try { - if ( aExecutor != null ) - { - String aThreadName = null; - Thread aCurThread = Thread.currentThread(); - if ( aCurThread != null ) - aThreadName = aCurThread.getName(); + String aThreadName = null; + Thread aCurThread = Thread.currentThread(); + if ( aCurThread != null ) + aThreadName = aCurThread.getName(); - if ( aThreadName != null && aThreadName.equals( "com.sun.star.thread.WikiEditorSendingThread" ) ) + if ( aThreadName != null && aThreadName.equals( "com.sun.star.thread.WikiEditorSendingThread" ) ) + { + // the main thread should be accessed asynchronously + XMultiComponentFactory xFactory = xContext.getServiceManager(); + if ( xFactory == null ) + throw new com.sun.star.uno.RuntimeException(); + + XRequestCallback xRequest = UnoRuntime.queryInterface( + XRequestCallback.class, + xFactory.createInstanceWithContext( "com.sun.star.awt.AsyncCallback", xContext ) ); + if ( xRequest != null ) { - // the main thread should be accessed asynchronously - XMultiComponentFactory xFactory = xContext.getServiceManager(); - if ( xFactory == null ) - throw new com.sun.star.uno.RuntimeException(); - - XRequestCallback xRequest = UnoRuntime.queryInterface( - XRequestCallback.class, - xFactory.createInstanceWithContext( "com.sun.star.awt.AsyncCallback", xContext ) ); - if ( xRequest != null ) + xRequest.addCallback( aExecutor, Any.VOID ); + do { - xRequest.addCallback( aExecutor, Any.VOID ); - do - { - Thread.yield(); - } - while( !aExecutor.m_bCalled ); + Thread.yield(); } + while( !aExecutor.m_bCalled ); } - else - { - // handle it as a main thread - aExecutor.notify( Any.VOID ); - } + } + else + { + // handle it as a main thread + aExecutor.notify( Any.VOID ); } } catch( Exception e ) -- cgit