Update of /var/cvs/src/org/mmbase/storage/search/implementation
In directory james.mmbase.org:/tmp/cvs-serv4744
Modified Files:
BasicSearchQuery.java
Log Message:
Made List-members final. This avoids creating and recreating them, and
simplifies matters a bit
See also:
http://cvs.mmbase.org/viewcvs/src/org/mmbase/storage/search/implementation
Index: BasicSearchQuery.java
===================================================================
RCS file:
/var/cvs/src/org/mmbase/storage/search/implementation/BasicSearchQuery.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- BasicSearchQuery.java 19 Aug 2008 22:03:12 -0000 1.48
+++ BasicSearchQuery.java 30 Dec 2008 16:28:08 -0000 1.49
@@ -23,7 +23,7 @@
* Basic implementation.
*
* @author Rob van Maris
- * @version $Id: BasicSearchQuery.java,v 1.48 2008/08/19 22:03:12 michiel Exp $
+ * @version $Id: BasicSearchQuery.java,v 1.49 2008/12/30 16:28:08 michiel Exp $
* @since MMBase-1.7
*/
public class BasicSearchQuery implements SearchQuery, Cloneable {
@@ -40,10 +40,10 @@
/** Offset property. */
private int offset = SearchQuery.DEFAULT_OFFSET;
- private List<Step> steps = new ArrayList<Step>();
- private List<Step> unmodifiableSteps =
Collections.unmodifiableList(steps); // getSteps is called very very often
- protected List<StepField> fields = new ArrayList<StepField>();
- private List<SortOrder> sortOrders = new ArrayList<SortOrder>();
+ private final List<Step> steps = new ArrayList<Step>();
+ private final List<Step> unmodifiableSteps =
Collections.unmodifiableList(steps); // getSteps is called very very often
+ protected final List<StepField> fields = new ArrayList<StepField>();
+ private final List<SortOrder> sortOrders = new ArrayList<SortOrder>();
/** Constraint.. */
private Constraint constraint = null;
@@ -78,7 +78,6 @@
this(false);
}
-
public final static int COPY_NORMAL = 0;
public final static int COPY_AGGREGATING = 1;
public final static int COPY_WITHOUTFIELDS = 2;
@@ -143,21 +142,7 @@
protected void copySteps(SearchQuery q) {
MMBase mmb = MMBase.getMMBase();
- steps = new ArrayList<Step>(q.getSteps().size());
- /*
- // if using .clear here:
-
- org.mmbase.framework.FrameworkException: Index: 0, Size: 0
- java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
- at java.util.ArrayList.RangeCheck(ArrayList.java:546)
- at java.util.ArrayList.get(ArrayList.java:321)
- at java.util.Collections$UnmodifiableList.get(Collections.java:1155)
- at
org.mmbase.bridge.jsp.taglib.containers.ListRelationsContainerTag.getRelatedQuery(ListRelationsContainerTag.java:81)
- at
org.mmbase.bridge.jsp.taglib.ListRelationsTag.doStartTag(ListRelationsTag.java:120)
- at
org.apache.jsp.mmbase.components.x.change_jspx._jspx_meth_mm_005flistrelations_005f0(change_jspx.java:1600)
-
- Which is a bit suspicious
- */
+ steps.clear();
Iterator<Step> i = q.getSteps().iterator();
while(i.hasNext()) {
Step step = i.next();
@@ -196,11 +181,11 @@
}
}
//log.info("copied steps " + q.getSteps() + " became " + steps);
- unmodifiableSteps = Collections.unmodifiableList(steps);
+ //unmodifiableSteps = Collections.unmodifiableList(steps);
hasChangedHashcode = true;
}
protected void copyFields(SearchQuery q) {
- fields = new ArrayList<StepField>(q.getFields().size());
+ fields.clear();
MMBase mmb = MMBase.getMMBase();
for (StepField field : q.getFields()) {
Step step = field.getStep();
@@ -217,7 +202,7 @@
//log.info("copied fields " + q.getFields() + " became " + fields);
}
protected void copySortOrders(SearchQuery q) {
- sortOrders = new ArrayList<SortOrder>(q.getSortOrders().size());
+ sortOrders.clear();
MMBase mmb = MMBase.getMMBase();
for (SortOrder sortOrder : q.getSortOrders()) {
StepField field = sortOrder.getField();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs