Bug 232881 - npe adding mapping to xml Embeddable
Summary: npe adding mapping to xml Embeddable
Status: RESOLVED FIXED
Alias: None
Product: Dali JPA Tools
Classification: WebTools
Component: General (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 2.0.1   Edit
Assignee: Karen Butzke CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-19 20:33 EDT by Karen Butzke CLA
Modified: 2008-07-21 10:29 EDT (History)
1 user (show)

See Also:
neil.hauge: review+


Attachments
proposed patch - HEAD (1.11 KB, patch)
2008-07-21 09:34 EDT, Karen Butzke CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Karen Butzke CLA 2008-05-19 20:33:21 EDT
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)
Comment 1 Neil Hauge CLA 2008-06-09 17:34:19 EDT
Investigate for 2.0.1.
Comment 2 Karen Butzke CLA 2008-07-21 08:40:38 EDT
I can no longer reproduce this issue, not really sure what fixed it
Comment 3 Karen Butzke CLA 2008-07-21 08:44:14 EDT
Nevermind, I was not following my own steps to reproduce, I still see this issue
Comment 4 Karen Butzke CLA 2008-07-21 09:34:01 EDT
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.
Comment 5 Karen Butzke CLA 2008-07-21 10:29:53 EDT
checked in to HEAD