Index: contrib/CHANGES.txt
===================================================================
--- contrib/CHANGES.txt	(revision 832595)
+++ contrib/CHANGES.txt	(working copy)
@@ -96,7 +96,10 @@
 
  * LUCENE-1904: Moved wordnet-based synonym support from contrib/memory
    into contrib/wordnet.  (Robert Muir)
-
+   
+ * LUCENE-2031: Moved PatternAnalyzer from contrib/memory into
+   contrib/analyzers/common, under miscellaneous.  (Robert Muir)
+   
 Test Cases
 ======================= Release 2.9.0 2009-09-23 =======================
 
Index: contrib/analyzers/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.java
===================================================================
--- contrib/analyzers/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.java	(revision 832595)
+++ contrib/analyzers/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.java	(working copy)
@@ -1,4 +1,4 @@
-package org.apache.lucene.index.memory;
+package org.apache.lucene.analysis.miscellaneous;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
Index: contrib/analyzers/common/src/test/org/apache/lucene/analysis/miscellaneous/PatternAnalyzerTest.java
===================================================================
--- contrib/analyzers/common/src/test/org/apache/lucene/analysis/miscellaneous/PatternAnalyzerTest.java	(revision 832595)
+++ contrib/analyzers/common/src/test/org/apache/lucene/analysis/miscellaneous/PatternAnalyzerTest.java	(working copy)
@@ -1,4 +1,4 @@
-package org.apache.lucene.index.memory;
+package org.apache.lucene.analysis.miscellaneous;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
Index: contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
===================================================================
--- contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java	(revision 832595)
+++ contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 import java.io.Serializable;
+import java.io.StringReader;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -249,13 +250,9 @@
     if (analyzer == null)
       throw new IllegalArgumentException("analyzer must not be null");
     
-    TokenStream stream;
-    if (analyzer instanceof PatternAnalyzer) {
-      stream = ((PatternAnalyzer) analyzer).tokenStream(fieldName, text);
-    } else {
-      stream = analyzer.tokenStream(fieldName, 
-          new PatternAnalyzer.FastStringReader(text));
-    }
+    TokenStream stream = analyzer.tokenStream(fieldName, 
+    		new StringReader(text));
+
     addField(fieldName, stream);
   }
   
Index: contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java
===================================================================
--- contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(revision 832595)
+++ contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(working copy)
@@ -280,7 +280,6 @@
         new SimpleAnalyzer(),
         new StopAnalyzer(Version.LUCENE_CURRENT),
         new StandardAnalyzer(org.apache.lucene.util.Version.LUCENE_CURRENT),
-        PatternAnalyzer.DEFAULT_ANALYZER,
 //        new WhitespaceAnalyzer(),
 //        new PatternAnalyzer(PatternAnalyzer.NON_WORD_PATTERN, false, null),
 //        new PatternAnalyzer(PatternAnalyzer.NON_WORD_PATTERN, true, stopWords),        
