Bug 52827

Summary: Assertion failed in ChainedPreferenceStore.handlePropertyChangeEvent(..)
Product: [Eclipse Project] Platform Reporter: Markus Keller <markus.kell.r>
Component: TextAssignee: Christof Marti <christof_marti>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P1    
Version: 3.0   
Target Milestone: 3.0 M8   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Markus Keller CLA 2004-02-23 10:43:02 EST
In my runtime workbench with export I20040219.from20040220_0948

Steps:
- Java Browsing perspective
- project org.junit (from CVS)
- in Projects view, select junit.jar
- in Packages view, switch from Flat to Hierarchical Layout

-> Dialog "Error notifying a Preference change listener.". Log:
org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed:
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.Throwable.<init>(Throwable.java)
at org.eclipse.jface.util.Assert$AssertionFailedException.<init>(Assert.java:54)
at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
at org.eclipse.jface.util.Assert.isTrue(Assert.java)
at
org.eclipse.ui.texteditor.ChainedPreferenceStore.handlePropertyChangeEvent(ChainedPreferenceStore.java:427)
at
org.eclipse.ui.texteditor.ChainedPreferenceStore.access$0(ChainedPreferenceStore.java:418)
at
org.eclipse.ui.texteditor.ChainedPreferenceStore$PropertyChangeListener.propertyChange(ChainedPreferenceStore.java:69)
at org.eclipse.ui.plugin.AbstractUIPlugin$2.run(AbstractUIPlugin.java:263)
at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java)
at org.eclipse.core.runtime.Platform.run(Platform.java)
at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.firePropertyChangeEvent(AbstractUIPlugin.java:260)
at
org.eclipse.ui.plugin.AbstractUIPlugin$1.propertyChange(AbstractUIPlugin.java:202)
at
org.eclipse.core.runtime.Preferences.firePropertyChangeEvent(Preferences.java:595)
at org.eclipse.core.runtime.Preferences.setValue(Preferences.java:975)
at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.setValue(AbstractUIPlugin.java:456)
at
org.eclipse.jdt.internal.ui.browsing.PackagesView.switchViewer(PackagesView.java:499)
at org.eclipse.jdt.internal.ui.browsing.PackagesView.access$0(PackagesView.java:492)
at
org.eclipse.jdt.internal.ui.browsing.PackagesView$LayoutAction.run(PackagesView.java:488)
at
org.eclipse.jdt.internal.ui.actions.MultiActionGroup$2.widgetSelected(MultiActionGroup.java:88)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1543)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1519)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:258)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:47)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:257)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
at java.lang.reflect.Method.invoke(Method.java:386)
at org.eclipse.core.launcher.Main.basicRun(Main.java:279)
at org.eclipse.core.launcher.Main.run(Main.java:742)
at org.eclipse.core.launcher.Main.main(Main.java:581)
Comment 1 Christof Marti CLA 2004-02-24 03:51:39 EST
Reproducible when switching from Hierarchical to Flat Layout.

The JavaPlugin preference store returns false on
contains("org.eclipse.jdt.ui.PackagesView.viewState") when Flat Layout is
active. That is because no default value for this property is set. The
ChainedPreferenceStore currently relies on the accuracy of contains(...) in
order to determine the visible store.

Will investigate for a general solution.
Comment 2 Dani Megert CLA 2004-02-24 04:44:53 EST
released Christof's patch for I20040224