You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/10/17 17:05:26 UTC
svn commit: r464939 - in
/incubator/felix/trunk/framework/src/main/java/org/apache/felix:
framework/cache/DirectoryRevision.java framework/cache/JarRevision.java
moduleloader/JarContent.java
Author: rickhall
Date: Tue Oct 17 08:05:23 2006
New Revision: 464939
URL: http://svn.apache.org/viewvc?view=rev&rev=464939
Log:
Improved how Felix ignores non-existent bundle class path entries; now it
tests for existence and removes them if they are invalid.
Modified:
incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java
incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java
incubator/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/JarContent.java
Modified: incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java?view=diff&rev=464939&r1=464938&r2=464939
==============================================================================
--- incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java (original)
+++ incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java Tue Oct 17 08:05:23 2006
@@ -20,7 +20,7 @@
import java.io.*;
import java.security.cert.X509Certificate;
-import java.util.Map;
+import java.util.*;
import java.util.jar.*;
import org.apache.felix.framework.Logger;
@@ -132,12 +132,12 @@
// Create the bundles class path.
IContent self = new DirectoryContent(m_refDir);
- IContent[] contentPath = new IContent[classPathStrings.length];
+ List contentList = new ArrayList();
for (int i = 0; i < classPathStrings.length; i++)
{
if (classPathStrings[i].equals(FelixConstants.CLASS_PATH_DOT))
{
- contentPath[i] = self;
+ contentList.add(self);
}
else
{
@@ -145,23 +145,27 @@
File file = new File(m_refDir, classPathStrings[i]);
if (BundleCache.getSecureAction().isFileDirectory(file))
{
- contentPath[i] = new DirectoryContent(file);
+ contentList.add(new DirectoryContent(file));
}
else
{
- contentPath[i] = new JarContent(file);
+ // Ignore any entries that do not exist per the spec.
+ if (BundleCache.getSecureAction().fileExists(file))
+ {
+ contentList.add(new JarContent(file));
+ }
}
}
}
// If there is nothing on the class path, then include
// "." by default, as per the spec.
- if (contentPath.length == 0)
+ if (contentList.size() == 0)
{
- contentPath = new IContent[] { self };
+ contentList.add(new IContent[] { self });
}
- return contentPath;
+ return (IContent[]) contentList.toArray(new IContent[contentList.size()]);
}
// TODO: This will need to consider security.
Modified: incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java?view=diff&rev=464939&r1=464938&r2=464939
==============================================================================
--- incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java (original)
+++ incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java Tue Oct 17 08:05:23 2006
@@ -148,12 +148,12 @@
{
bundleJar = BundleCache.getSecureAction().openJAR(m_bundleFile);
IContent self = new JarContent(m_bundleFile);
- IContent[] contentPath = new IContent[classPathStrings.length];
+ List contentList = new ArrayList();
for (int i = 0; i < classPathStrings.length; i++)
{
if (classPathStrings[i].equals(FelixConstants.CLASS_PATH_DOT))
{
- contentPath[i] = self;
+ contentList.add(self);
}
else
{
@@ -162,23 +162,28 @@
ZipEntry entry = bundleJar.getEntry(classPathStrings[i]);
if ((entry != null) && entry.isDirectory())
{
- contentPath[i] = new ContentDirectoryContent(self, classPathStrings[i]);
+ contentList.add(new ContentDirectoryContent(self, classPathStrings[i]));
}
else
{
- contentPath[i] = new JarContent(new File(embedDir, classPathStrings[i]));
+ // Ignore any entries that do not exist per the spec.
+ File extractedJar = new File(embedDir, classPathStrings[i]);
+ if (BundleCache.getSecureAction().fileExists(extractedJar))
+ {
+ contentList.add(new JarContent(extractedJar));
+ }
}
}
}
// If there is nothing on the class path, then include
// "." by default, as per the spec.
- if (contentPath.length == 0)
+ if (contentList.size() == 0)
{
- contentPath = new IContent[] { self };
+ contentList.add(new IContent[] { self });
}
- return contentPath;
+ return (IContent[]) contentList.toArray(new IContent[contentList.size()]);
}
finally
{
Modified: incubator/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/JarContent.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/JarContent.java?view=diff&rev=464939&r1=464938&r2=464939
==============================================================================
--- incubator/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/JarContent.java (original)
+++ incubator/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/JarContent.java Tue Oct 17 08:05:23 2006
@@ -19,9 +19,7 @@
package org.apache.felix.moduleloader;
import java.io.*;
-import java.util.*;
import java.util.Enumeration;
-import java.util.NoSuchElementException;
import java.util.zip.ZipEntry;
import org.apache.felix.framework.util.SecureAction;
@@ -274,7 +272,6 @@
private static class EntriesEnumeration implements Enumeration
{
private Enumeration m_enumeration = null;
- private Object m_next = null;
public EntriesEnumeration(Enumeration enumeration)
{