test_class.declarator: ioManager
test_class.modifier: private
test_class.original_string: private IOManagerAsync ioManager;
test_class.type: IOManagerAsync
test_class.var_name: ioManager
test_class.file: flink-runtime/src/test/java/org/apache/flink/runtime/io/disk/iomanager/IOManagerAsyncTest.java
test_class.identifier: IOManagerAsyncTest
test_case.body: @Test
  	public void testExceptionPropagationWriter() {
  		try {
  			// use atomic boolean as a boolean reference
  			final AtomicBoolean handlerCalled = new AtomicBoolean();
  			final AtomicBoolean exceptionForwarded = new AtomicBoolean();
  			
  			WriteRequest req = new WriteRequest() {
  				
  				@Override
  				public void requestDone(IOException ioex) {
  					if (ioex instanceof TestIOException) {
  						exceptionForwarded.set(true);
  					}
  					
  					synchronized (handlerCalled) {
  						handlerCalled.set(true);
  						handlerCalled.notifyAll();
  					}
  				}
  				
  				@Override
  				public void write() throws IOException {
  					throw new TestIOException();
  				}
  			};
  			
  			
  			// test the read queue
  			RequestQueue<WriteRequest> rq = ioManager.getWriteRequestQueue(ioManager.createChannel());
  			rq.add(req);
  
  			// wait until the asynchronous request has been handled
  			synchronized (handlerCalled) {
  				while (!handlerCalled.get()) {
  					handlerCalled.wait();
  				}
  			}
  			
  			assertTrue(exceptionForwarded.get());
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			fail(e.getMessage());
  		}
  	}
test_case.class_method_signature: IOManagerAsyncTest.testExceptionPropagationWriter()
test_case.full_signature: @Test public void testExceptionPropagationWriter()
test_case.identifier: testExceptionPropagationWriter
test_case.invocations: set set notifyAll getWriteRequestQueue createChannel add get wait assertTrue get printStackTrace fail getMessage
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testExceptionPropagationWriter()
focal_class.declarator: writers
focal_class.modifier: private final
focal_class.original_string: private final WriterThread[] writers;
focal_class.type: WriterThread[]
focal_class.var_name: writers
focal_class.declarator: readers
focal_class.modifier: private final
focal_class.original_string: private final ReaderThread[] readers;
focal_class.type: ReaderThread[]
focal_class.var_name: readers
focal_class.declarator: isShutdown = new AtomicBoolean()
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean isShutdown = new AtomicBoolean();
focal_class.type: AtomicBoolean
focal_class.var_name: isShutdown
focal_class.declarator: shutdownHook
focal_class.modifier: private final
focal_class.original_string: private final Thread shutdownHook;
focal_class.type: Thread
focal_class.var_name: shutdownHook
focal_class.file: flink-runtime/src/main/java/org/apache/flink/runtime/io/disk/iomanager/IOManagerAsync.java
focal_class.identifier: IOManagerAsync
focal_class.interfaces: implements UncaughtExceptionHandler
focal_class.class_method_signature: IOManagerAsync.IOManagerAsync()
focal_class.full_signature: public  IOManagerAsync()
focal_class.identifier: IOManagerAsync
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  IOManagerAsync()
focal_class.class_method_signature: IOManagerAsync.IOManagerAsync(String tempDir)
focal_class.full_signature: public  IOManagerAsync(String tempDir)
focal_class.identifier: IOManagerAsync
focal_class.modifiers: public
focal_class.parameters: (String tempDir)
focal_class.signature:  IOManagerAsync(String tempDir)
focal_class.class_method_signature: IOManagerAsync.IOManagerAsync(String[] tempDirs)
focal_class.full_signature: public  IOManagerAsync(String[] tempDirs)
focal_class.identifier: IOManagerAsync
focal_class.modifiers: public
focal_class.parameters: (String[] tempDirs)
focal_class.signature:  IOManagerAsync(String[] tempDirs)
focal_class.class_method_signature: IOManagerAsync.shutdown()
focal_class.full_signature: @Override public void shutdown()
focal_class.identifier: shutdown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutdown()
focal_class.class_method_signature: IOManagerAsync.isProperlyShutDown()
focal_class.full_signature: @Override public boolean isProperlyShutDown()
focal_class.identifier: isProperlyShutDown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isProperlyShutDown()
focal_class.class_method_signature: IOManagerAsync.uncaughtException(Thread t, Throwable e)
focal_class.full_signature: @Override public void uncaughtException(Thread t, Throwable e)
focal_class.identifier: uncaughtException
focal_class.modifiers: @Override public
focal_class.parameters: (Thread t, Throwable e)
focal_class.return: void
focal_class.signature: void uncaughtException(Thread t, Throwable e)
focal_class.class_method_signature: IOManagerAsync.createBlockChannelWriter(FileIOChannel.ID channelID,
  								LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.full_signature: @Override public BlockChannelWriter<MemorySegment> createBlockChannelWriter(FileIOChannel.ID channelID,
  								LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.identifier: createBlockChannelWriter
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID,
  								LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.return: BlockChannelWriter<MemorySegment>
focal_class.signature: BlockChannelWriter<MemorySegment> createBlockChannelWriter(FileIOChannel.ID channelID,
  								LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.class_method_signature: IOManagerAsync.createBlockChannelWriter(FileIOChannel.ID channelID, RequestDoneCallback<MemorySegment> callback)
focal_class.full_signature: @Override public BlockChannelWriterWithCallback<MemorySegment> createBlockChannelWriter(FileIOChannel.ID channelID, RequestDoneCallback<MemorySegment> callback)
focal_class.identifier: createBlockChannelWriter
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID, RequestDoneCallback<MemorySegment> callback)
focal_class.return: BlockChannelWriterWithCallback<MemorySegment>
focal_class.signature: BlockChannelWriterWithCallback<MemorySegment> createBlockChannelWriter(FileIOChannel.ID channelID, RequestDoneCallback<MemorySegment> callback)
focal_class.class_method_signature: IOManagerAsync.createBlockChannelReader(FileIOChannel.ID channelID,
  										LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.full_signature: @Override public BlockChannelReader<MemorySegment> createBlockChannelReader(FileIOChannel.ID channelID,
  										LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.identifier: createBlockChannelReader
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID,
  										LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.return: BlockChannelReader<MemorySegment>
focal_class.signature: BlockChannelReader<MemorySegment> createBlockChannelReader(FileIOChannel.ID channelID,
  										LinkedBlockingQueue<MemorySegment> returnQueue)
focal_class.class_method_signature: IOManagerAsync.createBufferFileWriter(FileIOChannel.ID channelID)
focal_class.full_signature: @Override public BufferFileWriter createBufferFileWriter(FileIOChannel.ID channelID)
focal_class.identifier: createBufferFileWriter
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID)
focal_class.return: BufferFileWriter
focal_class.signature: BufferFileWriter createBufferFileWriter(FileIOChannel.ID channelID)
focal_class.class_method_signature: IOManagerAsync.createBufferFileReader(FileIOChannel.ID channelID, RequestDoneCallback<Buffer> callback)
focal_class.full_signature: @Override public BufferFileReader createBufferFileReader(FileIOChannel.ID channelID, RequestDoneCallback<Buffer> callback)
focal_class.identifier: createBufferFileReader
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID, RequestDoneCallback<Buffer> callback)
focal_class.return: BufferFileReader
focal_class.signature: BufferFileReader createBufferFileReader(FileIOChannel.ID channelID, RequestDoneCallback<Buffer> callback)
focal_class.class_method_signature: IOManagerAsync.createBufferFileSegmentReader(FileIOChannel.ID channelID, RequestDoneCallback<FileSegment> callback)
focal_class.full_signature: @Override public BufferFileSegmentReader createBufferFileSegmentReader(FileIOChannel.ID channelID, RequestDoneCallback<FileSegment> callback)
focal_class.identifier: createBufferFileSegmentReader
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID, RequestDoneCallback<FileSegment> callback)
focal_class.return: BufferFileSegmentReader
focal_class.signature: BufferFileSegmentReader createBufferFileSegmentReader(FileIOChannel.ID channelID, RequestDoneCallback<FileSegment> callback)
focal_class.class_method_signature: IOManagerAsync.createBulkBlockChannelReader(FileIOChannel.ID channelID,
  			List<MemorySegment> targetSegments, int numBlocks)
focal_class.full_signature: @Override public BulkBlockChannelReader createBulkBlockChannelReader(FileIOChannel.ID channelID,
  			List<MemorySegment> targetSegments, int numBlocks)
focal_class.identifier: createBulkBlockChannelReader
focal_class.modifiers: @Override public
focal_class.parameters: (FileIOChannel.ID channelID,
  			List<MemorySegment> targetSegments, int numBlocks)
focal_class.return: BulkBlockChannelReader
focal_class.signature: BulkBlockChannelReader createBulkBlockChannelReader(FileIOChannel.ID channelID,
  			List<MemorySegment> targetSegments, int numBlocks)
focal_class.class_method_signature: IOManagerAsync.getReadRequestQueue(FileIOChannel.ID channelID)
focal_class.full_signature:  RequestQueue<ReadRequest> getReadRequestQueue(FileIOChannel.ID channelID)
focal_class.identifier: getReadRequestQueue
focal_class.parameters: (FileIOChannel.ID channelID)
focal_class.return: RequestQueue<ReadRequest>
focal_class.signature: RequestQueue<ReadRequest> getReadRequestQueue(FileIOChannel.ID channelID)
focal_class.class_method_signature: IOManagerAsync.getWriteRequestQueue(FileIOChannel.ID channelID)
focal_class.full_signature:  RequestQueue<WriteRequest> getWriteRequestQueue(FileIOChannel.ID channelID)
focal_class.identifier: getWriteRequestQueue
focal_class.parameters: (FileIOChannel.ID channelID)
focal_class.return: RequestQueue<WriteRequest>
focal_class.signature: RequestQueue<WriteRequest> getWriteRequestQueue(FileIOChannel.ID channelID)
focal_class.superclass: extends IOManager
focal_method.body: RequestQueue<WriteRequest> getWriteRequestQueue(FileIOChannel.ID channelID) {
  		return this.writers[channelID.getThreadNum()].requestQueue;
  	}
focal_method.class_method_signature: IOManagerAsync.getWriteRequestQueue(FileIOChannel.ID channelID)
focal_method.full_signature:  RequestQueue<WriteRequest> getWriteRequestQueue(FileIOChannel.ID channelID)
focal_method.identifier: getWriteRequestQueue
focal_method.invocations: getThreadNum
focal_method.parameters: (FileIOChannel.ID channelID)
focal_method.return: RequestQueue<WriteRequest>
focal_method.signature: RequestQueue<WriteRequest> getWriteRequestQueue(FileIOChannel.ID channelID)