diff --git a/platform/platform-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java b/platform/core-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java
similarity index 95%
rename from platform/platform-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java
rename to platform/core-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java
index f685926ea313..74813fb49a59 100644
--- a/platform/platform-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java
+++ b/platform/core-api/src/com/intellij/openapi/vfs/InvalidVirtualFileAccessException.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java b/platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java
index f5caa6aa2989..18690bf710f6 100644
--- a/platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java
+++ b/platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java
@@ -15,8 +15,7 @@
*/
package com.intellij.openapi.vfs;
-import com.intellij.openapi.application.AccessToken;
-import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.roots.ContentIterator;
import com.intellij.openapi.util.io.BufferExposingByteArrayInputStream;
import com.intellij.openapi.util.io.FileUtil;
@@ -35,6 +34,8 @@ import static com.intellij.openapi.vfs.VirtualFileVisitor.Result;
import static com.intellij.openapi.vfs.VirtualFileVisitor.VisitorException;
public class VfsUtilCore {
+ private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vfs.VfsUtilCore");
+
/**
* Checks whether the ancestor {@link com.intellij.openapi.vfs.VirtualFile} is parent of file
* {@link com.intellij.openapi.vfs.VirtualFile}.
@@ -203,7 +204,6 @@ public class VfsUtilCore {
Iterable childrenIterable = null;
VirtualFile[] children = null;
- final AccessToken token = ApplicationManager.getApplication().acquireReadActionLock();
try {
if (!file.isValid() || !visitor.allowVisitChildren(file)) return VirtualFileVisitor.CONTINUE;
if (!visitor.depthLimitReached()) {
@@ -213,8 +213,9 @@ public class VfsUtilCore {
}
}
}
- finally {
- token.finish();
+ catch (InvalidVirtualFileAccessException e) {
+ LOG.warn("Ignoring: " + e.getMessage());
+ return VirtualFileVisitor.CONTINUE;
}
if (childrenIterable != null) {