public static void addListener(@NotNull MessageBusClient.ProjectClient client, @NotNull Object listenerOwner, @NotNull Listener listener) { addListener(client, TOPIC, listener, Listener.class, listenerOwner); } }
@Override public void clientConfigurationRemoved(@NotNull ClientConfigRemovedMessage.Event event) { Collection<ClientConfig> activeConfigs = getActiveClientConfigs(); try { cache.cleanClientCache(activeConfigs); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( SERVER_CACHE_TIMEOUT_MESSAGE, e))); } } }
public static Listener send(@NotNull Project project) { return getListener(project, TOPIC, DEFAULT_LISTENER); }
InternalErrorMessage.send(project).p4ApiInternalError(new ErrorEvent<>( new Exception("Attempted to submit files that weren't open for edit/add: " + noChangelistFiles)));
InternalErrorMessage.addListener(projClient, this, new InternalErrorMessage.Listener() { @Override public void internalError(@NotNull ErrorEvent<Throwable> t) {
private void loadClientConfigRoot(@NotNull Project project, @NotNull ClientConfigRoot root) { RootNode fileRoot = createRootNode(root); try { List<ActionChoice> pendingActions = CacheComponent.getInstance(project).getCachePending().copyActions(root.getClientConfig()) .collect(Collectors.toList()); fileRoot.pending.setPendingCount(pendingActions.size()); pendingActions.forEach((ac) -> { DefaultMutableTreeNode actionNode = new DefaultMutableTreeNode(ac); fileRoot.pendingNode.add(actionNode); // File information on an action is static. for (FilePath affectedFile : ac.getAffectedFiles()) { actionNode.add(new DefaultMutableTreeNode(affectedFile)); } for (P4CommandRunner.ResultError previousExecutionProblem : ac.getPreviousExecutionProblems()) { actionNode.add(new DefaultMutableTreeNode(previousExecutionProblem)); } }); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException(e))); } }
@NotNull public static Map<ClientServerRef, P4ChangelistId> getActiveChangelistIds(@NotNull Project project) { LocalChangeList defaultIdeChangeList = ChangeListManager.getInstance(project).getDefaultChangeList(); Map<ClientServerRef, P4ChangelistId> ret = new HashMap<>(); try { CacheComponent.getInstance(project).getServerOpenedCache().first .getP4ChangesFor(defaultIdeChangeList) .forEach((id) -> ret.put(id.getClientServerRef(), id)); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException(e))); } return ret; }
private void reportCacheWaitError(InterruptedException e) { if (project == null) { LOG.warn(CACHE_WAIT_ERROR_MESSAGE, e); } else { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( CACHE_WAIT_ERROR_MESSAGE, e))); } }
@Nullable @Override public ProjectCacheStore.State getState() { try { return projectCache.getState(); } catch (InterruptedException e) { if (project != null) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>( new VcsInterruptedException(SERIALIZE_CACHE_TIMEOUT_MESSAGE, e))); } else { LOG.warn(SERIALIZE_CACHE_TIMEOUT_MESSAGE, e); } return null; } }
@Override public void clientActionUpdate(@NotNull ClientActionMessage.Event event) { if (LOG.isDebugEnabled()) { LOG.debug("Caching action " + event.getAction()); } try { handleClientAction(event); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( SERVER_CACHE_TIMEOUT_MESSAGE, e))); } }
@Override public void jobUpdate(@NotNull JobCacheMessage.Event event) { try { cache.write(event.getServerName(), (store) -> store.addJob(event.getJob())); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( SERVER_CACHE_TIMEOUT_MESSAGE, e))); } }
@Override public void jobSpecUpdate(@NotNull JobSpecCacheMessage.Event event) { try { cache.write(event.getServerName(), (store) -> store.setJobSpec(event.getJobSpec())); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( SERVER_CACHE_TIMEOUT_MESSAGE, e))); } }
InternalErrorMessage.send(project).cacheLockTimeoutError( new ErrorEvent<>(new VcsInterruptedException(e))); } catch (P4CommandRunner.ServerResultException e) {
.changelistDeleted(res.getChangelistId()); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError( new ErrorEvent<>(new VcsInterruptedException( "Timed out waiting for cache to become available", e)));
@Override public void loadState(ProjectCacheStore.State state) { try { this.projectCache.setState(state); } catch (InterruptedException e) { if (project != null) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>( new VcsInterruptedException(DESERIALIZE_CACHE_TIMEOUT_MESSAGE, e))); } else { LOG.warn(DESERIALIZE_CACHE_TIMEOUT_MESSAGE, e); } } }
@Override public void listClientsForUserUpdate(@NotNull ListClientsForUserCacheMessage.Event event) { try { cache.write(event.getServerName(), (store) -> store.setUserClients(event.getUser(), event.getClients())); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException( SERVER_CACHE_TIMEOUT_MESSAGE, e))); } }
private void createSwarmReviews(@NotNull Project project, @NotNull ProjectConfigRegistry registry, @NotNull List<ChangeList> changeLists) { Answer<Integer> next = Answer.resolve(0); for (ChangeList ideChangeList : changeLists) { if (ideChangeList instanceof LocalChangeList) { try { Collection<P4ChangelistId> p4Changelists = CacheComponent.getInstance(project).getServerOpenedCache().first. getP4ChangesFor((LocalChangeList) ideChangeList); if (!p4Changelists.isEmpty()) { for (P4ChangelistId p4Changelist : p4Changelists) { next = next.mapAsync(x -> SwarmReview.createOrEditSwarmReview(project, registry, ideChangeList, p4Changelist)); // Failure reporting is handled by the SwarmReview class. } // Skip the notOnServer message. continue; } } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>( new VcsInterruptedException("Timeout or interruption while reading list of changes", e))); } } SwarmErrorMessage.send(project).notOnServer(new SwarmErrorMessage.SwarmEvent(null), ideChangeList); } }
InternalErrorMessage.send(project).internalError(new ErrorEvent<>(e)); return createServerResultException(e, getMessage("error.NullPointerError", e), InternalErrorMessage.send(project).p4ApiInternalError(new ErrorEvent<>(e)); return createServerResultException(e, getMessage("error.ProtocolError", e), InternalErrorMessage.send(project).p4ApiInternalError(new ErrorEvent<>(e)); return createServerResultException(e, getMessage("error.UnimplementedError", e), InternalErrorMessage.send(project).p4ApiInternalError(new ErrorEvent<>(e)); return createServerResultException(e, getMessage("error.P4JavaError", e), InternalErrorMessage.send(project).internalError(new ErrorEvent<>(e)); return createServerResultException(e, getMessage("error.Error", e),
@Override @Nullable public VcsFileRevision getLastRevision(FilePath filePath) throws VcsException { ClientConfigRoot root = getRootFor(filePath); if (root == null) { LOG.info("File not under vcs: " + filePath); return null; } try { List<VcsFileRevision> revisions = getHistory(root, filePath, 1) .blockingGet(UserProjectPreferences.getLockWaitTimeoutMillis(project), TimeUnit.MILLISECONDS) .getRevisions(formatter, loader); if (revisions.isEmpty()) { if (LOG.isDebugEnabled()) { LOG.debug("no revisions found for " + filePath); } return null; } return revisions.get(0); } catch (InterruptedException e) { InternalErrorMessage.send(project).cacheLockTimeoutError(new ErrorEvent<>(new VcsInterruptedException(e))); return null; } }
InternalErrorMessage.send(project).cacheLockTimeoutError( new ErrorEvent<>(new VcsInterruptedException(e))); return null;