You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by di...@apache.org on 2009/11/06 22:25:34 UTC

svn commit: r833560 - /incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs

Author: digy
Date: Fri Nov  6 21:25:32 2009
New Revision: 833560

URL: http://svn.apache.org/viewvc?rev=833560&view=rev
Log:
LUCENENET-201 Bug in Demo for Lucene.Net 2.4.0

Modified:
    incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs

Modified: incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs?rev=833560&r1=833559&r2=833560&view=diff
==============================================================================
--- incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs (original)
+++ incubator/lucene.net/tags/Lucene.Net_2_4_0/src/Demo/DemoLib/HTML/HTMLParser.cs Fri Nov  6 21:25:32 2009
@@ -49,38 +49,51 @@
 		internal System.IO.StreamWriter pipeOut;
 		private MyPipedInputStream pipeInStream = null;
 		private System.IO.StreamWriter pipeOutStream = null;
-		
-		private class MyPipedInputStream : System.IO.StreamReader
-		{
-			private void  InitBlock(HTMLParser enclosingInstance)
-			{
-				this.enclosingInstance = enclosingInstance;
-			}
-			private HTMLParser enclosingInstance;
-			public HTMLParser Enclosing_Instance
-			{
-				get
-				{
-					return enclosingInstance;
-				}
-				
-			}
-			
-			//public MyPipedInputStream(HTMLParser enclosingInstance) : base()
-			//{
-			//	InitBlock(enclosingInstance);
-			//}
-			
-			public MyPipedInputStream(HTMLParser enclosingInstance, System.IO.StreamReader src) : base(src.BaseStream)
-			{
-				InitBlock(enclosingInstance);
-			}
-			
-			public virtual bool Full()
-			{
-				return enclosingInstance.summaryComplete;
-			}
-		}
+
+        private class MyPipedInputStream : System.IO.MemoryStream
+        {
+            long _readPtr = 0;
+            long _writePtr = 0;
+
+            public System.IO.Stream BaseStream
+            {
+                get
+                {
+                    return this;
+                }
+            }
+
+            public override int Read(byte[] buffer, int offset, int count)
+            {
+                lock (this)
+                {
+                    base.Seek(_readPtr, System.IO.SeekOrigin.Begin);
+                    int x = base.Read(buffer, offset, count);
+                    _readPtr += x;
+                    return x;
+                }
+            }
+
+            public override void Write(byte[] buffer, int offset, int count)
+            {
+                lock (this)
+                {
+                    base.Seek(_writePtr, System.IO.SeekOrigin.Begin);
+                    base.Write(buffer, offset, count);
+                    _writePtr += count;
+                }
+            }
+
+            public override void Close()
+            {
+
+            }
+
+            public virtual bool Full()
+            {
+                return false;
+            }
+        }
 		
 		/// <deprecated> Use HTMLParser(FileInputStream) instead
 		/// </deprecated>
@@ -149,7 +162,7 @@
 		{
 			if (pipeIn == null)
 			{
-				pipeInStream = new MyPipedInputStream(this, new System.IO.StreamReader(new System.IO.MemoryStream(1024)));
+				pipeInStream = new MyPipedInputStream();
 				pipeOutStream = new System.IO.StreamWriter(pipeInStream.BaseStream);
 				pipeIn = new System.IO.StreamReader(pipeInStream.BaseStream, System.Text.Encoding.Default); // GetEncoding("UTF-16BE"));
 				pipeOut = new System.IO.StreamWriter(pipeOutStream.BaseStream, System.Text.Encoding.Default); // GetEncoding("UTF-16BE"));