Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [dali-dev] EMF binding/selection committed

I hit the exact same problem even if I set up the 1-many in a valid case

@Entity
public class Employee {
  private Collection<Address> address;
}

And I tend to disagree with the idea of limiting the user, especially since they can type whatever they want into the code and we have to handle that.

Karen

Markus Kuppe wrote:

Karen Moore wrote:

Hi Markus,
I haven't tried this workaround yet, but wanted to point out another problem I ran across in trying to fix the JUnit tests. I have checked in a few changes, including one to keep persistentObjectAt(int) from ever returning null. I hit a problem if I start eclipse with one entity already defined and opened in the Persistence perspective:

@Entity
public class Employee {
   private int id;
}

Select the id attribute in the source code and change the mapping type to OneToMany through the Persistence Properties. In the error log I get this exception and also more exceptions when i close eclipse:

Caused by: java.lang.NullPointerException
at org.eclipse.dali.ui.selection.internal.dispatcher.SelectionDispatcher.getCurrentSelection(SelectionDispatcher.java:123) at org.eclipse.dali.ui.binding.EMFSWTBinding.<init>(EMFSWTBinding.java:44) at org.eclipse.dali.ui.composites.OrderByComposite.<init>(OrderByComposite.java:52) at org.eclipse.dali.ui.views.MultiRelationshipMappingComposite.buildGeneralTab(MultiRelationshipMappingComposite.java:120) at org.eclipse.dali.ui.views.MultiRelationshipMappingComposite.initializeLayout(MultiRelationshipMappingComposite.java:56) at org.eclipse.dali.ui.views.MultiRelationshipMappingComposite.<init>(MultiRelationshipMappingComposite.java:45) at org.eclipse.dali.ui.views.MultiRelationshipMappingComposite$MultiRelationshipMappingCompositeBuilder.buildMappingComposite(MultiRelationshipMappingComposite.java:238) at org.eclipse.dali.ui.views.MappingComposite.populate(MappingComposite.java:239) at org.eclipse.dali.ui.views.MappingComposite.access$1(MappingComposite.java:214) at org.eclipse.dali.ui.views.MappingComposite$5.run(MappingComposite.java:279)
   at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

Any ideas?

Karen


Hi,

there is clearly a bug in SelectionDispatcher. It shouldn't crash with a npe if the event history doesn't contain a selection for a given eclass. I fixed this in the cvs repo. From now on, as stated in the javadoc already, it returns null is such cases.
But your particular usecase will still fail regardless of my current fix.
I'm not even sure how we want to handle this. An OneToMany annotation is an invalid annotation for an int field. Obviously our EMF meta model doesn't contain a corresponding OrderBy object the binding could be an adapter for. My generalized proposition would be to remove invalid mappings (choices) from any combo (ui component). That way we shouldn't encounter such problems in the first place. :)



Back to the top