use of com.intellij.cvsSupport2.javacvsImpl.io.ReadWriteStatistics in project intellij-community by JetBrains.
the class ExtConnection method check.
@SuppressWarnings({ "IOResourceOpenedButNotSafelyClosed" })
private void check(ICvsCommandStopper stopper, String expectedResult) throws IOException, AuthenticationException {
InputStreamWrapper streamWrapper = new InputStreamWrapper(myInputStream, stopper, new ReadWriteStatistics());
try {
StringBuilder buffer = new StringBuilder();
while (true) {
int i = streamWrapper.read();
if (i == -1 || i == '\n' || i == ' ' || i == '\r')
break;
buffer.append((char) i);
}
String read = buffer.toString().trim();
if (!expectedResult.equals(read)) {
if (StringUtil.startsWithConcatenation(read, myUserName, "@", myHost)) {
throw new AuthenticationException(CvsBundle.message("exception.text.ext.server.rejected.access"), null);
} else {
if (myErrorText.length() > 0) {
throw new AuthenticationException(myErrorText.toString(), null);
} else {
throw new AuthenticationException(CvsBundle.message("exception.text.ext.cannot.establish.external.connection"), null);
}
}
}
} finally {
streamWrapper.close();
}
}
use of com.intellij.cvsSupport2.javacvsImpl.io.ReadWriteStatistics in project intellij-community by JetBrains.
the class CvsRootConfiguration method testConnection.
public void testConnection(Project project) throws AuthenticationException, IOException {
final IConnection connection = createSettings().createConnection(new ReadWriteStatistics());
final ErrorMessagesProcessor errorProcessor = new ErrorMessagesProcessor();
final CvsExecutionEnvironment cvsExecutionEnvironment = new CvsExecutionEnvironment(errorProcessor, CvsExecutionEnvironment.DUMMY_STOPPER, errorProcessor, PostCvsActivity.DEAF, project);
final CvsResult result = new CvsResultEx();
try {
ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
final GetModulesListOperation operation = new GetModulesListOperation(createSettings());
final CvsRootProvider cvsRootProvider = operation.getCvsRootProvider();
try {
if (connection instanceof SelfTestingConnection) {
((SelfTestingConnection) connection).test(CvsListenerWithProgress.createOnProgress());
}
operation.execute(cvsRootProvider, cvsExecutionEnvironment, connection, DummyProgressViewer.INSTANCE);
} catch (ValidRequestsExpectedException ex) {
result.addError(new CvsException(ex, cvsRootProvider.getCvsRootAsString()));
} catch (CommandException ex) {
result.addError(new CvsException(ex.getUnderlyingException(), cvsRootProvider.getCvsRootAsString()));
} catch (ProcessCanceledException ex) {
result.setIsCanceled();
} catch (BugLog.BugException e) {
LOG.error(e);
} catch (Exception e) {
result.addError(new CvsException(e, cvsRootProvider.getCvsRootAsString()));
}
}, CvsBundle.message("operation.name.test.connection"), true, null);
if (result.isCanceled())
throw new ProcessCanceledException();
if (result.hasErrors()) {
final VcsException vcsException = result.composeError();
throw new AuthenticationException(vcsException.getLocalizedMessage(), vcsException.getCause());
}
final List<VcsException> errors = errorProcessor.getErrors();
if (!errors.isEmpty()) {
final VcsException firstError = errors.get(0);
throw new AuthenticationException(firstError.getLocalizedMessage(), firstError);
}
} finally {
connection.close();
}
}
use of com.intellij.cvsSupport2.javacvsImpl.io.ReadWriteStatistics in project intellij-community by JetBrains.
the class CvsCommandOperation method doExecute.
private void doExecute(final CvsExecutionEnvironment executionEnvironment, boolean underReadAction) throws VcsException {
final VcsException[] exc = new VcsException[1];
final Runnable action = () -> {
try {
final ReadWriteStatistics statistics = executionEnvironment.getReadWriteStatistics();
final Collection<CvsRootProvider> allCvsRoots;
try {
allCvsRoots = getAllCvsRoots();
} catch (CannotFindCvsRootException e) {
throw createVcsExceptionOn(e, null);
}
final IProgressViewer progressViewer = new IProgressViewer() {
@Override
public void setProgress(double value) {
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
if (progressIndicator != null)
progressIndicator.setFraction(value);
}
};
int count = 0;
final double step = 1.0 / allCvsRoots.size();
for (CvsRootProvider cvsRootProvider : allCvsRoots) {
try {
final double lowerBound = step * count;
final RangeProgressViewer partialProgress = new RangeProgressViewer(progressViewer, lowerBound, lowerBound + step);
myLastProcessedCvsRoot = cvsRootProvider.getCvsRootAsString();
execute(cvsRootProvider, executionEnvironment, statistics, partialProgress);
count++;
} catch (IOCommandException e) {
LOG.info(e);
throw createVcsExceptionOn(e.getIOException(), cvsRootProvider.getCvsRootAsString());
} catch (CommandException e) {
LOG.info(e);
final Exception underlyingException = e.getUnderlyingException();
if (underlyingException != null) {
LOG.info(underlyingException);
}
throw createVcsExceptionOn(underlyingException == null ? e : underlyingException, cvsRootProvider.getCvsRootAsString());
}
}
} catch (VcsException e) {
exc[0] = e;
}
};
if (underReadAction) {
ApplicationManager.getApplication().runReadAction(action);
} else {
action.run();
}
if (exc[0] != null)
throw exc[0];
}
use of com.intellij.cvsSupport2.javacvsImpl.io.ReadWriteStatistics in project intellij-community by JetBrains.
the class EditOperation method execute.
@Override
protected void execute(CvsRootProvider root, CvsExecutionEnvironment executionEnvironment, ReadWriteStatistics statistics, IProgressViewer progressViewer) throws CommandException, CommandAbortedException, VcsException {
super.execute(root, executionEnvironment, statistics, progressViewer);
final VcsException vcsException = new CvsException(FILES_BEING_EDITED_EXCEPTION, root.getCvsRootAsString());
for (EditedFileInfo info : myEditFileInfos) {
if (info.isSuitableFor(root))
return;
final File file = info.getFile(root);
final VirtualFile virtualFile = CvsVfsUtil.findFileByIoFile(file);
if (virtualFile != null)
vcsException.setVirtualFile(virtualFile);
}
if (!myEditFileInfos.isEmpty())
throw vcsException;
}
use of com.intellij.cvsSupport2.javacvsImpl.io.ReadWriteStatistics in project intellij-community by JetBrains.
the class CvsConnectionSettings method createConnection.
public IConnection createConnection(ReadWriteStatistics statistics) {
CvsListenerWithProgress cvsCommandStopper = CvsListenerWithProgress.createOnProgress();
IConnection originalConnection = createOriginalConnection(cvsCommandStopper, myCvsRootConfiguration);
if (originalConnection instanceof SelfTestingConnection) {
return new SelfTestingConnectionWrapper(originalConnection, statistics, cvsCommandStopper);
} else {
return new ConnectionWrapper(originalConnection, statistics, cvsCommandStopper);
}
}
Aggregations