Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 323725 - Invalid property name: Windows when comparing big word document
Summary: Invalid property name: Windows when comparing big word document
Status: RESOLVED NOT_ECLIPSE
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Compare (show other bugs)
Version: 3.6.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Compare-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-26 11:54 EDT by Krzysztof Kazmierczyk CLA
Modified: 2011-10-14 08:43 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Krzysztof Kazmierczyk CLA 2010-08-26 11:54:15 EDT
Build Identifier: 20100617-1415

org.eclipse.core.runtime.CoreException: Invalid property name: Windows.
	at org.eclipse.compare.internal.win32.WordMergeViewer.openComparison(WordMergeViewer.java:355)
	at org.eclipse.compare.internal.win32.WordMergeViewer.setInput(WordMergeViewer.java:386)
	at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:276)
	at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.setInput(CompareContentViewerSwitchingPane.java:158)
	at org.eclipse.compare.CompareEditorInput.internalSetContentPaneInput(CompareEditorInput.java:844)
	at org.eclipse.compare.CompareEditorInput.access$8(CompareEditorInput.java:842)
	at org.eclipse.compare.CompareEditorInput$11.run(CompareEditorInput.java:778)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.compare.CompareEditorInput.feed1(CompareEditorInput.java:772)
	at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:750)
	at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:554)
	at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:456)
	at org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:422)
	at org.eclipse.compare.internal.CompareEditor$3.run(CompareEditor.java:378)
	at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:164)
	at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: org.eclipse.swt.SWTException: Invalid property name: Windows.
	at org.eclipse.compare.internal.win32.WordComparison.property(WordComparison.java:147)
	at org.eclipse.compare.internal.win32.WordComparison.getVariantProperty(WordComparison.java:68)
	at org.eclipse.compare.internal.win32.WordComparison.getAutomationProperty(WordComparison.java:76)
	at org.eclipse.compare.internal.win32.WordComparison.setDocumentVisible(WordComparison.java:274)
	at org.eclipse.compare.internal.win32.WordComparison.createWorkingCopy(WordComparison.java:201)
	at org.eclipse.compare.internal.win32.WordMergeViewer.openComparison(WordMergeViewer.java:334)
	... 40 more

I think the cause is the same as we could not save document in bug 311011.

Reproducible: Always

Steps to Reproduce:
1. Checkout the testdocs project from
:pserver:anonymous@kaziktest.cvs.sourceforge.net:/cvsroot/kaziktest
2. Compare hello2.doc between versions 1.9 and 1.10
Comment 1 Krzysztof Kazmierczyk CLA 2010-09-27 04:07:39 EDT
The problem happens in org.eclipse.compare.internal.win32.WordComparison.setDocumentVisible(OleAutomation, boolean, OleAutomation). 

It seems, that workaround similar to that used in bug 311011 does not help in this case.

I can try else to use Windows API method Application.CompareDocuments instead of Document.Compare but I will require several modifications and Application.CompareDocuments may produce new bugs. Anyway I tried to reproduce this bug on bunch of different documents and the problem happens only for this one. Moreover the document which causes error were not any real existing document but was created specially for testing purposes by copying hundred times bugzilla webpage content into word document.

Szymon, shall we try to fix this problem using Application.CompareDocuments or we can close it as NOT_ECLIPSE for now?
Comment 2 Szymon Brandys CLA 2010-09-28 05:33:50 EDT
Well, I think we should at least try to fix the problem on our side. Do you have the patch?
Comment 3 Krzysztof Kazmierczyk CLA 2010-09-29 07:08:05 EDT
(In reply to comment #2)
> Well, I think we should at least try to fix the problem on our side. Do you
> have the patch?

When I was trying to write the patch, I discovered that Word 2003 API does not contain Application.compareDocuments (http://msdn.microsoft.com/en-us/library/aa221371%28office.11%29.aspx). This method seems to be available since Word 2007.

In that case, currently I do not have any idea how to solve this bug in Eclipse :(
Comment 4 Krzysztof Kazmierczyk CLA 2011-10-14 08:43:02 EDT
This is rather Active X issue rather than Eclipse. It should be closed as there is no easy way to fix it.