Community
Participate
Working Groups
Given the following java classes and orm.xml: public class Employee { private int id; private Address address; } public class Address { private String street; private int zip; } <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" version="1.0"> <entity class="com.foo.Employee"> <attributes> <id name="id"> </id> </attributes> </entity> <embeddable class="com.foo.Address"> </embeddable> </entity-mappings> Right click the Address.street mapping in the orm.xml structure view and choose 'Add Attribute to Xml' and you get this NPE: java.lang.NullPointerException at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType$3.accept(GenericOrmPersistentType.java:255) at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType$3.accept(GenericOrmPersistentType.java:1) at org.eclipse.jpt.utility.internal.iterators.FilteringIterator.loadNext(FilteringIterator.java:98) at org.eclipse.jpt.utility.internal.iterators.FilteringIterator.<init>(FilteringIterator.java:65) at org.eclipse.jpt.utility.internal.iterators.FilteringIterator.<init>(FilteringIterator.java:54) at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType$3.<init>(GenericOrmPersistentType.java:252) at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType.attributesNamed(GenericOrmPersistentType.java:252) at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType.getAttributeNamed(GenericOrmPersistentType.java:261) at org.eclipse.jpt.core.internal.context.orm.GenericOrmPersistentType.getAttributeNamed(GenericOrmPersistentType.java:1) at org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping.buildVirtualAttributeOverrideResource(AbstractJavaBaseEmbeddedMapping.java:288) at org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping.buildVirtualAttributeOverride(AbstractJavaBaseEmbeddedMapping.java:284) at org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping.updateVirtualAttributeOverrides(AbstractJavaBaseEmbeddedMapping.java:297) at org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping.update(AbstractJavaBaseEmbeddedMapping.java:255) at org.eclipse.jpt.core.internal.context.java.GenericJavaPersistentAttribute.updateDefaultMapping(GenericJavaPersistentAttribute.java:261) at org.eclipse.jpt.core.internal.context.java.GenericJavaPersistentAttribute.update(GenericJavaPersistentAttribute.java:228) at org.eclipse.jpt.core.internal.context.java.GenericJavaPersistentType.updatePersistentAttributes(GenericJavaPersistentType.java:420) at org.eclipse.jpt.core.internal.context.java.GenericJavaPersistentType.update(GenericJavaPersistentType.java:325) at org.eclipse.jpt.core.internal.context.orm.AbstractOrmTypeMapping.updateJavaPersistentType(AbstractOrmTypeMapping.java:261) at org.eclipse.jpt.core.internal.context.orm.AbstractOrmTypeMapping.update(AbstractOrmTypeMapping.java:286) at org.eclipse.jpt.core.internal.context.orm.GenericOrmEntity.update(GenericOrmEntity.java:1275)
Investigate for 2.0.1.
I can no longer reproduce this issue, not really sure what fixed it
Nevermind, I was not following my own steps to reproduce, I still see this issue
Created attachment 107938 [details] proposed patch - HEAD This patch adds null checks for attribute name. In the orm.xml the attribute name can be null since the user could just delete the name element from the mapping. This is different than java.
checked in to HEAD