diff --git a/hurricane/src/hurricane/UpdateSession.cpp b/hurricane/src/hurricane/UpdateSession.cpp index ee0a6bdd..27192993 100644 --- a/hurricane/src/hurricane/UpdateSession.cpp +++ b/hurricane/src/hurricane/UpdateSession.cpp @@ -209,6 +209,16 @@ void UpdateSession::close() cdebug_log(18,0) << "UpdateSession::close() - Materialization completed." << endl; } +void UpdateSession::reset() +// ************************ +{ + cdebug_log(18,1) << "UpdateSession::reset()" << endl; + + while ( UPDATOR_STACK and not UPDATOR_STACK->empty() ) close(); + + cdebug_tabw(18,-1); +} + } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/UpdateSession.h b/hurricane/src/hurricane/hurricane/UpdateSession.h index d5f159c6..22beb5e4 100644 --- a/hurricane/src/hurricane/hurricane/UpdateSession.h +++ b/hurricane/src/hurricane/hurricane/UpdateSession.h @@ -74,6 +74,7 @@ class UpdateSession : public SharedProperty { public: static void open(); public: static void close(); + public: static void reset(); }; diff --git a/hurricane/src/viewer/ExceptionWidget.cpp b/hurricane/src/viewer/ExceptionWidget.cpp index 3e2599b8..f2693aa4 100644 --- a/hurricane/src/viewer/ExceptionWidget.cpp +++ b/hurricane/src/viewer/ExceptionWidget.cpp @@ -32,6 +32,7 @@ #include "hurricane/Error.h" #include "hurricane/Exception.h" #include "hurricane/TextTranslator.h" +#include "hurricane/UpdateSession.h" #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/ExceptionWidget.h" @@ -97,6 +98,8 @@ namespace Hurricane { ExceptionWidget::run( message ); } + if (failure) UpdateSession::reset(); + return failure; }