diff --git a/source/java/org/alfresco/web/bean/SearchContext.java b/source/java/org/alfresco/web/bean/SearchContext.java
index 357782371a..b026a5574b 100644
--- a/source/java/org/alfresco/web/bean/SearchContext.java
+++ b/source/java/org/alfresco/web/bean/SearchContext.java
@@ -76,6 +76,7 @@ public final class SearchContext implements Serializable
private static final String ELEMENT_MODE = "mode";
private static final String ELEMENT_TEXT = "text";
private static final String ELEMENT_SEARCH = "search";
+ private static final String ELEMENT_QUERY = "query";
/** Search mode constants */
public final static int SEARCH_ALL = 0;
@@ -135,7 +136,7 @@ public final class SearchContext implements Serializable
String fullTextQuery = null;
String nameAttrQuery = null;
- if (text.length() >= minimum)
+ if (text.length() != 0 && text.length() >= minimum)
{
if (text.indexOf(' ') == -1)
{
@@ -234,7 +235,7 @@ public final class SearchContext implements Serializable
for (QName qname : queryAttributes.keySet())
{
String value = queryAttributes.get(qname).trim();
- if (value.length() >= minimum)
+ if (value.length() != 0 && value.length() >= minimum)
{
String escapedName = Repository.escapeQName(qname);
attributeQuery.append(" +@").append(escapedName)
@@ -312,7 +313,7 @@ public final class SearchContext implements Serializable
// match against FOLDER type
String folderTypeQuery = " TYPE:\"{" + NamespaceService.CONTENT_MODEL_1_0_URI + "}folder\" ";
- if (text.length() >= minimum)
+ if (text.length() != 0 && text.length() >= minimum)
{
// text query for name and/or full text specified
switch (mode)
@@ -611,6 +612,7 @@ public final class SearchContext implements Serializable
*
* String
*
+ * CDATA
*
*
*/
@@ -673,6 +675,14 @@ public final class SearchContext implements Serializable
.addCDATA(this.queryFixedValues.get(valueName));
}
+ // outputing the full lucene query may be useful for some situations
+ Element query = root.addElement(ELEMENT_QUERY);
+ String queryString = buildQuery(0);
+ if (queryString != null)
+ {
+ query.addCDATA(queryString);
+ }
+
StringWriter out = new StringWriter(1024);
XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());
writer.setWriter(out);