private void InvalidateConnection() { lock (this) { _hzInstance = null; } }
internal virtual void Shutdown() { lock (this) { if (_hzInstance != null) { _hzInstance.shutdown(); _hzInstance = null; _shutdown = true; } } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private synchronized com.hazelcast.core.HazelcastInstance tryEnsureConnection() throws HazelcastInstanceNotActiveException private HazelcastInstance TryEnsureConnection() { lock (this) { if (_shutdown) { throw new HazelcastInstanceNotActiveException("Shutdown"); } if (_hzInstance == null) { _hzInstance = _connector.connectToHazelcast(); } return(_hzInstance); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: synchronized <T> T apply(System.Func<com.hazelcast.core.HazelcastInstance,T> function) throws HazelcastInstanceNotActiveException internal virtual T Apply <T>(System.Func <HazelcastInstance, T> function) { lock (this) { HazelcastInstance hzInstance = TryEnsureConnection(); try { return(function(hzInstance)); } catch (com.hazelcast.core.HazelcastInstanceNotActiveException e) { InvalidateConnection(); throw new HazelcastInstanceNotActiveException(e); } } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: synchronized void perform(System.Action<com.hazelcast.core.HazelcastInstance> operation) throws HazelcastInstanceNotActiveException internal virtual void Perform(System.Action <HazelcastInstance> operation) { lock (this) { HazelcastInstance hzInstance = TryEnsureConnection(); try { operation(hzInstance); } catch (com.hazelcast.core.HazelcastInstanceNotActiveException e) { InvalidateConnection(); throw new HazelcastInstanceNotActiveException(e); } } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReconnectIfHazelcastConnectionInvalidated() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldReconnectIfHazelcastConnectionInvalidated() { // given HazelcastConnector connector = mock(typeof(HazelcastConnector)); HazelcastInstance hzInstance = mock(typeof(HazelcastInstance)); when(connector.ConnectToHazelcast()).thenReturn(hzInstance); RobustHazelcastWrapper hzWrapper = new RobustHazelcastWrapper(connector); // when hzWrapper.Perform(hz => { }); // then verify(connector, times(1)).connectToHazelcast(); // then try { hzWrapper.Perform(hz => { throw new com.hazelcast.core.HazelcastInstanceNotActiveException(); }); fail(); } catch (HazelcastInstanceNotActiveException) { // expected } // when hzWrapper.Perform(hz => { }); hzWrapper.Perform(hz => { }); // then verify(connector, times(2)).connectToHazelcast(); }