You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2014/02/24 19:35:33 UTC

svn commit: r1571386 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/core/ lucene/core/src/java/org/apache/lucene/index/ lucene/core/src/java/org/apache/lucene/util/ lucene/core/src/test/org/apache/lucene/util/ lucene/facet/ lucene/facet/src/jav...

Author: jpountz
Date: Mon Feb 24 18:35:32 2014
New Revision: 1571386

URL: http://svn.apache.org/r1571386
Log:
LUCENE-5463: RUE.(human)sizeOf(Object) is now a forbidden API.

Added:
    lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/rue.txt
      - copied unchanged from r1571384, lucene/dev/trunk/lucene/tools/forbiddenApis/rue.txt
Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/common-build.xml   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/core/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/build.xml
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java
    lucene/dev/branches/branch_4x/lucene/facet/   (props changed)
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java
    lucene/dev/branches/branch_4x/lucene/memory/   (props changed)
    lucene/dev/branches/branch_4x/lucene/memory/build.xml
    lucene/dev/branches/branch_4x/lucene/suggest/   (props changed)
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellLookup.java
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TSTLookup.java
    lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TernaryTreeNode.java
    lucene/dev/branches/branch_4x/lucene/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/lucene/test-framework/build.xml
    lucene/dev/branches/branch_4x/lucene/tools/   (props changed)
    lucene/dev/branches/branch_4x/lucene/tools/build.xml

Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Mon Feb 24 18:35:32 2014
@@ -24,6 +24,11 @@ Test Framework
 
 * LUCENE-5449: Rename _TestUtil and _TestHelper to remove the leading _.
 
+Build
+
+* LUCENE-5463: RamUsageEstimator.(human)sizeOf(Object) is now a forbidden API.
+  (Adrien Grand, Robert Muir)
+
 ======================= Lucene 4.7.0 =======================
 
 New Features

Modified: lucene/dev/branches/branch_4x/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/common-build.xml?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/common-build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/common-build.xml Mon Feb 24 18:35:32 2014
@@ -2195,6 +2195,7 @@ ${ant.project.name}.test.dependencies=${
   <property name="forbidden-base-excludes" value=""/>
   <property name="forbidden-tests-excludes" value=""/>
   <property name="forbidden-sysout-excludes" value=""/>
+  <property name="forbidden-rue-excludes" value=""/>
   
   <target name="-install-forbidden-apis" unless="forbidden-apis.loaded" depends="ivy-availability-check,ivy-configure">
     <ivy:cachepath organisation="de.thetaphi" module="forbiddenapis" revision="1.4"
@@ -2214,9 +2215,10 @@ ${ant.project.name}.test.dependencies=${
     </path>
   </target>  
 
-  <target name="check-forbidden-apis" depends="-check-forbidden-base,-check-forbidden-tests,-check-forbidden-sysout" description="Check forbidden API calls in compiled class files"/>
+  <target name="check-forbidden-apis" depends="-check-forbidden-all,-check-forbidden-tests,-check-forbidden-sources" description="Check forbidden API calls in compiled class files"/>
   
-  <target name="-check-forbidden-base" depends="-init-forbidden-apis,compile-core,compile-test">
+  <!-- applies to both source and test code -->
+  <target name="-check-forbidden-all" depends="-init-forbidden-apis,compile-core,compile-test">
     <forbidden-apis internalRuntimeForbidden="true" classpathref="forbidden-apis.allclasses.classpath">
       <bundledSignatures name="jdk-unsafe-${javac.target}"/>
       <bundledSignatures name="jdk-deprecated-${javac.target}"/>
@@ -2226,12 +2228,22 @@ ${ant.project.name}.test.dependencies=${
     </forbidden-apis>
   </target>
   
+  <!-- applies to only test code -->
   <target name="-check-forbidden-tests" depends="-init-forbidden-apis,compile-test">
     <forbidden-apis signaturesFile="${common.dir}/tools/forbiddenApis/tests.txt" classpathref="forbidden-apis.allclasses.classpath"> 
       <fileset dir="${build.dir}/classes/test" excludes="${forbidden-tests-excludes}"/>
     </forbidden-apis>
   </target>
-    
+ 
+  <!-- applies to only source code -->
+  <target name="-check-forbidden-sources" depends="-init-forbidden-apis,compile-core,-check-forbidden-sysout,-check-forbidden-rue" />
+
+  <target name="-check-forbidden-rue" depends="-init-forbidden-apis,compile-core">
+    <forbidden-apis signaturesFile="${common.dir}/tools/forbiddenApis/rue.txt" classpathref="forbidden-apis.allclasses.classpath">
+      <fileset dir="${build.dir}/classes/java" excludes="${forbidden-rue-excludes}"/>
+    </forbidden-apis>
+  </target>
+
   <target name="-check-forbidden-sysout" depends="-init-forbidden-apis,compile-core">
     <forbidden-apis bundledSignatures="jdk-system-out" classpathref="forbidden-apis.allclasses.classpath">
       <fileset dir="${build.dir}/classes/java" excludes="${forbidden-sysout-excludes}"/>

Modified: lucene/dev/branches/branch_4x/lucene/core/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/build.xml?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/core/build.xml Mon Feb 24 18:35:32 2014
@@ -30,6 +30,12 @@
     org/apache/lucene/util/PrintStreamInfoStream.class
   "/>
 
+  <property name="forbidden-rue-excludes" value="
+    org/apache/lucene/search/FieldCache$CacheEntry.class
+    org/apache/lucene/util/RamUsageEstimator.class
+    org/apache/lucene/search/CachingWrapperFilter.class
+  "/>
+
   <import file="../common-build.xml"/>
 
   <property name="moman.commit-hash" value="5c5c2a1e4dea" />

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java Mon Feb 24 18:35:32 2014
@@ -47,6 +47,15 @@ import org.apache.lucene.util.BytesRef;
  */
 public class FilterAtomicReader extends AtomicReader {
 
+  /** Get the wrapped instance by <code>reader</code> as long as this reader is
+   *  an intance of {@link FilterAtomicReader}.  */
+  public static AtomicReader unwrap(AtomicReader reader) {
+    while (reader instanceof FilterAtomicReader) {
+      reader = ((FilterAtomicReader) reader).in;
+    }
+    return reader;
+  }
+
   /** Base class for filtering {@link Fields}
    *  implementations. */
   public static class FilterFields extends Fields {

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java Mon Feb 24 18:35:32 2014
@@ -337,6 +337,11 @@ public final class RamUsageEstimator {
     return alignObjectSize((long) NUM_BYTES_ARRAY_HEADER + (long) NUM_BYTES_DOUBLE * arr.length);
   }
 
+  /** Returns the size in bytes of the String object. */
+  public static long sizeOf(String s) {
+    return shallowSizeOf(s) + alignObjectSize(NUM_BYTES_ARRAY_HEADER + NUM_BYTES_CHAR * s.length());
+  }
+
   /** 
    * Estimates the RAM usage by the given object. It will
    * walk the object tree and sum up all referenced objects.

Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java Mon Feb 24 18:35:32 2014
@@ -21,6 +21,8 @@ import static org.apache.lucene.util.Ram
 
 import java.util.Random;
 
+import com.carrotsearch.randomizedtesting.generators.RandomStrings;
+
 public class TestRamUsageEstimator extends LuceneTestCase {
   public void testSanity() {
     assertTrue(sizeOf(new String("test string")) > shallowSizeOfInstance(String.class));
@@ -84,6 +86,10 @@ public class TestRamUsageEstimator exten
       double[] array = new double[rnd.nextInt(1024)];
       assertEquals(sizeOf(array), sizeOf((Object) array));
     }
+    {
+      String s = RandomStrings.randomUnicodeOfCodepointLength(random(), random().nextInt(10));
+      assertEquals(sizeOf(s), sizeOf((Object) s));
+    }
   }
   
   public void testReferenceSize() {

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java Mon Feb 24 18:35:32 2014
@@ -136,13 +136,21 @@ public class CachedOrdinalsReader extend
         this.ordinals = ords;
       }
     }
+
+    public long ramBytesUsed() {
+      long mem = RamUsageEstimator.shallowSizeOf(this) + RamUsageEstimator.sizeOf(offsets);
+      if (offsets != ordinals) {
+        mem += RamUsageEstimator.sizeOf(ordinals);
+      }
+      return mem;
+    }
   }
 
   /** How many bytes is this cache using? */
   public synchronized long ramBytesUsed() {
     long bytes = 0;
     for(CachedOrds ords : ordsCache.values()) {
-      bytes += RamUsageEstimator.sizeOf(ords);
+      bytes += ords.ramBytesUsed();
     }
 
     return bytes;

Modified: lucene/dev/branches/branch_4x/lucene/memory/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/memory/build.xml?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/memory/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/memory/build.xml Mon Feb 24 18:35:32 2014
@@ -19,6 +19,10 @@
 
 <project name="memory" default="default">
 
+  <property name="forbidden-rue-excludes" value="
+    org/apache/lucene/index/memory/MemoryIndex.class
+  "/>
+
   <description>
     Single-document in-memory index implementation
   </description>

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java Mon Feb 24 18:35:32 2014
@@ -44,11 +44,13 @@ import org.apache.lucene.index.AtomicRea
 import org.apache.lucene.index.BinaryDocValues;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.FilterAtomicReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.MultiDocValues;
 import org.apache.lucene.index.NumericDocValues;
+import org.apache.lucene.index.SegmentReader;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.sorter.Sorter;
@@ -647,7 +649,16 @@ public class AnalyzingInfixSuggester ext
 
   @Override
   public long sizeInBytes() {
-    return RamUsageEstimator.sizeOf(this);
+    long mem = RamUsageEstimator.shallowSizeOf(this);
+    if (searcher != null) {
+      for (AtomicReaderContext context : searcher.getIndexReader().leaves()) {
+        AtomicReader reader = FilterAtomicReader.unwrap(context.reader());
+        if (reader instanceof SegmentReader) {
+          mem += ((SegmentReader) context.reader()).ramBytesUsed();
+        }
+      }
+    }
+    return mem;
   }
 
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java Mon Feb 24 18:35:32 2014
@@ -291,7 +291,15 @@ public class FSTCompletionLookup extends
 
   @Override
   public long sizeInBytes() {
-    return RamUsageEstimator.sizeOf(this);
+    long mem = RamUsageEstimator.shallowSizeOf(this) + RamUsageEstimator.shallowSizeOf(normalCompletion) + RamUsageEstimator.shallowSizeOf(higherWeightsCompletion);
+    if (normalCompletion != null) {
+      mem += normalCompletion.getFST().sizeInBytes();
+    }
+    if (higherWeightsCompletion != null && (normalCompletion == null || normalCompletion.getFST() != higherWeightsCompletion.getFST())) {
+      // the fst should be shared between the 2 completion instances, don't count it twice
+      mem += higherWeightsCompletion.getFST().sizeInBytes();
+    }
+    return mem;
   }
 
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellLookup.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellLookup.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellLookup.java Mon Feb 24 18:35:32 2014
@@ -202,7 +202,7 @@ public class JaspellLookup extends Looku
   /** Returns byte size of the underlying TST. */
   @Override
   public long sizeInBytes() {
-    return RamUsageEstimator.sizeOf(trie);
+    return trie.sizeInBytes();
   }
   
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java Mon Feb 24 18:35:32 2014
@@ -40,6 +40,7 @@ import java.util.Vector;
 import java.util.zip.GZIPInputStream;
 
 import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.RamUsageEstimator;
 
 /**
  * Implementation of a Ternary Search Trie, a data structure for storing
@@ -75,7 +76,7 @@ public class JaspellTernarySearchTrie {
     protected Object data;
 
     /** The relative nodes. */
-    protected TSTNode[] relatives = new TSTNode[4];
+    protected final TSTNode[] relatives = new TSTNode[4];
 
     /** The char used in the split. */
     protected char splitchar;
@@ -92,6 +93,17 @@ public class JaspellTernarySearchTrie {
       this.splitchar = splitchar;
       relatives[PARENT] = parent;
     }
+
+    public long sizeInBytes() {
+      long mem = RamUsageEstimator.shallowSizeOf(this) + RamUsageEstimator.shallowSizeOf(relatives);
+      for (TSTNode node : relatives) {
+        if (node != null) {
+          mem += node.sizeInBytes();
+        }
+      }
+      return mem;
+    }
+
   }
 
   /**
@@ -873,4 +885,14 @@ public class JaspellTernarySearchTrie {
             sortKeysNumReturnValues, sortKeysResult);
   }
 
+  /** Return an approximate memory usage for this trie. */
+  public long sizeInBytes() {
+    long mem = RamUsageEstimator.shallowSizeOf(this);
+    final TSTNode root = getRoot();
+    if (root != null) {
+      mem += root.sizeInBytes();
+    }
+    return mem;
+  }
+
 }

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TSTLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TSTLookup.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TSTLookup.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TSTLookup.java Mon Feb 24 18:35:32 2014
@@ -217,7 +217,11 @@ public class TSTLookup extends Lookup {
   /** Returns byte size of the underlying TST */
   @Override
   public long sizeInBytes() {
-    return RamUsageEstimator.sizeOf(autocomplete);
+    long mem = RamUsageEstimator.shallowSizeOf(this);
+    if (root != null) {
+      mem += root.sizeInBytes();
+    }
+    return mem;
   }
   
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TernaryTreeNode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TernaryTreeNode.java?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TernaryTreeNode.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/tst/TernaryTreeNode.java Mon Feb 24 18:35:32 2014
@@ -1,5 +1,7 @@
 package org.apache.lucene.search.suggest.tst;
 
+import org.apache.lucene.util.RamUsageEstimator;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -42,4 +44,22 @@ public class TernaryTreeNode {
    */
   String token;
   Object val;
+
+  long sizeInBytes() {
+    long mem = RamUsageEstimator.shallowSizeOf(this);
+    if (loKid != null) {
+      mem += loKid.sizeInBytes();
+    }
+    if (eqKid != null) {
+      mem += eqKid.sizeInBytes();
+    }
+    if (hiKid != null) {
+      mem += hiKid.sizeInBytes();
+    }
+    if (token != null) {
+      mem += RamUsageEstimator.sizeOf(token);
+    }
+    mem += RamUsageEstimator.shallowSizeOf(val);
+    return mem;
+  }
 }

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/build.xml?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/build.xml Mon Feb 24 18:35:32 2014
@@ -51,6 +51,7 @@
     </forbidden-apis>
   </target>
   <target name="-check-forbidden-sysout"/>
+  <target name="-check-forbidden-rue"/>
 
   <target name="javadocs-core" depends="javadocs"/>
   <target name="javadocs" depends="init,javadocs-lucene-core,javadocs-lucene-codecs">

Modified: lucene/dev/branches/branch_4x/lucene/tools/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/build.xml?rev=1571386&r1=1571385&r2=1571386&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/build.xml Mon Feb 24 18:35:32 2014
@@ -39,6 +39,7 @@
   <!-- redefine the forbidden apis to be no-ops -->
   <target name="-check-forbidden-tests"/>
   <target name="-check-forbidden-sysout"/>
+  <target name="-check-forbidden-rue"/>
 
   <!--  
       Specialize compile-core to not depend on clover, to exclude a