mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 19:02:13 +07:00
bubble PCE from writeAndHandleErrors() to avoid VFS hard crash when executing jar.list() under canceled progress (IDEA-CR-61522)
GitOrigin-RevId: 001f13df68ab25c9da283c1b7c5f34e8e918e8c8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
166d819cf1
commit
b57eab1e37
@@ -6,6 +6,7 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream;
|
||||
@@ -967,6 +968,10 @@ public class FSRecords {
|
||||
w.lock();
|
||||
return action.compute();
|
||||
}
|
||||
catch (ProcessCanceledException e) {
|
||||
// now JarFileSystem list methods can be interrupted now
|
||||
throw e;
|
||||
}
|
||||
catch (Throwable e) {
|
||||
DbConnection.handleError(e);
|
||||
throw new RuntimeException(e);
|
||||
@@ -980,6 +985,10 @@ public class FSRecords {
|
||||
w.lock();
|
||||
action.run();
|
||||
}
|
||||
catch (ProcessCanceledException e) {
|
||||
// now JarFileSystem list methods can be interrupted now
|
||||
throw e;
|
||||
}
|
||||
catch (Throwable e) {
|
||||
DbConnection.handleError(e);
|
||||
throw new RuntimeException(e);
|
||||
|
||||
Reference in New Issue
Block a user