@Test public void testClosingReportsToLeader() throws Exception { final Configuration flinkConfig = new Configuration(); try (YarnHighAvailabilityServices services = new YarnIntraNonHaMasterServices(flinkConfig, hadoopConfig)) { final LeaderElectionService elector = services.getResourceManagerLeaderElectionService(); final LeaderRetrievalService retrieval = services.getResourceManagerLeaderRetriever(); final LeaderContender contender = mockContender(elector); final LeaderRetrievalListener listener = mock(LeaderRetrievalListener.class); elector.start(contender); retrieval.start(listener); // wait until the contender has become the leader verify(listener, timeout(1000L).times(1)).notifyLeaderAddress(anyString(), any(UUID.class)); // now we can close the election service services.close(); verify(contender, timeout(1000L).times(1)).handleError(any(Exception.class)); } }
void shutdown(Exception cause) { if (running) { final LeaderRetrievalListener lst = listener; running = false; listener = null; try { lst.handleError(cause); } catch (Throwable ignored) {} } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
public synchronized void notifyListener( @Nullable String address, @Nullable UUID leaderSessionID) { this.leaderAddress = address; this.leaderSessionID = leaderSessionID; if (listener != null) { listener.notifyLeaderAddress(address, leaderSessionID); } } }
public void shutdown(Exception cause) { if (running) { running = false; listener.handleError(cause); listener = null; } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
public synchronized void notifyListener( @Nullable String address, @Nullable UUID leaderSessionID) { this.leaderAddress = address; this.leaderSessionID = leaderSessionID; if (listener != null) { listener.notifyLeaderAddress(address, leaderSessionID); } } }
void shutdown(Exception cause) { if (running) { final LeaderRetrievalListener lst = listener; running = false; listener = null; try { lst.handleError(cause); } catch (Throwable ignored) {} } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
public synchronized void notifyListener( @Nullable String address, @Nullable UUID leaderSessionID) { this.leaderAddress = address; this.leaderSessionID = leaderSessionID; if (listener != null) { listener.notifyLeaderAddress(address, leaderSessionID); } } }
void shutdown(Exception cause) { if (running) { final LeaderRetrievalListener lst = listener; running = false; listener = null; try { lst.handleError(cause); } catch (Throwable ignored) {} } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
@Override public synchronized void start(LeaderRetrievalListener listener) throws Exception { this.listener = Preconditions.checkNotNull(listener); if (leaderSessionID != null && leaderAddress != null) { listener.notifyLeaderAddress(leaderAddress, leaderSessionID); } }
void shutdown(Exception cause) { if (running) { final LeaderRetrievalListener lst = listener; running = false; listener = null; try { lst.handleError(cause); } catch (Throwable ignored) {} } } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }
@Override public synchronized void start(LeaderRetrievalListener listener) throws Exception { this.listener = Preconditions.checkNotNull(listener); if (leaderSessionID != null && leaderAddress != null) { listener.notifyLeaderAddress(leaderAddress, leaderSessionID); } }
@Override public void unhandledError(String s, Throwable throwable) { leaderListener.handleError(new FlinkException("Unhandled error in ZooKeeperLeaderRetrievalService:" + s, throwable)); } }
@Override public void run() { try { listener.notifyLeaderAddress(address, leaderSessionId); } catch (Throwable t) { logger.warn("Error notifying leader listener about new leader", t); listener.handleError(t instanceof Exception ? (Exception) t : new Exception(t)); } } }