Ticket #7 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Fehlermeldung: Objekte wurden geaendert und Aenderung verworfen, indem keine Tranceaktion gestartet wurde

Reported by: a.popp@… Owned by: swe
Priority: major Milestone:
Component: DataAccess Version: 0.1.5-dev
Keywords: Transaction, save Cc:

Description (last modified by mcw) (diff)

Ich habe aus Testzwecken ein Object geaendert und die Aenderung wurde verworfen ohne indem keine Trace-Aktion in diesem Workflow gestartet wurde.

    // Beginne Transaktion
    // IKbaDataAccess da = (IKbaDataAccess) UnDataAccessFactory.getInstance();
    // IUnTransaction t = da.beginTransaction();
    // da.save(o);
    // t.commit();

Nachdem ich ein anderes Object aendern und speichern wollte habe ich die folgende Fehlermeldung erhalten:

08:56:47,807 FATAL DefaultExceptionHandler:229 - #TEST message:  
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: de.dvidee.kba.main.objects.AnschreibenStatus
	at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
	at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
	at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:242)
	at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:563)
	at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:3117)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:472)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:197)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:120)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
	at org.ugat.dataAccess.hibernate.HibernateTransaction.commit(HibernateTransaction.java:40)
	at de.dvidee.kba.workflow.anschreiben.AnschrAnschriftAktualisierenWf.save(AnschrAnschriftAktualisierenWf.java:197)
	at de.dvidee.kba.workflow.anschreiben.AnschrAnschriftAktualisierenWf.begin(AnschrAnschriftAktualisierenWf.java:147)
	at org.ugat.wiser.workflow.AUnStatelessWorkflow.display(AUnStatelessWorkflow.java:24)
	at org.ugat.wiser.workflow.UnWorkflowController.loadWorkflow(UnWorkflowController.java:281)
	at org.ugat.wiser.workflow.listener.LoadWorkflowListener.execListener(LoadWorkflowListener.java:184)
	at org.ugat.wiser.listener.AExcepSafeListener.pcmf_execListener(AExcepSafeListener.java:18)
	at de.ug2t.unifiedGui.UnMenuFctWrapper.pcmf_execObj(UnMenuFunction.java:64)
	at de.ug2t.unifiedGui.UnMenuFunction.pcmf_execObj(UnMenuFunction.java:137)
	at de.ug2t.channel.ho.server.generic.HoSrvGenericContextMenu$HoContextMenuListener.pcmf_execListener(HoSrvGenericContextMenu.java:55)
	at de.ug2t.unifiedGui.UnComponent.pcmf_callListener(UnComponent.java:300)
	at de.ug2t.unifiedGui.UnComponent.pcmf_dispatchEvent(UnComponent.java:267)
	at de.ug2t.unifiedGui.UnEventDispatcher.pcmf_execDispatch(UnEventDispatcher.java:178)
	at de.ug2t.unifiedGui.UnEventDispatcher.pcmf_execDispatch(UnEventDispatcher.java:226)
	at de.ug2t.unifiedGui.UnEventDispatcher.pcmf_execDispatch(UnEventDispatcher.java:276)
	at de.ug2t.channel.ho.server.generic.HoSrvGenericApplication.pemf_work(HoSrvGenericApplication.java:660)
	at de.ug2t.channel.ho.server.generic.HoSrvGenericApplication.pcmf_work(HoSrvGenericApplication.java:627)
	at sun.reflect.GeneratedMethodAccessor314.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at de.ug2t.xmlScript.ScXmlCall.pcmf_exec(ScXmlScript.java:647)
	at de.ug2t.xmlScript.ScXmlProcedure.pcmf_exec(ScXmlScript.java:217)
	at de.ug2t.xmlScript.ScXmlScript.pcmf_execProc(ScXmlScript.java:1530)
	at de.ug2t.channel.ho.session.HoXmlRpcDispatcher.pcmf_execObj(HoXmlRpcDispatcher.java:54)
	at de.ug2t.channel.ho.session.HoTcpIpSession.pcmf_answer(HoTcpIpSession.java:472)
	at de.ug2t.channel.ho.session.HoTcpIpSession.run(HoTcpIpSession.java:763)

Bitte klaeren, wie das Verwerfen einer Aenderung durchzufuehren ist.

Change History

Changed 3 years ago by mcw

  • description modified (diff)

Code Blöcke, Exceptions oder Log-Auszüge bitte in einen Code-Block fassen (innerhalb drei geschwungener Klammern). Beispiel:

{{{ 
... code ... 
}}}

Changed 3 years ago by TNBKCZDBNVGS@…

Changed 3 years ago by mcw

  • component changed from ComponentHandler to DataAccess

Changed 3 years ago by mcw

  • version set to 0.1.5-dev

Changed 3 years ago by mcw

  • owner changed from mcw to swe

Changed 3 years ago by mcw

  • status changed from new to closed
  • resolution set to fixed

Hat sich durch die Änderungen am DataAccess? / UnitOfWork? erledigt.

Note: See TracTickets for help on using tickets.