Fixed bug: the execution is no more skipped after a failed build
authorKai Moritz <kai@juplo.de>
Sun, 20 Dec 2015 12:32:48 +0000 (13:32 +0100)
committerKai Moritz <kai@juplo.de>
Mon, 7 Mar 2016 13:20:05 +0000 (14:20 +0100)
After a failed build, further executions of the plugin were skipped, because
the MD5-summs suggested, that nothing is to do because nothing has changed.
Because of that, the MD5-summs are now removed in case of a failure.

src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java
src/main/java/de/juplo/plugins/hibernate/ModificationTracker.java

index 2295968..1eb54e5 100644 (file)
@@ -641,6 +641,21 @@ public abstract class AbstractSchemaMojo extends AbstractMojo
         thread.setContextClassLoader(contextClassLoader);
       }
     }
+    catch (MojoExecutionException e)
+    {
+      tracker.failed();
+      throw e;
+    }
+    catch (MojoFailureException e)
+    {
+      tracker.failed();
+      throw e;
+    }
+    catch (RuntimeException e)
+    {
+      tracker.failed();
+      throw e;
+    }
     finally
     {
       /** Remember mappings and configuration */
index 0282069..d9ce624 100644 (file)
@@ -33,6 +33,7 @@ public class ModificationTracker
   private final Set<String> classNames;
 
   private boolean modified = false;
+  private boolean failed = false;
 
   private final File saved;
   private final MessageDigest digest;
@@ -133,6 +134,12 @@ public class ModificationTracker
   }
 
 
+  void failed()
+  {
+    failed = true;
+  }
+
+
   void load()
   {
     if (saved.isFile() && saved.length() > 0)
@@ -169,6 +176,12 @@ public class ModificationTracker
 
   void save()
   {
+    if (failed)
+    {
+      saved.delete();
+      return;
+    }
+
     if (!modified)
       return;