コード例 #1
0
 public override IndexOutput CreateOutput(System.String name)
 {
     return(fsDir.CreateOutput(name));
 }
コード例 #2
0
		private void  Demo_FSIndexInputBug(FSDirectory fsdir, System.String file)
		{
			// Setup the test file - we need more than 1024 bytes
			IndexOutput os = fsdir.CreateOutput(file);
			for (int i = 0; i < 2000; i++)
			{
				os.WriteByte((byte) i);
			}
			os.Close();
			
			IndexInput in_Renamed = fsdir.OpenInput(file);
			
			// This read primes the buffer in IndexInput
			byte b = in_Renamed.ReadByte();
			
			// Close the file
			in_Renamed.Close();
			
			// ERROR: this call should fail, but succeeds because the buffer
			// is still filled
			b = in_Renamed.ReadByte();
			
			// ERROR: this call should fail, but succeeds for some reason as well
			in_Renamed.Seek(1099);
			
			try
			{
				// OK: this call correctly fails. We are now past the 1024 internal
				// buffer, so an actual IO is attempted, which fails
				b = in_Renamed.ReadByte();
				Assert.Fail("expected readByte() to throw exception");
			}
			catch (System.Exception)
			{
				// expected exception
			}
		}