Creation of a related EJB2 entity fail with error
Issue
- If business code inside the entity is invoked during creation the code fail
- "JBAS014171: Instance for PK [....] already registered" during entity creation after the ejbCreate method was invoked
- After migration from EAP4 or EAP5 to EAP6 the entity could not created and throw and Exception with the error code "JBAS014171"
A code Example
class ParentBMPEntityBean {
public ParentBMPPK ejbCreateWithChildSamePK(String code, long id, String name) throws CreateException {
ParentBMPPK pk = new ParentBMPPK(code, id);
setCode(code);
setId(id);
setName(name);
try {
ChildBMPEntityLocalHome childHome = (ChildBMPEntityLocalHome) new InitialContext().lookup("java:app/EJB2examples-bmp-one2one-ejb/ChildBMPEntity!de.wfink.ejb2.examples.bmp.ChildBMPEntityLocalHome");
childHome.create(this.code, this.id, this.id, "ChildBMP for "+this.name);
} catch (NamingException e) {
new RuntimeException("Could not lookup ChildBMPEntityLocalHome",e);
}
return (pk);
}
public void ejbPostCreateWithChildSamePK(String code, long id, String name) {}
}
class ChildBMPEntityBean {
public ChildBMPEntityPK ejbCreate(String code, Long id, Long parentId, String name) {
...
// check that the parent exists
try {
setParent(parentLocalHome.findById(parentId));
}catch(Exception e) {
throw new RuntimeException("Parent does not exists");
}
}
}
Environment
- Red Hat Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.