monitor.beginTask(taskName, steps);\r
\r
try {\r
+ datasource.startTransaction();\r
result &= currentSchemaUpdater.invoke(datasource, monitor);\r
- // the above apparently did not work while testing. Did not want to set the version in CdmMetaData yet\r
-// result &= currentSchemaUpdater.invoke(currentSchemaUpdater.getTargetVersion(), datasource, monitor);\r
+ if (result == true){\r
+ result &= currentTermUpdater.invoke(datasource, monitor);\r
+ }\r
+ if (result == false){\r
+ datasource.rollback();\r
+ }else{\r
+ datasource.commitTransaction();\r
+ }\r
\r
- result &= currentTermUpdater.invoke(datasource, monitor);\r
} catch (Exception e) {\r
result = false;\r
monitor.warning("Stopped schema updater");\r
} finally {\r
String message = "Update finished " + (result ? "successfully" : "with ERRORS");\r
monitor.subTask(message);\r
- monitor.done();\r
+ if (!result){\r
+ monitor.warning(message);\r
+ monitor.setCanceled(true);\r
+ }else{\r
+ monitor.done();\r
+ }\r
logger.info(message);\r
}\r
\r