I could replicate this with a basic entity (an entity with id and description attributes).
Maybe i could share a maven simple proyect. Rick do you need it? El 12/03/2013 21:44, "José Luis Cetina" <[email protected]> escribió: > You can download it from here: http://www.mediafire.com/?x31qa0kokknk7li > > Is a zip file where the enhance class is with datamodel > > > 2013/3/12 Rick Curtis <[email protected]> > >> Sorry, I wasn't clear before. Can you send your enhanced Entity .class >> file(s)? >> >> Thanks, >> Rick >> >> >> On Tue, Mar 12, 2013 at 5:50 PM, José Luis Cetina <[email protected] >> >wrote: >> >> > Do you mean the maven plugin that i use for the enhancement? >> > El 12/03/2013 16:44, "Rick Curtis" <[email protected]> escribió: >> > >> > > Please send your enhanced Entity? >> > > >> > > >> > > On Tue, Mar 12, 2013 at 5:40 PM, José Luis Cetina < >> [email protected] >> > > >wrote: >> > > >> > > > I do the enhancing at compile time. >> > > > El 12/03/2013 16:37, "Rick Curtis" <[email protected]> escribió: >> > > > >> > > > > How are you enhancing your Entities? Are you relying on the >> > container? >> > > > > >> > > > > >> > > > > On Tue, Mar 12, 2013 at 4:48 PM, José Luis Cetina < >> > > [email protected] >> > > > > >wrote: >> > > > > >> > > > > > I tried removing the extend of my AbstractEntity and the >> result is >> > > the >> > > > > > same >> > > > > > >> > > > > > >> > > > > > 2013/3/12 José Luis Cetina <[email protected]> >> > > > > > >> > > > > > > Yes, i tried with 2 entities and the same error, FYI i can >> > persist >> > > > and >> > > > > > > remove without problems. This entity was in "production" >> > > environment >> > > > > and >> > > > > > i >> > > > > > > recreate the "error" in this entity too. >> > > > > > > >> > > > > > > >> > > > > > > import com.grupokx.model.core.AbstractEntity; >> > > > > > > import com.grupokx.model.rhino.enumeradores.AulaEstatusEnum; >> > > > > > > import java.io.Serializable; >> > > > > > > import java.util.List; >> > > > > > > import javax.persistence.*; >> > > > > > > >> > > > > > > >> > > > > > > @Entity >> > > > > > > @Table(name = "aulas",schema="kx_rhino") >> > > > > > > public class Aula extends AbstractEntity implements >> > Serializable { >> > > > > > > >> > > > > > > private static final long serialVersionUID = 1L; >> > > > > > > @Id >> > > > > > > @GeneratedValue(strategy = GenerationType.IDENTITY) >> > > > > > > @Column(name = "aula_id", unique = true, nullable = false) >> > > > > > > private int aulaId; >> > > > > > > @Column(name = "nombre_corto") >> > > > > > > private String nombreCorto; >> > > > > > > private String descripcion; >> > > > > > > private String observaciones; >> > > > > > > @Column(name="estatus") >> > > > > > > @Enumerated(EnumType.STRING) >> > > > > > > private AulaEstatusEnum estatus; >> > > > > > > @OneToMany(mappedBy = "aula") >> > > > > > > private List<ClaseProgramada> clasesProgramadas; >> > > > > > > >> > > > > > > public Aula() { >> > > > > > > } >> > > > > > > >> > > > > > > public int getAulaId() { >> > > > > > > return this.aulaId; >> > > > > > > } >> > > > > > > >> > > > > > > public void setAulaId(int aulaId) { >> > > > > > > this.aulaId = aulaId; >> > > > > > > } >> > > > > > > >> > > > > > > public String getDescripcion() { >> > > > > > > return this.descripcion; >> > > > > > > } >> > > > > > > >> > > > > > > public void setDescripcion(String descripcion) { >> > > > > > > this.descripcion = descripcion; >> > > > > > > } >> > > > > > > >> > > > > > > public String getObservaciones() { >> > > > > > > return observaciones; >> > > > > > > } >> > > > > > > >> > > > > > > public void setObservaciones(String observaciones) { >> > > > > > > this.observaciones = observaciones; >> > > > > > > } >> > > > > > > >> > > > > > > public List<ClaseProgramada> getClasesProgramadas() { >> > > > > > > return clasesProgramadas; >> > > > > > > } >> > > > > > > >> > > > > > > public void setClasesProgramadas(List<ClaseProgramada> >> > > > > > > clasesProgramadas) { >> > > > > > > this.clasesProgramadas = clasesProgramadas; >> > > > > > > } >> > > > > > > >> > > > > > > public AulaEstatusEnum getEstatus() { >> > > > > > > return estatus; >> > > > > > > } >> > > > > > > >> > > > > > > public void setEstatus(AulaEstatusEnum estatus) { >> > > > > > > this.estatus = estatus; >> > > > > > > } >> > > > > > > >> > > > > > > public String getNombreCorto() { >> > > > > > > return nombreCorto; >> > > > > > > } >> > > > > > > >> > > > > > > public void setNombreCorto(String nombreCorto) { >> > > > > > > this.nombreCorto = nombreCorto; >> > > > > > > } >> > > > > > > >> > > > > > > >> > > > > > > @Override >> > > > > > > public String toString() { >> > > > > > > StringBuilder builder = new StringBuilder(); >> > > > > > > builder.append("Aula ["); >> > > > > > > builder.append("aulaId=").append(aulaId); >> > > > > > > builder.append("nombreCorto=").append(nombreCorto); >> > > > > > > >> builder.append(",estatus=").append(estatus.getValue()); >> > > > > > > builder.append(",descripcion=").append(descripcion); >> > > > > > > builder.append("]"); >> > > > > > > return builder.toString(); >> > > > > > > } >> > > > > > > >> > > > > > > @Override >> > > > > > > public boolean equals(Object obj) { >> > > > > > > if(obj instanceof Aula){ >> > > > > > > Aula aux = (Aula) obj; >> > > > > > > if(aux.getAulaId() == aulaId){ >> > > > > > > return true; >> > > > > > > } >> > > > > > > } >> > > > > > > return false; >> > > > > > > } >> > > > > > > >> > > > > > > @Override >> > > > > > > public int hashCode() { >> > > > > > > int hash = 3; >> > > > > > > hash = 83 * hash + this.aulaId; >> > > > > > > return hash; >> > > > > > > } >> > > > > > > >> > > > > > > @Override >> > > > > > > public int getId() { >> > > > > > > return aulaId; >> > > > > > > } >> > > > > > > } >> > > > > > > >> > > > > > > >> > > > > > > 2013/3/12 Rick Curtis <[email protected]> >> > > > > > > >> > > > > > >> Can you post your Entity? >> > > > > > >> >> > > > > > >> >> > > > > > >> On Tue, Mar 12, 2013 at 4:03 PM, José Luis Cetina < >> > > > > [email protected] >> > > > > > >> >wrote: >> > > > > > >> >> > > > > > >> > The same result. The problem still. >> > > > > > >> > >> > > > > > >> > What else can i do? >> > > > > > >> > >> > > > > > >> > >> > > > > > >> > 2013/3/12 Rick Curtis <[email protected]> >> > > > > > >> > >> > > > > > >> > > Iteresting.... what happens if you find the object via >> JPQL >> > vs >> > > > > > >> criteria >> > > > > > >> > > query? >> > > > > > >> > > >> > > > > > >> > > >> > > > > > >> > > On Tue, Mar 12, 2013 at 2:27 PM, José Luis Cetina < >> > > > > > >> [email protected] >> > > > > > >> > > >wrote: >> > > > > > >> > > >> > > > > > >> > > > Something estrange is happen here. Maybe could be a >> bug. >> > > > > > >> > > > >> > > > > > >> > > > Look this. >> > > > > > >> > > > In ejb module the way that actually i retrieve my >> > entities. >> > > > > > >> > > > 1. >> > > > > > >> > > > public List<MyObject> getObjects(){ >> > > > > > >> > > > CriteriaBuilder cb = em.getCriteriaBuilder(); >> > > > > > >> > > > CriteriaQuery<MyObject> cq = >> > > > > > cb.createQuery(MyObject.class); >> > > > > > >> > > > Root<MyObject> root = cq.from(MyObject.class); >> > > > > > >> > > > cq.select(root); >> > > > > > >> > > > return em.createQuery(cq).getResultList(); >> > > > > > >> > > > } >> > > > > > >> > > > >> > > > > > >> > > > Then for test i decided to only retrieve 1 entity and >> not >> > > all >> > > > of >> > > > > > >> them, >> > > > > > >> > > then >> > > > > > >> > > > >> > > > > > >> > > > Option 1. The problem still. >> > > > > > >> > > > >> > > > > > >> > > > public MyObject getObject(){ >> > > > > > >> > > > CriteriaBuilder cb = em.getCriteriaBuilder(); >> > > > > > >> > > > CriteriaQuery<MyObject> cq = >> > > > > > cb.createQuery(MyObject.class); >> > > > > > >> > > > Root<MyObject> root = cq.from(MyObject.class); >> > > > > > >> > > > cq.select(root); >> > > > > > >> > > > cq.where(cb.equal(root.get(MyObject.id), 1)); >> > > > > > >> > > > return em.createQuery(cq).getSingleResult(); >> > > > > > >> > > > } >> > > > > > >> > > > >> > > > > > >> > > > >> > > > > > >> > > > Option 2. The problem disappear >> > > > > > >> > > > public MyObject getObject(){ >> > > > > > >> > > > return em.find(MyObject.class, 1); >> > > > > > >> > > > } >> > > > > > >> > > > >> > > > > > >> > > > Why????? >> > > > > > >> > > > >> > > > > > >> > > > What happen when i use the criterias why this works if >> i >> > use >> > > > > > >> em.find??? >> > > > > > >> > > > >> > > > > > >> > > > >> > > > > > >> > > > 2013/3/12 José Luis Cetina <[email protected]> >> > > > > > >> > > > >> > > > > > >> > > > > Here it is, with this example i use >> > > kx_examenes_diagnostico >> > > > > > >> > persistence >> > > > > > >> > > > > unit >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > <?xml version="1.0" encoding="UTF-8"?> >> > > > > > >> > > > > <persistence version="2.0" xmlns=" >> > > > > > >> > > http://java.sun.com/xml/ns/persistence >> > > > > > >> > > > " >> > > > > > >> > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance >> " >> > > > > > >> > > > xsi:schemaLocation=" >> > > > > > >> > > > > http://java.sun.com/xml/ns/persistence >> > > > > > >> > > > > >> > > http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd >> > > > "> >> > > > > > >> > > > > <persistence-unit name="kx_core" >> > > transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> > > <jta-data-source>KXCoreDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="mysql(batchLimit=-1)"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > <persistence-unit name="kx_ispconfig" >> > > > > > transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> > > > <jta-data-source>ISPConfigDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="mysql(batchLimit=-1)"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > <persistence-unit name="kx_mailing" >> > > > > transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> > > <jta-data-source>MailingDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="mysql(batchLimit=-1)"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > <persistence-unit name="kx_facturacion" >> > > > > > >> transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> > > > > <jta-data-source>FacturacionDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="mysql(batchLimit=-1)"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > <persistence-unit name="kx_examenes_diagnostico" >> > > > > > >> > > > > transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> > > > > > >> > > >> > > <jta-data-source>ExamenesDiagnosticoDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="batchLimit=15, JoinSyntax=traditional"/> >> > > > > > >> > > > > <property name="openjpa.Log" >> > value="SQL=TRACE, >> > > > > > >> > > Query=INFO"/> >> > > > > > >> > > > > <property >> > > > > name="openjpa.ConnectionFactoryProperties" >> > > > > > >> > > > > value="PrettyPrint=true, PrettyPrintLineLength=80, >> > > > > > >> > > > PrintParameters=true"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > <persistence-unit name="kx_rhino" >> > > > transaction-type="JTA"> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> > > > > > >> > > > > >> <jta-data-source>MyDataSource</jta-data-source> >> > > > > > >> > > > > >> > <jar-file>../lib/kx-apps-model-1.0.jar</jar-file> >> > > > > > >> > > > > >> > > > > > <exclude-unlisted-classes>false</exclude-unlisted-classes> >> > > > > > >> > > > > <properties> >> > > > > > >> > > > > <property >> name="openjpa.jdbc.DBDictionary" >> > > > > > >> > > > > value="batchLimit=15, JoinSyntax=traditional"/> >> > > > > > >> > > > > <property name="openjpa.Log" >> > value="SQL=TRACE, >> > > > > > >> > > Query=INFO"/> >> > > > > > >> > > > > <property >> > > > > name="openjpa.ConnectionFactoryProperties" >> > > > > > >> > > > > value="PrettyPrint=true, PrettyPrintLineLength=80, >> > > > > > >> > > > PrintParameters=true"/> >> > > > > > >> > > > > </properties> >> > > > > > >> > > > > </persistence-unit> >> > > > > > >> > > > > >> > > > > > >> > > > > </persistence> >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > 2013/3/12 Kevin Sutter <[email protected]> >> > > > > > >> > > > > >> > > > > > >> > > > >> Hi Jose, >> > > > > > >> > > > >> Your scenario looks like the classic use of detached >> > > > entities >> > > > > > and >> > > > > > >> > > > merging >> > > > > > >> > > > >> them back into a persistence context. This pattern >> is >> > > used >> > > > > > over >> > > > > > >> and >> > > > > > >> > > > over >> > > > > > >> > > > >> again by many customers. Nothing is jumping out at >> me >> > as >> > > > to >> > > > > > what >> > > > > > >> > the >> > > > > > >> > > > >> issue >> > > > > > >> > > > >> could be. There must be something unique to your >> > > scenario >> > > > or >> > > > > > >> > > > environment >> > > > > > >> > > > >> that is causing an issue. >> > > > > > >> > > > >> >> > > > > > >> > > > >> What about your persistence.xml? Can you post that? >> > Any >> > > > > > chance >> > > > > > >> you >> > > > > > >> > > are >> > > > > > >> > > > >> using some openjpa property that might be affecting >> > this >> > > > > > >> processing? >> > > > > > >> > > > >> >> > > > > > >> > > > >> Kevin >> > > > > > >> > > > >> >> > > > > > >> > > > >> On Tue, Mar 12, 2013 at 1:28 PM, José Luis Cetina < >> > > > > > >> > > [email protected] >> > > > > > >> > > > >> >wrote: >> > > > > > >> > > > >> >> > > > > > >> > > > >> > This is the scenario: >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > This is a webapplication, using JSF+EJB >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 1. The webpage (jsf) call a method to an EJB, for >> > get a >> > > > > List >> > > > > > of >> > > > > > >> > > > existent >> > > > > > >> > > > >> > entities from database. >> > > > > > >> > > > >> > 2. In EJB i get a list (List<MyObject>) of >> entities >> > let >> > > > say >> > > > > > >> > > > >> > (MyObject.class), i get them using a query. >> > > > > > >> > > > >> > 3. The ejb return a list of entities (2 entities >> for >> > > > > example) >> > > > > > >> of >> > > > > > >> > > > course >> > > > > > >> > > > >> at >> > > > > > >> > > > >> > this point the entities are "sended" by the ejb to >> > the >> > > > > > >> managedbean >> > > > > > >> > > > (then >> > > > > > >> > > > >> > the entities are out of the persistence context >> > > > therefore >> > > > > > the >> > > > > > >> are >> > > > > > >> > > > >> > dettached) >> > > > > > >> > > > >> > 4. Then in the managedbean in X method i do the >> > follow: >> > > > > > >> > > > >> > - Get 1 of the dettached entities of the >> list. >> > > > > > (MyObject) >> > > > > > >> > > > >> > - Change some attribute let say the >> > "DESCRIPTION" >> > > > > > >> attribute >> > > > > > >> > > > >> > - The managedbean now CALL and EJB method >> for do >> > > an >> > > > > > >> update of >> > > > > > >> > > > this >> > > > > > >> > > > >> > entity. >> > > > > > >> > > > >> > 5. The EJB method receive 1 MyObject ( public void >> > > > > > >> update(MyObject >> > > > > > >> > > > obj) >> > > > > > >> > > > >> ) >> > > > > > >> > > > >> > 6. Then the EJB method need to call an update >> because >> > > the >> > > > > > >> > > > "DESCRIPTION" >> > > > > > >> > > > >> > property has changed >> > > > > > >> > > > >> > 7. The method is like this: >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > public void update(MyObject obj){ >> > > > > > >> > > > >> > begin transaction... >> > > > > > >> > > > >> > em.merge(obj); >> > > > > > >> > > > >> > commit transaction... >> > > > > > >> > > > >> > } >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 8. I get this error: >> > > > > > >> > > > >> > <openjpa-2.2.0-r422266:1244990 nonfatal user >> error> >> > > > > > >> > > > org.apache.openjpa. >> > > > > > >> > > > >> > persistence.InvalidStateException: Primary key >> field >> > > > > > >> > > > >> com.test.MyObject.idof >> > > > > > >> > > > >> > com.test.MyObject@198e0705 has non-default value. >> > The >> > > > > > instance >> > > > > > >> > life >> > > > > > >> > > > >> cycle >> > > > > > >> > > > >> > is in PNewState state and hence an existing >> > non-default >> > > > > value >> > > > > > >> for >> > > > > > >> > > the >> > > > > > >> > > > >> > identity field is not permitted. You either need >> to >> > > > remove >> > > > > > the >> > > > > > >> > > > >> > @GeneratedValue annotation or modify the code to >> > remove >> > > > the >> > > > > > >> > > > initializer >> > > > > > >> > > > >> > processing. >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > Notes: >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 1. Of course the id of the entity has a value >> because >> > > > this >> > > > > > was >> > > > > > >> an >> > > > > > >> > > > entity >> > > > > > >> > > > >> > that the EJB gave me (doing a query to database) >> and >> > > then >> > > > > the >> > > > > > >> only >> > > > > > >> > > > >> change >> > > > > > >> > > > >> > is the "DESCRIPTION" attribute, that's why i >> expect >> > > merge >> > > > > > >> method >> > > > > > >> > to >> > > > > > >> > > do >> > > > > > >> > > > >> an >> > > > > > >> > > > >> > update because the ID HAS THE VALUE RETRIEVED FROM >> > > > > DATABASE. >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 2. About i've commented before " > FYI, if i >> create >> > an >> > > > > > object >> > > > > > >> > (new >> > > > > > >> > > > >> > operator) with an existent id (in database),change >> > some >> > > > > field >> > > > > > >> and >> > > > > > >> > > then >> > > > > > >> > > > >> call >> > > > > > >> > > > >> > my ejb for merge operation, this works great.." >> > > > > > >> > > > >> > This is a test that i did, i create a new object >> in >> > my >> > > > > > >> > managedbean >> > > > > > >> > > > then >> > > > > > >> > > > >> > and set the ID to any ID that exists in database >> > then i >> > > > > set a >> > > > > > >> > > > >> "description" >> > > > > > >> > > > >> > then call ejb and do a merge and this did an >> update. >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > Example: >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > MyMangedBean, >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > public void someMethod(){ >> > > > > > >> > > > >> > MyObject obj = MyObject(); >> > > > > > >> > > > >> > obj.setId(1);//this id exist in the database >> > > > > > >> > > > >> > obj.setDescription("NEW DESCRIPTION"); >> > > > > > >> > > > >> > ejb.update(obj); >> > > > > > >> > > > >> > } >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 3.The changes in the Object was made in the >> > > ManagedBean, >> > > > > > thats >> > > > > > >> why >> > > > > > >> > > the >> > > > > > >> > > > >> > managedbean pass the same object (that it >> retrieved) >> > > but >> > > > > with >> > > > > > >> some >> > > > > > >> > > > >> > "attributes changes" (like DESCRIPTION) and the >> the >> > EJB >> > > > > only >> > > > > > >> need >> > > > > > >> > to >> > > > > > >> > > > >> merge >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > Thanks. >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > 2013/3/12 Kevin Sutter <[email protected]> >> > > > > > >> > > > >> > >> > > > > > >> > > > >> > > Hi Jose, >> > > > > > >> > > > >> > > I need to back up to your specific scenario... >> Why >> > > are >> > > > > you >> > > > > > >> > > calling >> > > > > > >> > > > >> > > merge()? To force an update? The merge() >> method >> > is >> > > > not >> > > > > > >> used to >> > > > > > >> > > > >> force an >> > > > > > >> > > > >> > > update. The merge() method is used to merge an >> > > entity >> > > > > into >> > > > > > >> your >> > > > > > >> > > > >> > > persistence context. If the merged entity is a >> > > > detached >> > > > > > >> entity, >> > > > > > >> > > it >> > > > > > >> > > > >> will >> > > > > > >> > > > >> > > now be managed by the persistence context so >> that >> > any >> > > > > > changes >> > > > > > >> > will >> > > > > > >> > > > >> > > eventually get pushed out to the database. If >> the >> > > > merged >> > > > > > >> entity >> > > > > > >> > > is >> > > > > > >> > > > a >> > > > > > >> > > > >> new >> > > > > > >> > > > >> > > entity, then this entity will eventually get >> > inserted >> > > > > into >> > > > > > >> the >> > > > > > >> > > > >> database >> > > > > > >> > > > >> > > (acts like a persist). Since you are using >> > > > > > @GeneratedValues, >> > > > > > >> > then >> > > > > > >> > > > in >> > > > > > >> > > > >> > this >> > > > > > >> > > > >> > > latter case, the new entity would not have an ID >> > > value >> > > > > > >> filled in >> > > > > > >> > > > yet. >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > If your entity is already managed and part of >> the >> > > > current >> > > > > > >> > > > persistence >> > > > > > >> > > > >> > > context, then there is no need to call merge(). >> > Any >> > > > > > updates >> > > > > > >> to >> > > > > > >> > > that >> > > > > > >> > > > >> > entity >> > > > > > >> > > > >> > > will automatically be determined and committed >> to >> > the >> > > > > > >> database >> > > > > > >> > > when >> > > > > > >> > > > >> the >> > > > > > >> > > > >> > > transaction completes. >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > And, in one of your replies, you mention this >> > > process: >> > > > > > >> > > > >> > > > FYI, if i create an object (new operator) >> with >> > an >> > > > > > >> existent id >> > > > > > >> > > (in >> > > > > > >> > > > >> > > database),change some field and then call my ejb >> > for >> > > > > merge >> > > > > > >> > > > operation, >> > > > > > >> > > > >> > this >> > > > > > >> > > > >> > > works great. >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > So, I'm confused on your scenario and what the >> > > expected >> > > > > > >> result >> > > > > > >> > > > should >> > > > > > >> > > > >> > be... >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > Kevin >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > On Mon, Mar 11, 2013 at 4:33 PM, José Luis >> Cetina < >> > > > > > >> > > > >> [email protected] >> > > > > > >> > > > >> > > >wrote: >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > > > Anyone? >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > > 2013/3/11 José Luis Cetina < >> [email protected] >> > > >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > > > I tried now with 2.2.1 and the same result. >> > With >> > > > this >> > > > > > is >> > > > > > >> > > > >> impossible >> > > > > > >> > > > >> > to >> > > > > > >> > > > >> > > > > edit any entity. >> > > > > > >> > > > >> > > > > >> > > > > > >> > > > >> > > > > Some advice? >> > > > > > >> > > > >> > > > > >> > > > > > >> > > > >> > > > > >> > > > > > >> > > > >> > > > > 2013/3/11 José Luis Cetina < >> > [email protected] >> > > > >> > > > > > >> > > > >> > > > > >> > > > > > >> > > > >> > > > >> I added and get the same exception: >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> <openjpa-2.2.0-r422266:1244990 nonfatal >> user >> > > > error> >> > > > > > >> > > > >> > > > >> >> > > > > org.apache.openjpa.persistence.InvalidStateException: >> > > > > > >> > Primary >> > > > > > >> > > > key >> > > > > > >> > > > >> > > field >> > > > > > >> > > > >> > > > >> com.grupokx.model.core.MyClass.idTest of >> > > > > > >> > > > >> > > > >> com.grupokx.model.core.MyClass@28e0f7f6has >> > > > > > non-default >> > > > > > >> > > value. >> > > > > > >> > > > >> The >> > > > > > >> > > > >> > > > >> instance life cycle is in PNewState state >> and >> > > > hence >> > > > > an >> > > > > > >> > > existing >> > > > > > >> > > > >> > > > non-default >> > > > > > >> > > > >> > > > >> value for the identity field is not >> permitted. >> > > You >> > > > > > >> either >> > > > > > >> > > need >> > > > > > >> > > > to >> > > > > > >> > > > >> > > remove >> > > > > > >> > > > >> > > > >> the @GeneratedValue annotation or modify >> the >> > > code >> > > > to >> > > > > > >> remove >> > > > > > >> > > the >> > > > > > >> > > > >> > > > initializer >> > > > > > >> > > > >> > > > >> processing. >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > >> > > > > > >> > > >> > > > > > >> > > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:489) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> >> > > > > > >> > >> > > > > >> > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:469) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:740) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:135) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:612) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2977) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > >> > > > > > >> >> > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1054) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> >> > > > > > org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2112) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > >> > > > > > >> > > >> > > > > >> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2072) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1990) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:527) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:512) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:413) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.CoreUserTransaction.commit(CoreUserTransaction.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.transaction.EjbUserTransaction.commit(EjbUserTransaction.java:37) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.BaseContext$UserTransactionWrapper.commit(BaseContext.java:247) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> com.grupokx.businesslayer.ejbs.examenesdiagnostico.ExamenesAplicadosFacade.editarBDTest(ExamenesAplicadosFacade.java:277) >> > > > > > >> > > > >> > > > >> at >> > > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> > > > > > >> > > Method) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > java.lang.reflect.Method.invoke(Method.java:601) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> >> > > > > > >> > >> > > > > >> org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> >> > > > > > >> > > >> > > > > > >> >> > > > > >> > > >> org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > >> > > > > > >> > > >> > > > > >> org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73) >> > > > > > >> > > > >> > > > >> at >> > > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> > > > > > >> > > Method) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > java.lang.reflect.Method.invoke(Method.java:601) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99) >> > > > > > >> > > > >> > > > >> at >> > > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> > > > > > >> > > Method) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > java.lang.reflect.Method.invoke(Method.java:601) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:185) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279) >> > > > > > >> > > > >> > > > >> at $Proxy220.editarBDTest(Unknown Source) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> com.grupokx.examenesdiagnostico.controller.examenes.ExamenesIndexMBean.onCellEdit(ExamenesIndexMBean.java:148) >> > > > > > >> > > > >> > > > >> at >> > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> > > > > > >> > > Method) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > java.lang.reflect.Method.invoke(Method.java:601) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:322) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:117) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> com.grupokx.examenesdiagnostico.controller.examenes.ExamenesIndexMBean_$$_javassist_52.onCellEdit(ExamenesIndexMBean_$$_javassist_52.java) >> > > > > > >> > > > >> > > > >> at >> > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> > > > > > >> > > Method) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > > > > > >> > > > >> > > > >> at >> > > > java.lang.reflect.Method.invoke(Method.java:601) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> org.apache.el.parser.AstValue.invoke(AstValue.java:278) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> >> > > > > > >> > > >> > > > > > >> >> > > > > >> > > >> org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:56) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:47) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > >> > >> org.primefaces.event.CellEditEvent.processListener(CellEditEvent.java:55) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:74) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > >> > >> javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:407) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> javax.faces.component.UIData.broadcast(UIData.java:1610) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > javax.faces.component.UIData.broadcast(UIData.java:1596) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > >> > > > > > >> > > >> > > > > >> javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1028) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> >> > > > > > >> > >> > > > > >> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:286) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> >> > > > > javax.faces.component.UIViewRoot._process(UIViewRoot.java:1375) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> >> > > > > > >> > > >> > > > > > >> >> > > > > >> > > >> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > >> > > > >> >> > > > > > >> > > > >> > > > >> > > > > > >> > > > >> > > >> > > > > > >> > > > >> > >> > > > > > >> > > > >> >> > > > > > >> > > > >> > > > > > >> > > >> > > > > > >> > >> > > > > > >> >> > > > > > >> > > > > >> > > > >> > > >> > >> org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38) >> > > > > > >> > > > >> > > > >> at >> > > > > > >> > > > > ...
