Merge remote-tracking branch 'origin/master'

This commit is contained in:
Kirill Likhodedov
2011-11-23 13:28:54 +03:00
3 changed files with 9 additions and 4 deletions
@@ -52,9 +52,13 @@ public abstract class PsiCachedValue<T> extends CachedValueBase<T> {
@Override
protected boolean isDependencyOutOfDate(Object dependency, long oldTimeStamp) {
return !(dependency instanceof PsiElement && myLastPsiTimeStamp == myManager.getModificationTracker().getModificationCount()) &&
super.isDependencyOutOfDate(dependency, oldTimeStamp);
if (dependency instanceof PsiElement &&
myLastPsiTimeStamp == myManager.getModificationTracker().getModificationCount() &&
((PsiElement)dependency).isPhysical()) {
return false;
}
return super.isDependencyOutOfDate(dependency, oldTimeStamp);
}
@Override
@@ -932,7 +932,8 @@ public class FileBasedIndex implements ApplicationComponent {
public static @Nullable Throwable getCauseToRebuildIndex(RuntimeException e) {
Throwable cause = e.getCause();
if (cause instanceof StorageException || cause instanceof IOException || cause instanceof IllegalArgumentException) return cause;
if (cause instanceof StorageException || cause instanceof IOException ||
cause instanceof IllegalArgumentException || cause instanceof IllegalStateException) return cause;
return null;
}
@@ -615,7 +615,7 @@ public class XmlTagImpl extends XmlElementImpl implements XmlTag {
final int s = result.size();
XmlTag[] tags = s > 0 ? ContainerUtil.toArray(result, new XmlTag[s]) : EMPTY;
return Result.create(tags, PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT);
return Result.create(tags, PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, getContainingFile());
}
});