@Override public Object call() throws Exception { op.initMessagePart(); Object result = null; boolean onlyUseExistingCnx = ((pool.getMaxConnections() != -1 && pool.getConnectionCount() >= pool.getMaxConnections()) ? true : false); op.setAllowDuplicateMetadataRefresh(!onlyUseExistingCnx); try { UserAttributes.userAttributes.set(securityAttributes); result = this.pool.executeOn(server, op, true, onlyUseExistingCnx); } catch (AllConnectionsInUseException ex) { // if we reached connection limit and don't have available connection to // that server,then execute function on one of the connections available // from other servers instead of creating new connection to the original // server if (op instanceof ExecuteRegionFunctionSingleHopOpImpl) { ExecuteRegionFunctionSingleHopOpImpl newop = (ExecuteRegionFunctionSingleHopOpImpl) op; result = this.pool.execute(new ExecuteRegionFunctionOpImpl(newop)); } else { result = this.pool.execute(this.op); } } finally { UserAttributes.userAttributes.set(null); } return result; }
@Before public void setUp() { endpointManager = mock(EndpointManager.class); queueManager = mock(QueueManager.class); manager = mock(ConnectionManager.class); riTracker = mock(RegisterInterestTracker.class); cancelCriterion = mock(CancelCriterion.class); mockPool = mock(PoolImpl.class); when(mockPool.execute(any())).thenThrow(new TransactionException()).thenReturn(true); }
+ Arrays.toString(groups) + " all members:" + allServers); pool.execute(op, 0);
+ Arrays.toString(groups) + " all members:" + allServers); pool.execute(op, 0);
((ExecuteFunctionOpImpl) op).getMessage().setTransactionId(transactionId); return this.pool.execute(op); } finally { if (initialRetryCount == 0) {