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]

Reply via email to