You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/10/01 05:05:07 UTC

svn commit: r1177888 [16/16] - in /lucene/dev/branches/lucene2621: ./ dev-tools/eclipse/ dev-tools/idea/lucene/contrib/ dev-tools/maven/ lucene/ lucene/contrib/ lucene/contrib/demo/src/java/org/apache/lucene/demo/ lucene/contrib/demo/src/java/org/apach...

Modified: lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/CloudState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/CloudState.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/CloudState.java (original)
+++ lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/CloudState.java Sat Oct  1 03:04:53 2011
@@ -84,8 +84,16 @@ public class CloudState {
         }
         Map<String,Slice> slices = new HashMap<String,Slice>();
         for (String shardIdZkPath : shardIdNames) {
+          Slice oldSlice = null;
+          if (oldCloudState.getCollectionStates().containsKey(collection)
+              && oldCloudState.getCollectionStates().get(collection)
+                  .containsKey(shardIdZkPath)) {
+            oldSlice = oldCloudState.getCollectionStates().get(collection)
+                .get(shardIdZkPath);
+          }
+          
           Map<String,ZkNodeProps> shardsMap = readShards(zkClient, shardIdPaths
-              + "/" + shardIdZkPath);
+              + "/" + shardIdZkPath, oldSlice);
           Slice slice = new Slice(shardIdZkPath, shardsMap);
           slices.put(shardIdZkPath, slice);
         }
@@ -108,7 +116,7 @@ public class CloudState {
    * @throws InterruptedException
    * @throws IOException
    */
-  private static Map<String,ZkNodeProps> readShards(SolrZkClient zkClient, String shardsZkPath)
+  private static Map<String,ZkNodeProps> readShards(SolrZkClient zkClient, String shardsZkPath, Slice oldSlice)
       throws KeeperException, InterruptedException, IOException {
 
     Map<String,ZkNodeProps> shardNameToProps = new HashMap<String,ZkNodeProps>();
@@ -120,12 +128,18 @@ public class CloudState {
 
     List<String> shardZkPaths = zkClient.getChildren(shardsZkPath, null);
     
-    for(String shardPath : shardZkPaths) {
-      byte[] data = zkClient.getData(shardsZkPath + "/" + shardPath, null,
-          null);
+    for (String shardPath : shardZkPaths) {
+      ZkNodeProps props;
+      if (oldSlice != null && oldSlice.getShards().containsKey(shardPath)) {
+        props = oldSlice.getShards().get(shardPath);
+      } else {
+        byte[] data = zkClient.getData(shardsZkPath + "/" + shardPath, null,
+            null);
+        
+        props = new ZkNodeProps();
+        props.load(data);
+      }
       
-      ZkNodeProps props = new ZkNodeProps();
-      props.load(data);
       shardNameToProps.put(shardPath, props);
     }
 

Modified: lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java (original)
+++ lucene/dev/branches/lucene2621/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java Sat Oct  1 03:04:53 2011
@@ -117,8 +117,6 @@ public class ZkStateReader {
   // load and publish a new CollectionInfo
   private synchronized void updateCloudState(boolean immediate, final boolean onlyLiveNodes) throws KeeperException, InterruptedException,
       IOException {
-
-    // TODO: - possibly: incremental update rather than reread everything
     
     // build immutable CloudInfo
     

Modified: lucene/dev/branches/lucene2621/solr/solrj/src/test-files/solrj/solr/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/solrj/src/test-files/solrj/solr/conf/schema.xml?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/solrj/src/test-files/solrj/solr/conf/schema.xml (original)
+++ lucene/dev/branches/lucene2621/solr/solrj/src/test-files/solrj/solr/conf/schema.xml Sat Oct  1 03:04:53 2011
@@ -86,7 +86,7 @@
     <!-- Field type demonstrating an Analyzer failure -->
     <fieldtype name="failtype1" class="solr.TextField">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
@@ -95,7 +95,7 @@
     <!-- Demonstrating ignoreCaseChange -->
     <fieldtype name="wdf_nocase" class="solr.TextField">
       <analyzer>
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
@@ -103,7 +103,7 @@
 
      <fieldtype name="wdf_preserve" class="solr.TextField">
       <analyzer>
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
@@ -156,7 +156,7 @@
       <analyzer><tokenizer class="solr.LowerCaseTokenizerFactory"/></analyzer>
     </fieldtype>
     <fieldtype name="keywordtok" class="solr.TextField">
-      <analyzer><tokenizer class="solr.KeywordTokenizerFactory"/></analyzer>
+      <analyzer><tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/></analyzer>
     </fieldtype>
     <fieldtype name="standardtok" class="solr.TextField">
       <analyzer><tokenizer class="solr.StandardTokenizerFactory"/></analyzer>
@@ -165,7 +165,7 @@
       <analyzer><tokenizer class="solr.LetterTokenizerFactory"/></analyzer>
     </fieldtype>
     <fieldtype name="whitetok" class="solr.TextField">
-      <analyzer><tokenizer class="solr.WhitespaceTokenizerFactory"/></analyzer>
+      <analyzer><tokenizer class="solr.MockTokenizerFactory"/></analyzer>
     </fieldtype>
     <fieldtype name="HTMLstandardtok" class="solr.TextField">
       <analyzer>
@@ -176,7 +176,7 @@
     <fieldtype name="HTMLwhitetok" class="solr.TextField">
       <analyzer>
       <charFilter class="solr.HTMLStripCharFilterFactory"/>
-      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+      <tokenizer class="solr.MockTokenizerFactory"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="standardtokfilt" class="solr.TextField">
@@ -187,19 +187,19 @@
     </fieldtype>
     <fieldtype name="standardfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.StandardFilterFactory"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="lowerfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="lowerpunctfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"/>
         <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="1"/>
         <filter class="solr.LowerCaseFilterFactory"/>
@@ -207,13 +207,13 @@
     </fieldtype>
     <fieldtype name="patternreplacefilt" class="solr.TextField">
       <analyzer type="index">
-        <tokenizer class="solr.KeywordTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/>
         <filter class="solr.PatternReplaceFilterFactory"
                 pattern="([^a-zA-Z])" replacement="_" replace="all"
         />
       </analyzer>
       <analyzer type="query">
-        <tokenizer class="solr.KeywordTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="patterntok" class="solr.TextField">
@@ -223,44 +223,44 @@
     </fieldtype>
     <fieldtype name="porterfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.PorterStemFilterFactory"/>
       </analyzer>
     </fieldtype>
     <!-- fieldtype name="snowballfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.SnowballPorterFilterFactory"/>
       </analyzer>
     </fieldtype -->
     <fieldtype name="engporterfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.PorterStemFilterFactory"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="custengporterfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
         <filter class="solr.PorterStemFilterFactory"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="stopfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.StopFilterFactory" ignoreCase="true"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="custstopfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
       </analyzer>
     </fieldtype>
     <fieldtype name="lengthfilt" class="solr.TextField">
       <analyzer>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
         <filter class="solr.LengthFilterFactory" min="2" max="5"/>
       </analyzer>
     </fieldtype>
@@ -268,20 +268,20 @@
       <analyzer>
         <charFilter class="solr.HTMLStripCharFilterFactory"/>
         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
-        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <tokenizer class="solr.MockTokenizerFactory"/>
       </analyzer>
     </fieldType>
 
     <fieldtype name="subword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.StopFilterFactory"/>
           <filter class="solr.PorterStemFilterFactory"/>
       </analyzer>
       <analyzer type="query">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.StopFilterFactory"/>
@@ -291,14 +291,14 @@
 
     <fieldtype name="numericsubword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
           <filter class="solr.StopFilterFactory"/>
           <filter class="solr.PorterStemFilterFactory"/>
       </analyzer>
       <analyzer type="query">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.StopFilterFactory"/>
@@ -308,12 +308,12 @@
 
     <fieldtype name="protectedsubword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
       </analyzer>
       <analyzer type="query">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
     </fieldtype>
@@ -322,12 +322,12 @@
     <!-- more flexible in matching skus, but more chance of a false match -->
     <fieldtype name="skutype1" class="solr.TextField">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
       <analyzer type="query">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
@@ -336,12 +336,12 @@
     <!-- less flexible in matching skus, but less chance of a false match -->
     <fieldtype name="skutype2" class="solr.TextField">
       <analyzer type="index">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
       <analyzer type="query">
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
@@ -350,7 +350,7 @@
     <!-- less flexible in matching skus, but less chance of a false match -->
     <fieldtype name="syn" class="solr.TextField">
       <analyzer>
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter name="syn" class="solr.SynonymFilterFactory" synonyms="old_synonyms.txt"/>
       </analyzer>
     </fieldtype>
@@ -360,7 +360,7 @@
       -->
     <fieldtype name="dedup" class="solr.TextField">
       <analyzer>
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.SynonymFilterFactory"
                   synonyms="old_synonyms.txt" expand="true" />
           <filter class="solr.PorterStemFilterFactory"/>
@@ -373,7 +373,7 @@
 
   <fieldtype name="textgap" class="solr.TextField" multiValued="true" positionIncrementGap="100">
       <analyzer>
-          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+          <tokenizer class="solr.MockTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
   </fieldtype>
@@ -396,7 +396,7 @@
   <!--  specify a Similarity classname directly -->
   <fieldType name="sim1" class="solr.TextField">
     <analyzer>
-      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+      <tokenizer class="solr.MockTokenizerFactory"/>
     </analyzer>
     <similarity class="org.apache.lucene.misc.SweetSpotSimilarity"/>
   </fieldType>
@@ -404,7 +404,7 @@
   <!--  specify a Similarity factory -->  
   <fieldType name="sim2" class="solr.TextField">
     <analyzer>
-      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+      <tokenizer class="solr.MockTokenizerFactory"/>
     </analyzer>
     <similarity class="org.apache.solr.schema.CustomSimilarityFactory">
       <str name="echo">is there an echo?</str>
@@ -414,7 +414,7 @@
   <!-- don't specify any sim at all: get the default  -->
   <fieldType name="sim3" class="solr.TextField">
     <analyzer>
-      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+      <tokenizer class="solr.MockTokenizerFactory"/>
     </analyzer>
   </fieldType>
  </types>

Modified: lucene/dev/branches/lucene2621/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java (original)
+++ lucene/dev/branches/lucene2621/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java Sat Oct  1 03:04:53 2011
@@ -364,13 +364,22 @@ abstract public class SolrExampleTests e
     rsp = server.query( new SolrQuery( "*:*") );
     Assert.assertEquals( 0, rsp.getResults().getNumFound() );
     
+    // TODO: not a great way to test this - timing is easily out
+    // of whack due to parallel tests and various computer specs/load
     Thread.sleep( 1000 ); // wait 1 sec
 
     // now check that it comes out...
     rsp = server.query( new SolrQuery( "id:id3") );
     
-    if(rsp.getResults().getNumFound() == 0) {
-      // wait and try again for slower machines
+    int cnt = 0;
+    while (rsp.getResults().getNumFound() == 0) {
+      // wait and try again for slower/busier machines
+      // and/or parallel test effects.
+      
+      if (cnt++ == 10) {
+        break;
+      }
+      
       Thread.sleep( 2000 ); // wait 2 seconds...
       
       rsp = server.query( new SolrQuery( "id:id3") );
@@ -391,11 +400,18 @@ abstract public class SolrExampleTests e
     // now check that it comes out...
     rsp = server.query( new SolrQuery( "id:id4") );
 
-    if(rsp.getResults().getNumFound() == 0) {
-      // wait and try again for slower machines
+    cnt = 0;
+    while (rsp.getResults().getNumFound() == 0) {
+      // wait and try again for slower/busier machines
+      // and/or parallel test effects.
+      
+      if (cnt++ == 10) {
+        break;
+      }
+      
       Thread.sleep( 2000 ); // wait 2 seconds...
       
-      rsp = server.query( new SolrQuery( "id:id4") );
+      rsp = server.query( new SolrQuery( "id:id3") );
     }
     
     Assert.assertEquals( 1, rsp.getResults().getNumFound() );

Modified: lucene/dev/branches/lucene2621/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/lucene2621/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Sat Oct  1 03:04:53 2011
@@ -118,6 +118,10 @@ public abstract class SolrTestCaseJ4 ext
      long endNumOpens = SolrIndexSearcher.numOpens.get();
      long endNumCloses = SolrIndexSearcher.numCloses.get();
 
+     SolrIndexSearcher.numOpens.getAndSet(0);
+     SolrIndexSearcher.numCloses.getAndSet(0);
+
+     
      if (endNumOpens-numOpens != endNumCloses-numCloses) {
        String msg = "ERROR: SolrIndexSearcher opens=" + (endNumOpens-numOpens) + " closes=" + (endNumCloses-numCloses);
        log.error(msg);
@@ -136,6 +140,9 @@ public abstract class SolrTestCaseJ4 ext
   public static void endTrackingWriters() {
      long endNumOpens = SolrIndexWriter.numOpens.get();
      long endNumCloses = SolrIndexWriter.numCloses.get();
+     
+     SolrIndexWriter.numOpens.getAndSet(0);
+     SolrIndexWriter.numCloses.getAndSet(0);
 
      if (endNumOpens-numOpens != endNumCloses-numCloses) {
        String msg = "ERROR: SolrIndexWriter opens=" + (endNumOpens-numWriterOpens) + " closes=" + (endNumCloses-numWriterCloses);

Modified: lucene/dev/branches/lucene2621/solr/webapp/web/admin/analysis.jsp
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/webapp/web/admin/analysis.jsp?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/webapp/web/admin/analysis.jsp (original)
+++ lucene/dev/branches/lucene2621/solr/webapp/web/admin/analysis.jsp Sat Oct  1 03:04:53 2011
@@ -152,7 +152,7 @@
     if (qval!="" && highlight) {
       Reader reader = new StringReader(qval);
       Analyzer analyzer =  field.getType().getQueryAnalyzer();
-      TokenStream tstream = analyzer.reusableTokenStream(field.getName(),reader);
+      TokenStream tstream = analyzer.tokenStream(field.getName(), reader);
       TermToBytesRefAttribute bytesAtt = tstream.getAttribute(TermToBytesRefAttribute.class);
       tstream.reset();
       matches = new HashSet<BytesRef>();
@@ -204,7 +204,7 @@
          }
        }
 
-       TokenStream tstream = tfac.create(tchain.charStream(new StringReader(val)));
+       TokenStream tstream = tfac.create(tchain.initReader(new StringReader(val)));
        List<AttributeSource> tokens = getTokens(tstream);
        if (verbose) {
          writeHeader(out, tfac.getClass(), tfac.getArgs());
@@ -241,7 +241,7 @@
        }
 
      } else {
-       TokenStream tstream = analyzer.reusableTokenStream(field.getName(),new StringReader(val));
+       TokenStream tstream = analyzer.tokenStream(field.getName(), new StringReader(val));
        tstream.reset();
        List<AttributeSource> tokens = getTokens(tstream);
        if (verbose) {