Community
Participate
Working Groups
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) ...
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.
(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 }
Fixed in HEAD.
Verified in I20101206-1800