Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 63546 - [OLE] In-place editor fails with: Class ID not found in registry
Summary: [OLE] In-place editor fails with: Class ID not found in registry
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: 3.0.1   Edit
Assignee: Tod Creasey CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 49795 69945 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-05-22 15:03 EDT by Simon Archer CLA
Modified: 2006-03-08 21:15 EST (History)
4 users (show)

See Also:


Attachments
Zip file with new win32 classes (10.28 KB, application/octet-stream)
2004-06-29 16:28 EDT, Tod Creasey CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Archer CLA 2004-05-22 15:03:42 EDT
Try and open a file with the "In-place Editor".  I tried opening both a Java 
file and a text file, both failed and resulted in the following stack trace:

!MESSAGE Problems occurred when invoking code from plug-
in: "org.eclipse.core.runtime".
!STACK 0
org.eclipse.swt.SWTException: Class ID not found in registry result = -
2147221018
	at org.eclipse.swt.ole.win32.OLE.error(OLE.java:317)
	at org.eclipse.swt.ole.win32.OleClientSite.<init>
(OleClientSite.java:178)
	at 
org.eclipse.ui.internal.editorsupport.win32.OleEditor.createClientSite
(OleEditor.java:227)
	at 
org.eclipse.ui.internal.editorsupport.win32.OleEditor.createPartControl
(OleEditor.java:215)
	at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:124)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:608)
	at org.eclipse.core.runtime.Platform.run(Platform.java:758)
	at org.eclipse.ui.internal.PartPane.createChildControl
(PartPane.java:120)
	at org.eclipse.ui.internal.PartPane.createControl(PartPane.java:182)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection
(PartStack.java:912)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:894)
	at org.eclipse.ui.internal.PartStack.add(PartStack.java:283)
	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
	at org.eclipse.ui.internal.EditorSashContainer.addEditor
(EditorSashContainer.java:57)
	at org.eclipse.ui.internal.EditorAreaHelper.openEditor
(EditorAreaHelper.java:264)
	at org.eclipse.ui.internal.EditorManager$2.run(EditorManager.java:552)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.EditorManager.createEditorTab
(EditorManager.java:541)
	at org.eclipse.ui.internal.EditorManager.openSystemInPlaceEditor
(EditorManager.java:691)
	at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor
(EditorManager.java:443)
	at org.eclipse.ui.internal.EditorManager.openEditor
(EditorManager.java:428)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched
(WorkbenchPage.java:2165)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor
(WorkbenchPage.java:2098)
	at org.eclipse.ui.internal.WorkbenchPage.access$6
(WorkbenchPage.java:2090)
	at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2077)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2072)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2055)
	at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:258)
	at org.eclipse.ui.actions.OpenWithMenu.access$0(OpenWithMenu.java:251)
	at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent
(OpenWithMenu.java:166)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2716)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2382)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:253)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
	at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:97)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:307)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:256)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:127)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
	at org.eclipse.core.launcher.Main.run(Main.java:638)
	at org.eclipse.core.launcher.Main.main(Main.java:622)
Comment 1 Simon Archer CLA 2004-05-22 15:03:59 EDT
Eclipse 3.0, M9
Comment 2 Juergen Weber CLA 2004-05-25 13:45:28 EDT
Same for me with the Java Editor, I have one java source eclipse refuses to open.


!SESSION Mai 25, 2004 19:24:58.906 ---------------------------------------------

eclipse.buildId=I200405211200
java.version=1.4.2_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
!ENTRY org.eclipse.ui 4 4 Mai 25, 2004 19:24:58.906
!MESSAGE Unable to restore editor - no editor descriptor for id: org.eclipse.ui.
UnknownID
!ENTRY org.eclipse.ui 4 4 Mai 25, 2004 19:24:58.921
!MESSAGE Unable to restore editor - no editor descriptor for id: org.eclipse.ui.
UnknownID
!ENTRY org.eclipse.core.runtime 4 2 Mai 25, 2004 19:25:32.468
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.ru
ntime".
!STACK 0
org.eclipse.swt.SWTException: Class ID not found in registry result = -214722101
8
        at org.eclipse.swt.ole.win32.OLE.error(OLE.java:317)
        at org.eclipse.swt.ole.win32.OleClientSite.<init>(OleClientSite.java:178
)
        at org.eclipse.ui.internal.editorsupport.win32.OleEditor.createClientSit
e(OleEditor.java:227)
Comment 3 Juergen Weber CLA 2004-05-25 14:03:24 EDT
Went back to M8 keeping the workspace. Problem remains. Deleted the workspace,
imported my project again. Wow, can edit my file again.
Comment 4 Tod Creasey CLA 2004-06-29 12:00:56 EDT
We need to restore the ole error messages to start with (patch against 
workbench)

Index: Eclipse UI/org/eclipse/ui/internal/messages.properties
===================================================================
RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse 
UI/org/eclipse/ui/internal/messages.properties,v
retrieving revision 1.197
diff -u -r1.197 messages.properties
--- Eclipse UI/org/eclipse/ui/internal/messages.properties	23 Jun 2004 
17:14:35 -0000	1.197
+++ Eclipse UI/org/eclipse/ui/internal/messages.properties	29 Jun 2004 
15:53:45 -0000
@@ -795,3 +795,15 @@
 Workbench.restoreDisabled=This application does not save and restore 
previously saved state.
 Workbench.noStateToRestore=No previously saved state to restore.
 Workbench.noWindowsRestored=No windows restored.
+
+# OLE messages from win32 plug-in 
========================================================
+OleEditor.renameTitle = Rename File
+OleEditor.renameMessage = Enter new file name:
+OleEditor.errorSaving = Exception saving file
+OleEditor.oleExceptionTitle = OLE Exception
+OleEditor.oleExceptionMessage = OLE Error Saving 
+OleEditor.oleCreationExceptionMessage = OLE Error Opening 
+OleEditor.savingTitle = Error Saving
+OleEditor.savingMessage = Could not save 
+OleEditor.invalidInput = Invalid Input: {0}.  Input must implement 
IPathEditorInput
+OleEditor.noFileInput = Invalid Input: {0}.  Input must also exist in the 
filesystem


And here is a patch to the win32 plugin to handle these errors better

Index: src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
===================================================================
RCS 
file: /home/eclipse/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupp
ort/win32/OleEditor.java,v
retrieving revision 1.14
diff -u -r1.14 OleEditor.java
--- src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java	10 Mar 
2003 22:10:01 -0000	1.14
+++ src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java	29 Jun 
2004 15:55:00 -0000
@@ -24,8 +24,17 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceColors;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.ole.win32.OLE;
@@ -38,14 +47,6 @@
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceColors;
-
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IFileEditorInput;
@@ -59,6 +60,7 @@
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 import org.eclipse.ui.dialogs.SaveAsDialog;
 import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.ui.internal.WorkbenchPlugin;
 import org.eclipse.ui.part.EditorPart;
 import org.eclipse.ui.part.FileEditorInput;
 
@@ -176,6 +178,8 @@
 		WorkbenchMessages.getString("OleEditor.oleExceptionTitle"); //
$NON-NLS-1$
 	private static final String OLE_EXCEPTION_MESSAGE =
 		WorkbenchMessages.getString
("OleEditor.oleExceptionMessage"); //$NON-NLS-1$
+	private static final String OLE_CREATE_EXCEPTION_MESSAGE =
+		WorkbenchMessages.getString
("OleEditor.oleCreationExceptionMessage"); //$NON-NLS-1$
 	private static final String SAVE_ERROR_TITLE =
 		WorkbenchMessages.getString("OleEditor.savingTitle"); //$NON-
NLS-1$
 	private static final String SAVE_ERROR_MESSAGE =
@@ -224,7 +228,21 @@
 		if (clientFrame == null || clientFrame.isDisposed())
 			return;
 		// Create a OLE client site.
-		clientSite = new OleClientSite(clientFrame, SWT.NONE, source);
+		try{
+			clientSite = new OleClientSite(clientFrame, SWT.NONE, 
source);
+		}
+		catch (SWTException exception){		
+			
+			IStatus errorStatus = 
+				new Status(
+						IStatus.ERROR,
+						WorkbenchPlugin.PI_WORKBENCH,
+						IStatus.ERROR,
+						OLE_CREATE_EXCEPTION_MESSAGE,
+						exception);
+			ErrorDialog.openError
(null,OLE_EXCEPTION_TITLE,errorStatus.getMessage(),errorStatus);
+			return;
+		}
 		clientSite.setBackground(
 			JFaceColors.getBannerBackground(clientFrame.getDisplay
()));
 
Comment 5 Tod Creasey CLA 2004-06-29 16:28:59 EDT
Created attachment 12891 [details]
Zip file with new win32 classes

At Andrews suggestion I have moved the missing catalogs to the win32 plug-in
and created a new plug-in class for them. This zip contains all of the changes.
Comment 6 Tod Creasey CLA 2004-06-29 16:29:32 EDT
Adding Andrew so that he is aware that he does not have to restore these 
catalog entries.
Comment 7 Tod Creasey CLA 2004-06-30 14:04:41 EDT
This fix should go in 3.0.1. Fixed in build >20040630
Comment 8 Tod Creasey CLA 2004-07-13 10:08:04 EDT
Patch released to the 3.0.1 stream
Comment 9 Tod Creasey CLA 2004-07-20 08:50:28 EDT
*** Bug 69945 has been marked as a duplicate of this bug. ***
Comment 10 Tod Creasey CLA 2004-07-21 15:05:26 EDT
Verified in 20040721
Comment 11 Tod Creasey CLA 2004-08-31 14:00:29 EDT
*** Bug 49795 has been marked as a duplicate of this bug. ***
Comment 12 Michael Scharf CLA 2006-03-08 21:15:48 EST
Open with "In-place Editor"