diff --git a/src/main/java/org/jenkinsci/plugins/workflow/libs/LibraryAdder.java b/src/main/java/org/jenkinsci/plugins/workflow/libs/LibraryAdder.java index a57ba1e6..9511e98f 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/libs/LibraryAdder.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/libs/LibraryAdder.java @@ -244,7 +244,14 @@ static List retrieve(@NonNull LibraryRecord record, @NonNull LibraryRetriev if (retrieve) { listener.getLogger().println("Caching library " + name + "@" + version); versionCacheDir.mkdirs(); - retriever.retrieve(name, version, changelog, versionCacheDir, run, listener); + // try to retrieve the library and delete the versionCacheDir if it fails + try { + retriever.retrieve(name, version, changelog, versionCacheDir, run, listener); + } catch (Exception e) { + listener.getLogger().println("Failed to cache library " + name + "@" + version + ". Error message: " + e.getMessage() + ". Cleaning up cache directory."); + versionCacheDir.deleteRecursive(); + throw e; + } } retrieveLock.readLock().lock(); } finally { @@ -416,4 +423,4 @@ static String className(String groovy, String root) { } -} +} \ No newline at end of file