Why typing in Writer instantiates the JVM on Mac OS X

classic Classic list List threaded Threaded
7 messages Options
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Why typing in Writer instantiates the JVM on Mac OS X

With problems popping up for users after upgrading to Mac OS X Mavericks
(which replaces a previously installed Java with a "download and
install" stub), I discovered the odd fact that indeed at least since LO
4.1.2 (but probably even earlier already, just had no time to verify),
and on Mac OS X only, thanks to the bundled WikiPublisher extension we
instantiate a JVM as soon as you start "soffice --writer" and type "x".
  Debugging it on a recent master build:

> #0  stoc_javavm::JavaVirtualMachine::getJavaVM (this=0x1ed5e484, rProcessId=@0xbffb9568) at core/stoc/source/javavm/javavm.cxx:685
> #1  0x1eee815b in non-virtual thunk to stoc_javavm::JavaVirtualMachine::getJavaVM(com::sun::star::uno::Sequence<signed char> const&) (this=0x1ed5e4b4, rProcessId=@0xbffb9568) at core/stoc/source/javavm/javavm.cxx:929
> #2  0x1eeaf9d8 in stoc_javaloader::JavaComponentLoader::getJavaLoader (this=0x1edd173c) at core/stoc/source/javaloader/javaloader.cxx:162
> #3  0x1eeb1c52 in stoc_javaloader::JavaComponentLoader::activate (this=0x1edd173c, rImplName=@0x7a924090, blabla=@0xbffb97a0, rLibName=@0xbffb9910, xKey=@0xbffb9798) at core/stoc/source/javaloader/javaloader.cxx:357
> #4  0x1eeb1e4d in non-virtual thunk to stoc_javaloader::JavaComponentLoader::activate(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&) (this=0x1edd1750, rImplName=@0x7a924090, blabla=@0xbffb97a0, rLibName=@0xbffb9910, xKey=@0xbffb9798) at core/stoc/source/javaloader/javaloader.cxx:363
> #5  0x00a7a8f6 in cppuhelper::ServiceManager::loadImplementation (this=0x857b0c8, context=@0x857b114, info=@0x7a924070, factory1=0xbffb9a00, factory2=0xbffb99f8) at core/cppuhelper/source/servicemanager.cxx:678
> #6  0x00a7c628 in cppuhelper::ServiceManager::findServiceImplementation (this=0x857b0c8, context=@0x857b114, specifier=@0xbffb9de0) at core/cppuhelper/source/servicemanager.cxx:1667
> #7  0x00a7bbeb in cppuhelper::ServiceManager::createInstanceWithContext (this=0x857b0c8, aServiceSpecifier=@0xbffb9de0, Context=@0x857b114) at core/cppuhelper/source/servicemanager.cxx:791
> #8  0x00a7b582 in cppuhelper::ServiceManager::createInstance (this=0x857b0c8, aServiceSpecifier=@0xbffb9de0) at core/cppuhelper/source/servicemanager.cxx:745
> #9  0x00a7b5cb in non-virtual thunk to cppuhelper::ServiceManager::createInstance(rtl::OUString const&) (this=0x857b0f4, aServiceSpecifier=@0xbffb9de0) at core/cppuhelper/source/servicemanager.cxx:746
> #10 0x0df1a927 in framework::DispatchProvider::implts_searchProtocolHandler (this=0x12784ce0, aURL=@0xbffba788) at core/framework/source/dispatch/dispatchprovider.cxx:502
> #11 0x0df19338 in framework::DispatchProvider::implts_queryFrameDispatch (this=0x12784ce0, xFrame=@0xbffba220, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/dispatch/dispatchprovider.cxx:407
> #12 0x0df16ee8 in framework::DispatchProvider::queryDispatch (this=0x12784ce0, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/dispatch/dispatchprovider.cxx:120
> #13 0x0df19a25 in non-virtual thunk to framework::DispatchProvider::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, long) (this=0x12784cf4, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/dispatch/dispatchprovider.cxx:123
> #14 0x13687e2e in SwXDispatchProviderInterceptor::queryDispatch (this=0x18efaedc, aURL=@0xbffba788, aTargetFrameName=@0xbffba700, nSearchFlags=0) at core/sw/source/ui/uno/unodispatch.cxx:87
> #15 0x13687fb5 in non-virtual thunk to SwXDispatchProviderInterceptor::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, long) (this=0x18efaef0, aURL=@0xbffba788, aTargetFrameName=@0xbffba700, nSearchFlags=0) at core/sw/source/ui/uno/unodispatch.cxx:90
> #16 0x0df1d016 in framework::InterceptionHelper::queryDispatch (this=0x12784c70, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/dispatch/interceptionhelper.cxx:85
> #17 0x0df1d155 in non-virtual thunk to framework::InterceptionHelper::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, long) (this=0x12784c84, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/dispatch/interceptionhelper.cxx:87
> #18 0x0e018cf7 in framework::Frame::queryDispatch (this=0x1278eae8, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/services/frame.cxx:2078
> #19 0x0e018da5 in non-virtual thunk to framework::Frame::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, long) (this=0x1278eaf0, aURL=@0xbffba788, sTargetFrameName=@0xbffba700, nSearchFlags=0) at core/framework/source/services/frame.cxx:2080
> #20 0x0e0ec9b9 in framework::MenuBarManager::Activate (this=0x19d27e54, pMenu=0x7d253cf0) at core/framework/source/uielement/menubarmanager.cxx:922
> #21 0x0e0eb944 in framework::MenuBarManager::LinkStubActivate (pThis=0x19d27e54, pCaller=0x7d253cf0) at core/framework/source/uielement/menubarmanager.cxx:792
> #22 0x03f64c5a in Link::Call (this=0x7d253d0c, pCaller=0x7d253cf0) at link.hxx:123
> #23 0x044d6fb6 in Menu::Activate (this=0x7d253cf0) at core/vcl/source/window/menu.cxx:1063
> #24 0x044e28ec in MenuBar::HandleMenuActivateEvent (this=0x7d250670, pMenu=0x7d253cf0) at core/vcl/source/window/menu.cxx:3387
> #25 0x045b3110 in ImplHandleMenuEvent (pWindow=0x7d1ecbe0, pEvent=0xbffbaca8, nEvent=35) at core/vcl/source/window/winproc.cxx:2097
> #26 0x045b12f2 in ImplWindowFrameProc (pWindow=0x7d1ecbe0, nEvent=35, pEvent=0xbffbaca8) at core/vcl/source/window/winproc.cxx:2498
> #27 0x045d4946 in SalFrame::CallCallback (this=0x7d1eb890, nEvent=35, pEvent=0xbffbaca8) at salframe.hxx:243
> #28 0x04651e1e in -[SalNSMenu menuNeedsUpdate:] (self=0x7d253cd0, _cmd=0x91b1460b, pMenu=0x7d253cd0) at core/vcl/aqua/source/window/salnsmenu.mm:51
> #29 0x91272503 in -[NSMenu _populateFromDelegateWithEventRef:] ()
> #30 0x9126ef5e in -[NSMenu _populateWithEventRef:] ()
> #31 0x9127143b in -[NSCarbonMenuImpl _carbonPopulateEvent:handlerCallRef:] ()
> #32 0x91271136 in NSSLMMenuEventHandler ()
> #33 0x98d93eb9 in _InvokeEventHandlerUPP ()
> #34 0x98be764f in DispatchEventToHandlers ()
> #35 0x98be6968 in SendEventToEventTargetInternal ()
> #36 0x98be67e0 in SendEventToEventTargetWithOptions ()
> #37 0x98dddfdd in SendMenuPopulate ()
> #38 0x98df8bd1 in PopulateMenu ()
> #39 0x98c2a2d0 in Check1MenuForKeyEvent ()
> #40 0x98c2ab38 in Check1MenuForKeyEvent ()
> #41 0x98c29c2f in CheckMenusForKeyEvent ()
> #42 0x98df8afe in _IsMenuKeyEvent ()
> #43 0x98c297ca in IsMenuKeyEvent ()
> #44 0x91270d00 in +[NSCarbonMenuImpl _menuItemWithKeyEquivalentMatchingEventRef:inMenu:] ()
> #45 0x91270a2b in _NSFindMenuItemMatchingCommandKeyEvent ()
> #46 0x911de524 in _NSHandleCarbonMenuEvent ()
> #47 0x91033902 in _DPSNextEvent ()
> #48 0x91032ad0 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
> #49 0x045d2029 in AquaSalInstance::Yield (this=0x79659820, bWait=true, bHandleAllCurrentEvents=false) at core/vcl/aqua/source/app/salinst.cxx:699
> #50 0x03f7d8a2 in ImplYield (i_bWait=true, i_bAllEvents=false) at core/vcl/source/app/svapp.cxx:364
> #51 0x03f7911a in Application::Yield () at core/vcl/source/app/svapp.cxx:396
> #52 0x03f790db in Application::Execute () at core/vcl/source/app/svapp.cxx:345
> #53 0x0015341d in desktop::Desktop::Main (this=0xbffbcb88) at core/desktop/source/app/app.cxx:1717
> #54 0x03f8951b in ImplSVMain () at core/vcl/source/app/svmain.cxx:162
> #55 0x045d15f3 in AquaSalInstance::handleAppDefinedEvent (pEvent=0x7c8126b0) at core/vcl/aqua/source/app/salinst.cxx:528
> #56 0x0463563f in -[VCL_NSApplication sendEvent:] (self=0x7a918880, _cmd=0x91ac9d80, pEvent=0x7c8126b0) at core/vcl/aqua/source/app/vclnsapp.mm:64
> #57 0x910253bc in -[NSApplication run] ()
> #58 0x9100e1f8 in NSApplicationMain ()
> #59 0x045d0363 in ImplSVMainHook (pnInit=0xbffbcb20) at core/vcl/aqua/source/app/salinst.cxx:221
> #60 0x03f8ac5e in SVMain () at core/vcl/source/app/svmain.cxx:195
> #61 0x001b15a8 in soffice_main () at core/desktop/source/app/sofficemain.cxx:85
> #62 0x00044f5b in sal_main () at core/desktop/source/app/main.c:48
> #63 0x00044f40 in main (argc=2, argv=0xbffbcc34) at core/desktop/source/app/main.c:47

where the URL in frame 19 is "vnd.sun.star.wiki:send" as specified in
the "File - Send - To MediaWiki..." menu entry added by the
WikiPublisher's Addons.xcu.

Looks like we are "populating" the menu tree too eagerly on Mac OS X.
(On Linux at least, stoc_javavm::JavaVirtualMachine::getJavaVM only gets
triggered once you open the "File - Send" sub-menu.)

Stephan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Norbert Thiebaud Norbert Thiebaud
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

On Thu, Oct 24, 2013 at 12:02 PM, Stephan Bergmann <[hidden email]> wrote:
> With problems popping up for users after upgrading to Mac OS X Mavericks

So... I installed a libreoffice 4.1 (latest stable release)
I made sure that java was working for libreoffice.

then I upgraded to maverick

immediately after the install was done, I started libreoffice again...
then selected 'Writer'... typed a charactere
A pop up showed-up warning me that Java 1.6 is not avaialble, and
asked me if I wanted to install it.
I answered no to the request to install java
at this point there is no more lo running, although there was no
crash-report dialog.

I started again... a lo crash recovery windows was presented for the
writer document I was on...
I said no to recovery and proceeded with creating a new writter document..
same symptom... this time I replied 'yes' to the install of java
after java has been installed, Libreoffice is restarted automatically,
and a lo-crash-recovery windows is presented again...

After that lo works normally


Norbert
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Jonathan Aquilina Jonathan Aquilina
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

Norbert, the problem is that Ubuntu doesnt have the sun java in the repo, it can be installed but not readily available in the default enabled repos. The question I think becomes if its possible to include support for the open jdk.


On Fri, Oct 25, 2013 at 12:49 AM, Norbert Thiebaud <[hidden email]> wrote:
On Thu, Oct 24, 2013 at 12:02 PM, Stephan Bergmann <[hidden email]> wrote:
> With problems popping up for users after upgrading to Mac OS X Mavericks

So... I installed a libreoffice 4.1 (latest stable release)
I made sure that java was working for libreoffice.

then I upgraded to maverick

immediately after the install was done, I started libreoffice again...
then selected 'Writer'... typed a charactere
A pop up showed-up warning me that Java 1.6 is not avaialble, and
asked me if I wanted to install it.
I answered no to the request to install java
at this point there is no more lo running, although there was no
crash-report dialog.

I started again... a lo crash recovery windows was presented for the
writer document I was on...
I said no to recovery and proceeded with creating a new writter document..
same symptom... this time I replied 'yes' to the install of java
after java has been installed, Libreoffice is restarted automatically,
and a lo-crash-recovery windows is presented again...

After that lo works normally


Norbert
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice



--
Jonathan Aquilina

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

On 10/25/2013 07:36 AM, Jonathan Aquilina wrote:
> Norbert, the problem is that Ubuntu doesnt have the sun java in the
> repo, it can be installed but not readily available in the default
> enabled repos. The question I think becomes if its possible to include
> support for the open jdk.

This thread is about a specific problem with Java on Mac OS X.  If you
have problems in combination with Ubuntu and Java (and note that OpenJDK
/is/ generally supported by LO), I'd suggest you take that to an
Ubuntu-specific venue.

Stephan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Tor Lillqvist-2 Tor Lillqvist-2
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

In reply to this post by sberg
For what it's worth, on my MacBook Air, running 10.9, with no Java
(and no intent to install it), I don't get any crash when running the
TDF LibreOffice 4.1.1.2 build. I do get those annoying "do you want to
install Java" dialogs twice when typing into Writer (until I turn off
Java in Preferences).

--tml
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Jean-Baptiste Faure Jean-Baptiste Faure
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

In reply to this post by sberg
Le 24/10/2013 19:02, Stephan Bergmann a écrit :
> With problems popping up for users after upgrading to Mac OS X Mavericks
> (which replaces a previously installed Java with a "download and
> install" stub), I discovered the odd fact that indeed at least since LO
> 4.1.2 (but probably even earlier already, just had no time to verify),
> and on Mac OS X only, thanks to the bundled WikiPublisher extension we
> instantiate a JVM as soon as you start "soffice --writer" and type "x".

We have a behavior that seems the same to me in the master under Linux.
It leads to a crash if I set the virtual memory limit at 3 Go.

I filed the bug https://bugs.freedesktop.org/show_bug.cgi?id=70919

Best regards.

JBF

--
Seuls des formats ouverts peuvent assurer la pérennité de vos documents.
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: Why typing in Writer instantiates the JVM on Mac OS X

On 10/27/2013 04:59 PM, Jean-Baptiste Faure wrote:

> Le 24/10/2013 19:02, Stephan Bergmann a écrit :
>> With problems popping up for users after upgrading to Mac OS X Mavericks
>> (which replaces a previously installed Java with a "download and
>> install" stub), I discovered the odd fact that indeed at least since LO
>> 4.1.2 (but probably even earlier already, just had no time to verify),
>> and on Mac OS X only, thanks to the bundled WikiPublisher extension we
>> instantiate a JVM as soon as you start "soffice --writer" and type "x".
>
> We have a behavior that seems the same to me in the master under Linux.
> It leads to a crash if I set the virtual memory limit at 3 Go.
>
> I filed the bug https://bugs.freedesktop.org/show_bug.cgi?id=70919

That was completely unrelated, see the issue for details.

Stephan

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice