Hi Cameron, could you mail me your plugin so I can have a look at the crash?
Regards, Christian Am 01.05.2010 14:45, schrieb Cameron Flint:
[I originally sent this request to [email protected] but did not receive a response, so I'm hoping that I'll have more success with this mailing list.] Hello! I am working on a plug-in that controls a running slideshow with the XPresentation2 interface. The problem I am having is that occasionally, when I call end() on it, OO freezes -- never returning from JNI_proxy.dispatch_call(). Initially I thought this might be due to not calling the API from the correct thread, so I updated the code to run on an XRequestCallback to ensure that I am executing end() on the UNO main thread. My code is that calls end() is as follows: ============================================================= private void ClosePresentationWindow() { if ( !m_session.IsFullscreenWindowDisposed() ) { m_session.SetFullscreenWindowDisposed( true ); // Run from OO UI thread DesktopTools.RequestAnonymousCallback( new XCallback() { @Override public void notify( Object arg0 ) { m_session.GetPresentation().end(); // HANG (sometimes) } } ); } } ============================================================= And RequestAnonymousCallback() looks like this: ============================================================= public static boolean RequestAnonymousCallback( XCallback callback ) { XContextWrapper xCtxWrapper = GetContext(); if ( !xCtxWrapper.IsValid() ) return false; try { XRequestCallback xRequestCallback = AsyncCallback.create( xCtxWrapper .GetContext() ); if ( xRequestCallback != null ) { xRequestCallback.addCallback( callback, null ); return true; } } catch ( RuntimeException e ) { // do nothing } return false; } ============================================================= Unfortunately, this does not seem to fix the problem, and so I am left with OO crashing hard on an unpredictable basis. Does anyone have any thoughts on this? -- Cameron
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
