You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2011/03/09 10:18:57 UTC
svn commit: r1079707 - in /lucene/dev/trunk: lucene/
lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/
lucene/contrib/misc/src/java/org/apache/lucene/misc/
lucene/contrib/queries/src/java/org/apache/lucene/search/ lucene/contrib/q...
Author: uschindler
Date: Wed Mar 9 09:18:56 2011
New Revision: 1079707
URL: http://svn.apache.org/viewvc?rev=1079707&view=rev
Log:
LUCENE-2953: PriorityQueue's internal heap was made private final
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/Highlighter.java
lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/FuzzyLikeThisQuery.java
lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java
lucene/dev/trunk/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SuggestWordQueue.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiFieldsEnum.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiTermsEnum.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/HitQueue.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQueue.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/util/PriorityQueue.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/TestPriorityQueue.java
lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java
lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
lucene/dev/trunk/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/ShardDoc.java
lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java
lucene/dev/trunk/solr/src/java/org/apache/solr/spelling/suggest/Lookup.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Wed Mar 9 09:18:56 2011
@@ -202,6 +202,12 @@ API Changes
which takes Analyzer as a parameter, for easier customization by subclasses.
(Robert Muir)
+* LUCENE-2953: PriorityQueue's internal heap was made private, as subclassing
+ with generics can lead to ClassCastException. For advanced use (e.g. in Solr)
+ a method getHeapArray() was added to retrieve the internal heap array as a
+ non-generic Object[]. Also the initialize(int) function was moved into the
+ ctor. (Uwe Schindler, Yonik Seeley)
+
New features
* LUCENE-2604: Added RegexpQuery support to QueryParser. Regular expressions
Modified: lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/Highlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/Highlighter.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/Highlighter.java (original)
+++ lucene/dev/trunk/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/Highlighter.java Wed Mar 9 09:18:56 2011
@@ -524,7 +524,7 @@ class FragmentQueue extends PriorityQueu
{
public FragmentQueue(int size)
{
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java (original)
+++ lucene/dev/trunk/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java Wed Mar 9 09:18:56 2011
@@ -255,7 +255,7 @@ final class TotalTermFreqComparatorSortD
**/
final class TermStatsQueue extends PriorityQueue<TermStats> {
TermStatsQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/FuzzyLikeThisQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/FuzzyLikeThisQuery.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/FuzzyLikeThisQuery.java (original)
+++ lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/FuzzyLikeThisQuery.java Wed Mar 9 09:18:56 2011
@@ -335,7 +335,7 @@ public class FuzzyLikeThisQuery extends
private static class ScoreTermQueue extends PriorityQueue<ScoreTerm> {
public ScoreTermQueue(int size){
- initialize(size);
+ super(size);
}
/* (non-Javadoc)
Modified: lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java (original)
+++ lucene/dev/trunk/lucene/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java Wed Mar 9 09:18:56 2011
@@ -1006,7 +1006,7 @@ public final class MoreLikeThis {
*/
private static class FreqQ extends PriorityQueue<Object[]> {
FreqQ (int s) {
- initialize(s);
+ super(s);
}
@Override
Modified: lucene/dev/trunk/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SuggestWordQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SuggestWordQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SuggestWordQueue.java (original)
+++ lucene/dev/trunk/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SuggestWordQueue.java Wed Mar 9 09:18:56 2011
@@ -41,7 +41,7 @@ public final class SuggestWordQueue exte
* @param size The size of the queue
*/
public SuggestWordQueue (int size) {
- initialize(size);
+ super(size);
comparator = DEFAULT_COMPARATOR;
}
@@ -51,7 +51,7 @@ public final class SuggestWordQueue exte
* @param comparator The comparator.
*/
public SuggestWordQueue(int size, Comparator<SuggestWord> comparator){
- initialize(size);
+ super(size);
this.comparator = comparator;
}
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiFieldsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiFieldsEnum.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiFieldsEnum.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiFieldsEnum.java Wed Mar 9 09:18:56 2011
@@ -129,7 +129,7 @@ public final class MultiFieldsEnum exte
private final static class FieldMergeQueue extends PriorityQueue<FieldsEnumWithSlice> {
FieldMergeQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiTermsEnum.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiTermsEnum.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/MultiTermsEnum.java Wed Mar 9 09:18:56 2011
@@ -427,7 +427,7 @@ public final class MultiTermsEnum extend
private final static class TermMergeQueue extends PriorityQueue<TermsEnumWithSlice> {
Comparator<BytesRef> termComp;
TermMergeQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java Wed Mar 9 09:18:56 2011
@@ -56,15 +56,13 @@ public abstract class FieldValueHitQueue
public OneComparatorFieldValueHitQueue(SortField[] fields, int size)
throws IOException {
- super(fields);
+ super(fields, size);
SortField field = fields[0];
setComparator(0,field.getComparator(size, 0));
oneReverseMul = field.reverse ? -1 : 1;
reverseMul[0] = oneReverseMul;
-
- initialize(size);
}
/**
@@ -98,7 +96,7 @@ public abstract class FieldValueHitQueue
public MultiComparatorsFieldValueHitQueue(SortField[] fields, int size)
throws IOException {
- super(fields);
+ super(fields, size);
int numComparators = comparators.length;
for (int i = 0; i < numComparators; ++i) {
@@ -107,8 +105,6 @@ public abstract class FieldValueHitQueue
reverseMul[i] = field.reverse ? -1 : 1;
setComparator(i, field.getComparator(size, i));
}
-
- initialize(size);
}
@Override
@@ -133,7 +129,8 @@ public abstract class FieldValueHitQueue
}
// prevent instantiation and extension.
- private FieldValueHitQueue(SortField[] fields) {
+ private FieldValueHitQueue(SortField[] fields, int size) {
+ super(size);
// When we get here, fields.length is guaranteed to be > 0, therefore no
// need to check it again.
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/HitQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/HitQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/HitQueue.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/HitQueue.java Wed Mar 9 09:18:56 2011
@@ -63,17 +63,15 @@ final class HitQueue extends PriorityQue
* @see #getSentinelObject()
*/
HitQueue(int size, boolean prePopulate) {
- this.prePopulate = prePopulate;
- initialize(size);
+ super(size, prePopulate);
}
- // Returns null if prePopulate is false.
@Override
protected ScoreDoc getSentinelObject() {
// Always set the doc Id to MAX_VALUE so that it won't be favored by
// lessThan. This generally should not happen since if score is not NEG_INF,
// TopScoreDocCollector will always add the object to the queue.
- return !prePopulate ? null : new ScoreDoc(Integer.MAX_VALUE, Float.NEGATIVE_INFINITY);
+ return new ScoreDoc(Integer.MAX_VALUE, Float.NEGATIVE_INFINITY);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java Wed Mar 9 09:18:56 2011
@@ -432,7 +432,7 @@ class UnionDocsAndPositionsEnum extends
private static final class DocsQueue extends PriorityQueue<DocsAndPositionsEnum> {
DocsQueue(List<DocsAndPositionsEnum> docsEnums) throws IOException {
- initialize(docsEnums.size());
+ super(docsEnums.size());
Iterator<DocsAndPositionsEnum> i = docsEnums.iterator();
while (i.hasNext()) {
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQueue.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQueue.java Wed Mar 9 09:18:56 2011
@@ -21,7 +21,7 @@ import org.apache.lucene.util.PriorityQu
final class PhraseQueue extends PriorityQueue<PhrasePositions> {
PhraseQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java Wed Mar 9 09:18:56 2011
@@ -53,7 +53,7 @@ public class NearSpansUnordered extends
private class CellQueue extends PriorityQueue<SpansCell> {
public CellQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java Wed Mar 9 09:18:56 2011
@@ -145,7 +145,7 @@ public class SpanOrQuery extends SpanQue
private class SpanQueue extends PriorityQueue<Spans> {
public SpanQueue(int size) {
- initialize(size);
+ super(size);
}
@Override
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/util/PriorityQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/util/PriorityQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/util/PriorityQueue.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/util/PriorityQueue.java Wed Mar 9 09:18:56 2011
@@ -28,8 +28,52 @@ package org.apache.lucene.util;
*/
public abstract class PriorityQueue<T> {
private int size;
- private int maxSize;
- protected T[] heap;
+ private final int maxSize;
+ private final T[] heap;
+
+ public PriorityQueue(int maxSize) {
+ this(maxSize, true);
+ }
+
+ @SuppressWarnings("unchecked")
+ public PriorityQueue(int maxSize, boolean prepopulate) {
+ size = 0;
+ int heapSize;
+ if (0 == maxSize)
+ // We allocate 1 extra to avoid if statement in top()
+ heapSize = 2;
+ else {
+ if (maxSize == Integer.MAX_VALUE) {
+ // Don't wrap heapSize to -1, in this case, which
+ // causes a confusing NegativeArraySizeException.
+ // Note that very likely this will simply then hit
+ // an OOME, but at least that's more indicative to
+ // caller that this values is too big. We don't +1
+ // in this case, but it's very unlikely in practice
+ // one will actually insert this many objects into
+ // the PQ:
+ heapSize = Integer.MAX_VALUE;
+ } else {
+ // NOTE: we add +1 because all access to heap is
+ // 1-based not 0-based. heap[0] is unused.
+ heapSize = maxSize + 1;
+ }
+ }
+ heap = (T[]) new Object[heapSize]; // T is unbounded type, so this unchecked cast works always
+ this.maxSize = maxSize;
+
+ if (prepopulate) {
+ // If sentinel objects are supported, populate the queue with them
+ T sentinel = getSentinelObject();
+ if (sentinel != null) {
+ heap[1] = sentinel;
+ for (int i = 2; i < heap.length; i++) {
+ heap[i] = getSentinelObject();
+ }
+ size = maxSize;
+ }
+ }
+ }
/** Determines the ordering of objects in this priority queue. Subclasses
* must define this one method.
@@ -80,45 +124,6 @@ public abstract class PriorityQueue<T> {
return null;
}
- /** Subclass constructors must call this. */
- @SuppressWarnings("unchecked")
- protected final void initialize(int maxSize) {
- size = 0;
- int heapSize;
- if (0 == maxSize)
- // We allocate 1 extra to avoid if statement in top()
- heapSize = 2;
- else {
- if (maxSize == Integer.MAX_VALUE) {
- // Don't wrap heapSize to -1, in this case, which
- // causes a confusing NegativeArraySizeException.
- // Note that very likely this will simply then hit
- // an OOME, but at least that's more indicative to
- // caller that this values is too big. We don't +1
- // in this case, but it's very unlikely in practice
- // one will actually insert this many objects into
- // the PQ:
- heapSize = Integer.MAX_VALUE;
- } else {
- // NOTE: we add +1 because all access to heap is
- // 1-based not 0-based. heap[0] is unused.
- heapSize = maxSize + 1;
- }
- }
- heap = (T[]) new Object[heapSize]; // T is unbounded type, so this unchecked cast works always
- this.maxSize = maxSize;
-
- // If sentinel objects are supported, populate the queue with them
- T sentinel = getSentinelObject();
- if (sentinel != null) {
- heap[1] = sentinel;
- for (int i = 2; i < heap.length; i++) {
- heap[i] = getSentinelObject();
- }
- size = maxSize;
- }
- }
-
/**
* Adds an Object to a PriorityQueue in log(size) time. If one tries to add
* more objects than maxSize from initialize an
@@ -247,4 +252,11 @@ public abstract class PriorityQueue<T> {
}
heap[i] = node; // install saved node
}
+
+ /** This method returns the internal heap array as Object[].
+ * @lucene.internal
+ */
+ protected final Object[] getHeapArray() {
+ return (Object[]) heap;
+ }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/TestPriorityQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/TestPriorityQueue.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/TestPriorityQueue.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/TestPriorityQueue.java Wed Mar 9 09:18:56 2011
@@ -23,8 +23,7 @@ public class TestPriorityQueue extends L
private static class IntegerQueue extends PriorityQueue<Integer> {
public IntegerQueue(int count) {
- super();
- initialize(count);
+ super(count);
}
@Override
Modified: lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java (original)
+++ lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java Wed Mar 9 09:18:56 2011
@@ -124,7 +124,7 @@ public class QualityQueriesFinder {
private static class TermsDfQueue extends PriorityQueue<TermDf> {
TermsDfQueue (int maxSize) {
- initialize(maxSize);
+ super(maxSize);
}
@Override
protected boolean lessThan(TermDf tf1, TermDf tf2) {
Modified: lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java (original)
+++ lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java Wed Mar 9 09:18:56 2011
@@ -354,13 +354,17 @@ public class ConcurrentLRUCache<K,V> {
private static class PQueue<K,V> extends PriorityQueue<CacheEntry<K,V>> {
int myMaxSize;
+ final Object[] heap;
+
PQueue(int maxSz) {
- super.initialize(maxSz);
+ super(maxSz);
+ heap = getHeapArray();
myMaxSize = maxSz;
}
+ @SuppressWarnings("unchecked")
Iterable<CacheEntry<K,V>> getValues() {
- return Collections.unmodifiableCollection(Arrays.asList(heap));
+ return (Iterable) Collections.unmodifiableCollection(Arrays.asList(heap));
}
@Override
@@ -370,12 +374,13 @@ public class ConcurrentLRUCache<K,V> {
}
// necessary because maxSize is private in base class
+ @SuppressWarnings("unchecked")
public CacheEntry<K,V> myInsertWithOverflow(CacheEntry<K,V> element) {
if (size() < myMaxSize) {
add(element);
return null;
- } else if (size() > 0 && !lessThan(element, heap[1])) {
- CacheEntry<K,V> ret = heap[1];
+ } else if (size() > 0 && !lessThan(element, (CacheEntry<K,V>) heap[1])) {
+ CacheEntry<K,V> ret = (CacheEntry<K,V>) heap[1];
heap[1] = element;
updateTop();
return ret;
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Wed Mar 9 09:18:56 2011
@@ -586,7 +586,7 @@ public class LukeRequestHandler extends
public TermHistogram histogram;
TopTermQueue(int size) {
- initialize(size);
+ super(size);
histogram = new TermHistogram();
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/ShardDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/ShardDoc.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/ShardDoc.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/ShardDoc.java Wed Mar 9 09:18:56 2011
@@ -82,6 +82,7 @@ class ShardFieldSortedHitQueue extends P
protected List<String> fieldNames = new ArrayList<String>();
public ShardFieldSortedHitQueue(SortField[] fields, int size) {
+ super(size);
final int n = fields.length;
comparators = new Comparator[n];
this.fields = new SortField[n];
@@ -107,8 +108,6 @@ class ShardFieldSortedHitQueue extends P
//System.out.println("%%%%%%%%%%%%%%%%%% got "+fields[i].getType() +" for "+ fieldname +" fields[i].getReverse(): "+fields[i].getReverse());
}
-
- initialize(size);
}
@Override
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java Wed Mar 9 09:18:56 2011
@@ -114,10 +114,7 @@ class PerSegmentSingleValuedFaceting {
// now merge the per-segment results
- PriorityQueue<SegFacet> queue = new PriorityQueue<SegFacet>() {
- {
- initialize(leaves.length);
- }
+ PriorityQueue<SegFacet> queue = new PriorityQueue<SegFacet>(leaves.length) {
@Override
protected boolean lessThan(SegFacet a, SegFacet b) {
return a.tempBR.compareTo(b.tempBR) < 0;
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/spelling/suggest/Lookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/spelling/suggest/Lookup.java?rev=1079707&r1=1079706&r2=1079707&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/spelling/suggest/Lookup.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/spelling/suggest/Lookup.java Wed Mar 9 09:18:56 2011
@@ -39,7 +39,7 @@ public abstract class Lookup {
public static final class LookupPriorityQueue extends PriorityQueue<LookupResult> {
public LookupPriorityQueue(int size) {
- initialize(size);
+ super(size);
}
@Override