git-svn-id: https://svn.apache.org/repos/asf/manifoldcf/branches/CONNECTORS-728@1496915 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSRepositoryConnector.java b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSRepositoryConnector.java
index b254e96..9c7750d 100644
--- a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSRepositoryConnector.java
+++ b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSRepositoryConnector.java
@@ -431,35 +431,30 @@
objt.interrupt();
throw new ManifoldCFException("Interrupted: " + e.getMessage(), e, ManifoldCFException.INTERRUPTED);
}
-
- try {
- FileStatus fileStatus = objt.getResponse();
- if (session.getFileSystem().exists(fileStatus.getPath())) {
- if (fileStatus.isDir()) {
- long lastModified = fileStatus.getModificationTime();
- rval[i] = new Long(lastModified).toString();
- } else {
- long fileLength = fileStatus.getLen();
- if (activities.checkLengthIndexable(fileLength)) {
- long lastModified = fileStatus.getModificationTime();
- StringBuilder sb = new StringBuilder();
- if (filePathToUri) {
- sb.append("+");
- } else {
- sb.append("-");
- }
- sb.append(new Long(lastModified).toString()).append(":").append(new Long(fileLength).toString());
- rval[i] = sb.toString();
- } else {
- rval[i] = null;
- }
- }
+
+ FileStatus fileStatus = objt.getResponse();
+ if (fileStatus != null) {
+ if (fileStatus.isDir()) {
+ long lastModified = fileStatus.getModificationTime();
+ rval[i] = new Long(lastModified).toString();
} else {
- rval[i] = null;
+ long fileLength = fileStatus.getLen();
+ if (activities.checkLengthIndexable(fileLength)) {
+ long lastModified = fileStatus.getModificationTime();
+ StringBuilder sb = new StringBuilder();
+ if (filePathToUri) {
+ sb.append("+");
+ } else {
+ sb.append("-");
+ }
+ sb.append(new Long(lastModified).toString()).append(":").append(new Long(fileLength).toString());
+ rval[i] = sb.toString();
+ } else {
+ rval[i] = null;
+ }
}
- } catch (IOException e) {
- objt.interrupt();
- throw new ManifoldCFException(e);
+ } else {
+ rval[i] = null;
}
}
@@ -507,7 +502,7 @@
FileStatus fileStatus = objt.getResponse();
- if (!session.getFileSystem().exists(fileStatus.getPath())) {
+ if (fileStatus == null) {
continue;
}
diff --git a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSSession.java b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSSession.java
index 6cf359d..c753af5 100644
--- a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSSession.java
+++ b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/hdfs/HDFSSession.java
@@ -30,6 +30,7 @@
import org.apache.hadoop.fs.Path;
import org.apache.manifoldcf.core.common.*;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -95,7 +96,11 @@
}
public FileStatus getObject(String id) throws IOException {
- return fileSystem.getFileStatus(new Path(id));
+ try {
+ return fileSystem.getFileStatus(new Path(id));
+ } catch(FileNotFoundException e) {
+ return null;
+ }
}
public FSDataInputStream getFSDataInputStream(String id) throws IOException {