Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 330648 - Syntax error in plugin.xml should not be written to System.out
Summary: Syntax error in plugin.xml should not be written to System.out
Status: VERIFIED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.7   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 3.7 M4   Edit
Assignee: Curtis Windatt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-19 06:03 EST by Markus Keller CLA
Modified: 2010-12-07 14:06 EST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2010-11-19 06:03:37 EST
I20101116-0800

- Add a syntax error to a plugin.xml and save (I took org.eclipse.core.expressions and changed "<extension" to "<extensionXXX").

=> The following is written to the console:
Error:  Could not parse XML contribution for "org.eclipse.core.expressions/C:\e\w\runtime-head-CLEAN-2\org.eclipse.core.expressions\plugin.xml". Any contributed extensions and extension points will be ignored.

Stacktrace:

java.lang.Exception
	at java.io.PrintStream.print(PrintStream.java:616)
	at java.io.PrintStream.println(PrintStream.java:756)
	at org.eclipse.core.internal.registry.RegistrySupport.log(RegistrySupport.java:65)
	at org.eclipse.core.runtime.spi.RegistryStrategy.log(RegistryStrategy.java:128)
	at org.eclipse.core.internal.registry.ExtensionRegistry.log(ExtensionRegistry.java:850)
	at org.eclipse.core.internal.registry.ExtensionRegistry.logError(ExtensionRegistry.java:1090)
	at org.eclipse.core.internal.registry.ExtensionRegistry.addContribution(ExtensionRegistry.java:1072)
	at org.eclipse.pde.internal.core.PDERegistryStrategy.addBundle(PDERegistryStrategy.java:201)
	at org.eclipse.pde.internal.core.PDERegistryStrategy.addBundles(PDERegistryStrategy.java:173)
	at org.eclipse.pde.internal.core.PDERegistryStrategy.access$2(PDERegistryStrategy.java:171)
	at org.eclipse.pde.internal.core.PDERegistryStrategy$ExtensionListener.extensionsChanged(PDERegistryStrategy.java:104)
	at org.eclipse.pde.internal.core.WorkspacePluginModelManager.fireExtensionDeltaEvent(WorkspacePluginModelManager.java:455)
	at org.eclipse.pde.internal.core.WorkspacePluginModelManager.createAndFireEvent(WorkspacePluginModelManager.java:469)
	at org.eclipse.pde.internal.core.WorkspaceModelManager.processModelChanges(WorkspaceModelManager.java:235)
	at org.eclipse.pde.internal.core.WorkspacePluginModelManager.processModelChanges(WorkspacePluginModelManager.java:462)
	at org.eclipse.pde.internal.core.WorkspaceModelManager.resourceChanged(WorkspaceModelManager.java:114)
	at org.eclipse.jdt.internal.core.DeltaProcessingState$1.run(DeltaProcessingState.java:465)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:460)
	at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:291)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
	at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
	at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:397)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1494)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:772)
	at org.eclipse.ui.editors.text.ForwardingDocumentProvider.saveDocument(ForwardingDocumentProvider.java:148)
	at org.eclipse.pde.internal.ui.editor.context.InputContext.doSave(InputContext.java:188)
	at org.eclipse.pde.internal.ui.editor.context.InputContextManager.save(InputContextManager.java:78)
	at org.eclipse.pde.internal.ui.editor.PDEFormEditor.doSave(PDEFormEditor.java:350)
	at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:151)
	at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2613)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264)
	at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:156)
	at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1369)
	at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3334)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3347)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:76)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
...
Comment 1 Thomas Watson CLA 2010-11-19 09:09:30 EST
If I remember correctly this is by design for the default RegistryStrategy.  The default RegistryStrategy does not know what kind of logging system you want to use.  At runtime the EquinoxRegistryStrategy is used, which logs to the eclipse log.  PDE is using its own RegistryStrategy.  If PDE wants things to get logged to someplace other than the console then they will need to override the method org.eclipse.core.runtime.spi.RegistryStrategy.log(IStatus)

Moving to PDE.
Comment 2 Markus Keller CLA 2010-11-19 10:01:15 EST
(In reply to comment #1)
Thanks, I missed the RegistryStrategy APIs that describe this.

Adding the following to org.eclipse.pde.internal.core.PDERegistryStrategy solves the problem (and I still get error markers in the file):

public final void log(IStatus status) {
	// don't log, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=330648
}
Comment 3 Curtis Windatt CLA 2010-11-19 12:01:59 EST
Fixed in HEAD.
Comment 4 Curtis Windatt CLA 2010-12-07 14:03:55 EST
Verified in I20101206-1800