//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: protected void channelRead0(io.netty.channel.ChannelHandlerContext channelHandlerContext, PrepareStoreCopyRequest prepareStoreCopyRequest) throws java.io.IOException protected internal override void ChannelRead0(ChannelHandlerContext channelHandlerContext, PrepareStoreCopyRequest prepareStoreCopyRequest) { CloseablesListener closeablesListener = new CloseablesListener(); PrepareStoreCopyResponse response = PrepareStoreCopyResponse.Error(PrepareStoreCopyResponse.Status.EListingStore); try { NeoStoreDataSource neoStoreDataSource = _dataSourceSupplier.get(); if (!hasSameStoreId(prepareStoreCopyRequest.StoreId, neoStoreDataSource)) { channelHandlerContext.write(ResponseMessageType.PREPARE_STORE_COPY_RESPONSE); response = PrepareStoreCopyResponse.Error(PrepareStoreCopyResponse.Status.EStoreIdMismatch); } else { CheckPointer checkPointer = neoStoreDataSource.DependencyResolver.resolveDependency(typeof(CheckPointer)); closeablesListener.Add(TryCheckpointAndAcquireMutex(checkPointer)); PrepareStoreCopyFiles prepareStoreCopyFiles = closeablesListener.Add(_prepareStoreCopyFilesProvider.prepareStoreCopyFiles(neoStoreDataSource)); StoreResource[] nonReplayable = prepareStoreCopyFiles.AtomicFilesSnapshot; foreach (StoreResource storeResource in nonReplayable) { _streamingProtocol.stream(channelHandlerContext, storeResource); } channelHandlerContext.write(ResponseMessageType.PREPARE_STORE_COPY_RESPONSE); response = CreateSuccessfulResponse(checkPointer, prepareStoreCopyFiles); } } finally { channelHandlerContext.writeAndFlush(response).addListener(closeablesListener); _protocol.expect(CatchupServerProtocol.State.MESSAGE_TYPE); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldCloseAllReourcesBeforeException() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldCloseAllReourcesBeforeException() { // given CloseablesListener closeablesListener = new CloseablesListener(); Exception exception = new Exception("fail"); CloseTrackingCloseable kindCloseable1 = new CloseTrackingCloseable(this); CloseTrackingCloseable unkindCloseable = new CloseTrackingCloseable(this, exception); CloseTrackingCloseable kindCloseable2 = new CloseTrackingCloseable(this); closeablesListener.Add(kindCloseable1); closeablesListener.Add(unkindCloseable); closeablesListener.Add(kindCloseable2); //then we expect an exception ExpectedException.expect(exception.GetType()); // when closeablesListener.Close(); //then we expect all have closed assertTrue(kindCloseable1.WasClosed); assertTrue(unkindCloseable.WasClosed); assertTrue(kindCloseable2.WasClosed); }