Apache OpenOffice (AOO) Bugzilla – Issue 98602
LanguageTool 0.9.6 first time installation crashes OOo
Last modified: 2009-03-18 13:49:08 UTC
After installing DEV300_m39 and installing LT LanguageTool 0.9.6 for the FIRST time OOo always crashes in configmgr2.uno.dll. A second time installation is always succsesful! (unless you did remove uno_packages in the meantime) The results after the second time installation seem to be different: - under Mac OSX the second time installation just worked - while under Windows LT crashes when it is to check text (See attached image)
Created attachment 59750 [details] LanguageTool error message after second time installation with Windows
TL->JL: Since the very same extension just works fine with OOO300_m15 (OOO 3.0.1) I think it is not a problem of LT. Thus can you have a look into this one? Thanks!
TL->JL: I mean please look into the issue with the first time installation crash. I hope that if this problem is solved the other one (LT crashing when used after second time installation) will not occur anymore.
.
LT 0.9.6 can be downloaded from http://extensions.services.openoffice.org/node/1891
TL->JL: In DEV300_m38 pro the observation with Windows is the very same as in DEV300_m39 pro.
milek -> tl: this seems like a classpath problem, as we're loading rules from the classpath. I know that for 3.1 the problem with special characters in the path was solved (don't remember which CWS that was). That could have caused however that the path that LT sees is different and somehow the same path is being served twice. But that shouldn't crash OOo.
tl->milek: The second time installed OOo does not crash! It just seems that LT crashes or has a serious error and thus proofreading is not working at all.
milek->tl: Did you see the classpath error message before the crash in the first install?
tl->milek: no error from LT in the first install since OOo already crashed during that installation. Thus I doubt that LT had any chance to display error messages at that time. >;-P
milek->tl: one thing springs to my mind... If you did install immediately after the crash, there's probably already uno.exe in memory, along with JVM, LanguageTool and all its java classes. Could you please check if you have leftover uno.exe processes in your Task Manager?
To reproduce the crash in the m40 one needs to remove the dependency from the description.xml. The extensions requires a 3.0.1 but the m40 "believes" to be a 3.0.0. Delete the uno_packages folder from the UserInstallation. The crash occurrs in configmgr.uno.dll, as a result of registering/merging the Linguistic.xcu. The critical part seems to be the oor:name="-" : <node oor:name="GrammarCheckerList"> <prop oor:name="-" oor:type="oor:string-list" oor:op="replace"> <value>de.danielnaber.languagetool.openoffice.Main</value> </prop> </node> This causes an access violation.
Created attachment 59755 [details] stack
If I remember corectly that string should not have been <prop oor:name="-" oor:type="oor:string-list" oor:op="replace"> but <prop oor:name="-" oor:type="oor:string-list" oor:op="fuse"> After all the extension must not replace/remove everything else. ^^° But I wonder why it is working in OOo 3.0.1? The same rule should apply there as well... Any idea?
tl->milek: Or better those dummy lines needed in 3.0 should not be necessary anymore at all. Please try without those lines!
milek->tl: I remember experimenting with Linguistic.xcu when I changed "-" to something else in 3.0.1 and that had no effect. Does deleting those fix the crash and make LT run?
Whether or not the content of Linuguistic.xcu as included in LanguageTool-0.9.6.oxt is valid and necessary, the crash in configmgr is most likely a regression introduced by <http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=DEV300%2Fsb99> integrated into DEV300m35.
tl->milek: If deleting the entry with the "-" does not help you can assign this one to me afterwards, since in that case me code would still have the problem from 3.0 that I believe to be gone in 3.0.1. But you should better check the modified LT with 3.0.1 and DEV300_m39/m38 since it needs to work with both versions. In the worst case scenario it might be that LT 0.9.6 can only be used with 3.0.1 and a fixed version of LT only in 3.1 and following versions. Let's just hope that this will not what it turns out to be. I really think I have already gotten rid of the code that required the dummy "-" entry right after 3.0.
TL->QA: Because of some e-mail note by FL who experienced crashes in DEV300_m38 with a different extension only if that extension was installed for all users. The fix should be tested by installing LT twice once "only for me" and the second time "for all users".
fixed as cws/sb105/configmgr/source/tree/updatehelper.cxx@267272
@jsk: please verify (see #desc6 and #desc13)
Verified in CWS sb105, installing, disabling, enabling and removing works ok.
Closing