Hi

I am trying to capture the a rollback event from the dataContext and I have
tried variation of the code below but nothing seems to work. My event
handlers never get called. I would have used the DataObject jandlers but
they don't support rollBack.

Can anyone see what I am doing wrong? Many thnaks for your help.



public class SomeDataObject() extends MyDataObject {


 public static DataContextTransactionEventListener
dataContextTransactionListener = new DataContextTransactionEventListener() {
       public void dataContextDidCommit(DataContextEvent event) {
         System.out.println("*** xxSomething changed! DID_COMMIT ***");
       }
       public void dataContextDidRollback(DataContextEvent event) {
             System.out.println("*** xxSomething changed! ROLLEDBACK ***");
       }
       public void dataContextWillCommit(DataContextEvent event) {
             System.out.println("*** xxSomething changed! WILL_COMMIT
***");
       }
     };

   public static DataChannelListener dataChannelListener = new
DataChannelListener() {
       public void graphChanged(GraphEvent event)  {
         System.out.println("*** Something changed! DID_COMMIT ***");
       }
       public void graphFlushed(GraphEvent event)  {
             System.out.println("*** Something changed! ROLLEDBACK ***");
       }
       public void graphRolledback(GraphEvent event)  {
             System.out.println("*** Something changed! WILL_COMMIT ***");
       }
     };


   @Override
   public void fetchFinished() {

       super.fetchFinished();
       System.out.println("*** FETCH FINISHED! ***" + this.toString());

// this.getDataContext() is DataContext.getThreadedContext()

       this.getDataContext().setTransactionEventsEnabled(true);

       DataContext.setTransactionEventsEnabledDefault(true);

       EventUtil.listenForChannelEvents(this.getDataContext().getChannel(),
dataChannelListener);

       EventManager.getDefaultManager
().addListener(dataContextTransactionListener,"dataContextDidRollback",
DataContextEvent.class,DataContext.DID_ROLLBACK, null);
   }


....more methods
}


--


-- e

Reply via email to