*** empty log message ***
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
index 90a5043..0172321 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
@@ -11,6 +11,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.update.configuration.IConfiguredSite;
import org.eclipse.update.core.model.*;
+import org.eclipse.update.internal.URLKey;
import org.eclipse.update.internal.core.*;
/**
@@ -62,7 +63,7 @@
private ISiteContentProvider siteContentProvider;
- Map featureCache = new HashMap();
+ private Map featureCache = new HashMap(); // key=URLKey value=IFeature
/**
* Constructor for Site
@@ -442,7 +443,8 @@
public IFeature createFeature(String type, URL url) throws CoreException {
// First check the cache
- IFeature feature = (IFeature) featureCache.get(url);
+ URLKey key = new URLKey(url);
+ IFeature feature = (IFeature) featureCache.get(key);
if (feature != null) return feature;
// Create a new one
@@ -455,7 +457,7 @@
feature = factory.createFeature(url, this);
if (feature != null) {
// Add the feature to the cache
- featureCache.put(url, feature);
+ featureCache.put(key, feature);
}
return feature;
}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/URLKey.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/URLKey.java
new file mode 100644
index 0000000..8e3c1d6
--- /dev/null
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/URLKey.java
@@ -0,0 +1,45 @@
+package org.eclipse.update.internal;
+/*
+ * (c) Copyright IBM Corp. 2000, 2002.
+ * All Rights Reserved.
+ */
+
+import java.net.URL;
+
+import org.eclipse.update.internal.core.UpdateManagerUtils;
+
+
+/**
+ *
+ *
+ */
+public class URLKey {
+
+ private URL url;
+
+ /**
+ * Constructor for URLKey.
+ */
+ public URLKey(URL url) {
+ super();
+ this.url = url;
+ }
+
+ /**
+ * @see java.lang.Object#equals(Object)
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof URL)
+ return UpdateManagerUtils.sameURL(url,(URL)obj);
+ else
+ return false;
+ }
+
+ /**
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ return url.hashCode();
+ }
+
+}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
index 975a525..a6cfe60 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
@@ -420,6 +420,7 @@
newConfiguration = new InstallConfiguration(configuration, newFile, name);
// set the same date in the installConfig
newConfiguration.setCreationDate(currentDate);
+ newConfiguration.setTimeline(configuration.getTimeline());
} catch (MalformedURLException e) {
throw Utilities.newCoreException(Policy.bind("SiteLocal.UnableToCreateURLFor") + newFileName, e);
//$NON-NLS-1$