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

Bug 435103

Summary: Profile definition info reported for Bug 415211 is broken
Product: [Modeling] Papyrus Reporter: Toni Siljamäki <toni.siljamaki>
Component: CoreAssignee: Christian Damus <give.a.damus>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P2 CC: cletavernier, klaas.gadeyne, papyrus-bugs
Version: unspecified   
Target Milestone: 1.0.0   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on:    
Bug Blocks: 415211    

Description Toni Siljamäki CLA 2014-05-16 17:21:10 EDT
Since version 1.0.0.v201404241027 of Papyrus the
profile definition properties are blank in the UI.

See the initial Bug 415211.
Comment 1 Christian Damus CLA 2014-05-27 08:02:13 EDT
I shall investigate this.
Comment 2 Christian Damus CLA 2014-05-27 08:30:55 EDT
Selecting a profile and showing the Definitions property-sheet tab results in these log entries:

!ENTRY org.eclipse.papyrus.infra.tools 4 0 2014-05-27 08:29:01.585
!MESSAGE Cannot load class null
!STACK 0
java.lang.NullPointerException
	at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.ja
va:566)
	at org.eclipse.papyrus.infra.tools.util.ClassLoaderHelper.loadClass(ClassLoader
Helper.java:53)
	at org.eclipse.papyrus.infra.tools.util.ClassLoaderHelper.loadClass(ClassLoader
Helper.java:79)
	at org.eclipse.papyrus.infra.tools.util.ClassLoaderHelper.newInstance(ClassLoad
erHelper.java:107)
	at org.eclipse.papyrus.views.properties.modelelement.DataSourceFactory.getFacto
ry(DataSourceFactory.java:147)
	at org.eclipse.papyrus.views.properties.modelelement.DataSourceFactory.createFr
omSource(DataSourceFactory.java:153)
	at org.eclipse.papyrus.views.properties.modelelement.DataSourceFactory.createMo
delElement(DataSourceFactory.java:109)
	at org.eclipse.papyrus.views.properties.modelelement.DataSourceFactory.getModel
ElementFromPropertyPath(DataSourceFactory.java:87)
	at org.eclipse.papyrus.views.properties.modelelement.DataSource.getModelElement
(DataSource.java:86)
	at org.eclipse.papyrus.views.properties.modelelement.DataSource.isEditable(Data
Source.java:261)
	at org.eclipse.papyrus.views.properties.widgets.AbstractPropertyEditor.checkInp
ut(AbstractPropertyEditor.java:165)
	at org.eclipse.papyrus.views.properties.widgets.AbstractPropertyEditor.setPrope
rty(AbstractPropertyEditor.java:259)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.papyrus.xwt.javabean.metadata.properties.BeanProperty.setValue(B
eanProperty.java:89)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.initSegmentAttribute(Resourc
eLoader.java:1546)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.initAttribute(ResourceLoader
.java:1356)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.init(ResourceLoader.java:100
8)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.doCreate(ResourceLoader.java
:618)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.doCreate(ResourceLoader.java
:648)
	at org.eclipse.papyrus.xwt.javabean.ResourceLoader.createUIElement(ResourceLoad
er.java:356)
	at org.eclipse.papyrus.xwt.internal.core.Core.createCLRElement(Core.java:625)
	at org.eclipse.papyrus.xwt.internal.core.Core.load(Core.java:758)
	at org.eclipse.papyrus.xwt.internal.core.Core.load(Core.java:652)
	at org.eclipse.papyrus.xwt.XWTLoader.loadWithOptions(XWTLoader.java:1022)
	at org.eclipse.papyrus.xwt.XWT.loadWithOptions(XWT.java:581)
	at org.eclipse.papyrus.views.properties.runtime.DefaultDisplayEngine.createSect
ion(DefaultDisplayEngine.java:197)
	at org.eclipse.papyrus.views.properties.runtime.DefaultDisplayEngine.createSect
ion(DefaultDisplayEngine.java:151)
	at org.eclipse.papyrus.views.properties.xwt.XWTSection.display(XWTSection.java:
152)
	at org.eclipse.papyrus.views.properties.xwt.XWTSection.refresh(XWTSection.java:
163)
	at org.eclipse.ui.views.properties.tabbed.TabContents$6.run(TabContents.java:21
7)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
	at org.eclipse.ui.views.properties.tabbed.TabContents.refresh(TabContents.java:
220)
	at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage$SelectionChan
gedListener.selectionChanged(TabbedPropertySheetPage.java:222)
	...

!ENTRY org.eclipse.papyrus.views.properties 2 0 2014-05-27 08:29:01.591
!MESSAGE Unable to find a ModelElement for Profile:Profile:definitions. Elements
 : {UML:NamedElement=org.eclipse.papyrus.uml.properties.modelelement.UMLModelEle
ment@75a57bb0}
Comment 3 Christian Damus CLA 2014-05-27 08:45:09 EDT
Fixed in commit 6c8f8b1.

Commit e9a695b5 for bug 423189 removed the model-element factory for profile definitions, resulting in an unresolved proxy that leads to NPEs.  Looks like it was a bad merge.

I have restored the missing factory descriptor in the UML Properties model and added a log message when an unresolved proxy is encountered to better diagnose this problem in the future (rather than present the NPE):

!ENTRY org.eclipse.papyrus.infra.widgets 2 0 2014-05-27 08:40:34.733
!MESSAGE Unresolved reference to the ModelElementFactory: ppe:/environment/org.e
clipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.8

!ENTRY org.eclipse.papyrus.views.properties 2 0 2014-05-27 08:40:34.734
!MESSAGE Unable to find a ModelElement for Profile:Profile:definitions. Elements
 : {}
Comment 4 Toni Siljamäki CLA 2014-05-27 17:35:10 EDT
Yep, this one works again.
Tested version is 1.0.0.v201405271626