[513746] Oomph cache is not cleared when reloading an update site
manually
https://bugs.eclipse.org/bugs/show_bug.cgi?id=513746
diff --git a/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingRepositoryManager.java b/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingRepositoryManager.java
index f5500a7..7892cde 100644
--- a/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingRepositoryManager.java
+++ b/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingRepositoryManager.java
@@ -49,6 +49,7 @@
import org.eclipse.osgi.util.NLS;
import java.io.File;
+import java.io.FileNotFoundException;
import java.lang.reflect.Method;
import java.net.URI;
import java.net.URISyntaxException;
@@ -200,8 +201,11 @@
}
catch (ProvisionException e)
{
- failure = e;
- break;
+ if (!(e.getStatus().getException() instanceof FileNotFoundException))
+ {
+ failure = e;
+ break;
+ }
}
if (result != null)
diff --git a/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingTransport.java b/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingTransport.java
index c6ffbb3..ca74c4d 100644
--- a/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingTransport.java
+++ b/plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/CachingTransport.java
@@ -387,9 +387,24 @@
private long delegateGetLastModified(URI uri, IProgressMonitor monitor) throws CoreException, FileNotFoundException, AuthenticationFailedException
{
- long lastModified = delegate.getLastModified(uri, monitor);
-
File cacheFile = getCacheFile(uri);
+
+ long lastModified;
+
+ try
+ {
+ lastModified = delegate.getLastModified(uri, monitor);
+ }
+ catch (FileNotFoundException ex)
+ {
+ synchronized (getLock(uri))
+ {
+ cacheFile.delete();
+ }
+
+ throw ex;
+ }
+
if (cacheFile.length() == 0)
{
return lastModified - 1;