Author: gnodet
Date: Mon Apr 26 16:30:16 2010
New Revision: 938115
URL: http://svn.apache.org/viewvc?rev=938115&view=rev
Log:
FELIX-1776: problem when using relative dirs
Modified:
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
Modified:
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
URL:
http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java?rev=938115&r1=938114&r2=938115&view=diff
==============================================================================
---
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
(original)
+++
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
Mon Apr 26 16:30:16 2010
@@ -20,6 +20,7 @@ package org.apache.felix.fileinstall.int
import java.io.File;
import java.io.FilenameFilter;
+import java.io.IOException;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
@@ -107,7 +108,7 @@ public class Scanner {
Set/*<File>*/ removed = new
HashSet/*<File>*/(storedChecksums.keySet());
for (int i = 0; i < list.length; i++)
{
- File file = list[i];
+ File file = canon(list[i]);
long lastChecksum = lastChecksums.get(file) != null ? ((Long)
lastChecksums.get(file)).longValue() : 0;
long storedChecksum = storedChecksums.get(file) != null ? ((Long)
storedChecksums.get(file)).longValue() : 0;
long newChecksum = checksum(file);
@@ -132,6 +133,18 @@ public class Scanner {
return files;
}
+ private static File canon(File file)
+ {
+ try
+ {
+ return file.getCanonicalFile();
+ }
+ catch (IOException e)
+ {
+ return file;
+ }
+ }
+
/**
* Retrieve the previously computed checksum for a give file.
*