Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 359323

Summary: Action label expression causes ClassCastException
Product: z_Archived Reporter: Shenxue Zhou <shenxue.zhou>
Component: SapphireAssignee: Konstantin Komissarchik <konstantin>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Shenxue Zhou CLA 2011-09-28 20:49:07 EDT
When action label expression uses parent() function, it'd throw the following exception during action initialization:

Caused by: java.lang.ClassCastException: org.eclipse.sapphire.ui.SapphireAction$3 cannot be cast to org.eclipse.sapphire.modeling.el.ModelElementFunctionContext
	at org.eclipse.sapphire.modeling.el.ParentElementFunction$1.evaluate(ParentElementFunction.java:56)
	at org.eclipse.sapphire.modeling.el.FunctionResult.refresh(FunctionResult.java:171)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:70)
	at org.eclipse.sapphire.modeling.el.ParentElementFunction$1.<init>(ParentElementFunction.java:46)
	at org.eclipse.sapphire.modeling.el.ParentElementFunction.evaluate(ParentElementFunction.java:46)
	at org.eclipse.sapphire.modeling.el.DeferredFunction$1.init(DeferredFunction.java:60)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:69)
	at org.eclipse.sapphire.modeling.el.DeferredFunction$1.<init>(DeferredFunction.java:49)
	at org.eclipse.sapphire.modeling.el.DeferredFunction.evaluate(DeferredFunction.java:49)
	at org.eclipse.sapphire.modeling.el.FunctionResult.initOperands(FunctionResult.java:91)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:50)
	at org.eclipse.sapphire.modeling.el.PropertyAccessFunction$1.<init>(PropertyAccessFunction.java:74)
	at org.eclipse.sapphire.modeling.el.PropertyAccessFunction.evaluate(PropertyAccessFunction.java:74)
	at org.eclipse.sapphire.modeling.el.ConditionalFunction$1.initOperands(ConditionalFunction.java:87)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:50)
	at org.eclipse.sapphire.modeling.el.ConditionalFunction$1.<init>(ConditionalFunction.java:60)
	at org.eclipse.sapphire.modeling.el.ConditionalFunction.evaluate(ConditionalFunction.java:60)
	at org.eclipse.sapphire.modeling.el.FunctionResult.initOperands(FunctionResult.java:91)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:50)
	at org.eclipse.sapphire.modeling.el.AddFunction$1.<init>(AddFunction.java:65)
	at org.eclipse.sapphire.modeling.el.AddFunction.evaluate(AddFunction.java:65)
	at org.eclipse.sapphire.modeling.el.FunctionResult.initOperands(FunctionResult.java:91)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:50)
	at org.eclipse.sapphire.modeling.el.AddFunction$1.<init>(AddFunction.java:65)
	at org.eclipse.sapphire.modeling.el.AddFunction.evaluate(AddFunction.java:65)
	at org.eclipse.sapphire.modeling.el.FunctionResult.initOperands(FunctionResult.java:91)
	at org.eclipse.sapphire.modeling.el.FunctionResult.<init>(FunctionResult.java:50)
	at org.eclipse.sapphire.modeling.el.FailSafeFunction$1.<init>(FailSafeFunction.java:81)
	at org.eclipse.sapphire.modeling.el.FailSafeFunction.evaluate(FailSafeFunction.java:81)
	at org.eclipse.sapphire.ui.SapphireActionSystemPart.init(SapphireActionSystemPart.java:71)
	at org.eclipse.sapphire.ui.SapphireAction.init(SapphireAction.java:100)
	at org.eclipse.sapphire.ui.SapphireActionGroup.createActions(SapphireActionGroup.java:181)
	at org.eclipse.sapphire.ui.SapphireActionGroup.<init>(SapphireActionGroup.java:53)
Comment 1 Konstantin Komissarchik CLA 2011-09-29 09:56:36 EDT
Enabled access to model element and its properties from Action's EL context.

Fix released to 0.3.1 and 0.4 streams. Please verify.
Comment 2 Shenxue Zhou CLA 2011-09-29 12:23:36 EDT
Verified the fix. Closing.