Author: ronvoe122
Date: 2007-11-07 13:24:45-0800
New Revision: 10478
Modified:
trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java
Log:
[SCB1894] fixed search for empty attribute option values (was broken after restructuring in b22)
Thanks to Andrey Larionov.
Modified: trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java?view=diff&rev=10478&p1=trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java&p2=trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java&r1=10477&r2=10478
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java (original)
+++ trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java 2007-11-07 13:24:45-0800
@@ -907,19 +907,19 @@
if (dateString != null)
{
Matcher m = RELATIVE_DATE_PATTERN.matcher(dateString);
- if(m.matches())
- {
+ if(m.matches())
+ {
date = new Date();
String dateDifference = m.group(3);
String sign = m.group(2);
if(dateDifference!=null)
- {
+ {
long hours = Long.parseLong(dateDifference);
if (sign.equals("-")) hours = hours * -1;
date.setTime(date.getTime() + hours * 3600000 );
- }
- }
+ }
+ }
else if (dateString.indexOf(':') == -1)
{
String[] patterns = {
@@ -1171,15 +1171,8 @@
{
crit.addAlias(SORT_TABLE, AttributeValuePeer.TABLE_NAME);
- crit.addJoin(
- IssuePeer.ISSUE_ID,
- useAlias(SORT_TABLE, AttributeValuePeer.ISSUE_ID)
- + ( " AND "
- + useAlias(SORT_TABLE, AttributeValuePeer.DELETED) + " = 0 AND " +
- useAlias(SORT_TABLE, AttributeValuePeer.ATTRIBUTE_ID) + " = " + sortAttrId
- ).replace('.', DOT_REPLACEMENT_IN_JOIN_CONDITION ),
- Criteria.LEFT_JOIN
- );
+ joinAttributeValue(crit, SORT_TABLE, sortAttrId, Criteria.LEFT_JOIN);
+
crit.addSelectColumn(useAlias(SORT_TABLE, AttributeValuePeer.VALUE_ID));
String sortColumn;
@@ -1638,24 +1631,35 @@
List options = (List) options4Attribute.getValue();
Integer attributeId = (Integer) options4Attribute.getKey();
String alias = "av" + attributeId;
-
+
crit.addAlias(alias, AttributeValuePeer.TABLE_NAME);
- crit.addJoin(
- IssuePeer.ISSUE_ID,
- useAlias(alias, AttributeValuePeer.ISSUE_ID),
- Criteria.INNER_JOIN
- )
- .and(useAlias(alias, AttributeValuePeer.DELETED), false)
- .and(useAlias(alias, AttributeValuePeer.ATTRIBUTE_ID), attributeId)
- .andIn(useAlias(alias, AttributeValuePeer.OPTION_ID), options );
+ joinAttributeValue(crit, alias, attributeId, Criteria.LEFT_JOIN);
+
+ crit.andIn(useAlias(alias, AttributeValuePeer.OPTION_ID), options );
if (options.contains(NUMBERKEY_0)) //is 'empty' option selected?
{
- crit.or(useAlias(alias, AttributeValuePeer.OPTION_ID), Criteria.ISNULL);
+ crit.or(useAlias(alias, AttributeValuePeer.OPTION_ID), (Object) null, Criteria.ISNULL);
}
}
}
+ private void joinAttributeValue(Criteria crit, String alias, Integer attributeId, SqlEnum operator)
+ {
+ crit.addJoin(
+ IssuePeer.ISSUE_ID,
+ useAlias(alias, AttributeValuePeer.ISSUE_ID)
+ + (
+ " AND "
+ + useAlias(alias, AttributeValuePeer.DELETED)
+ + " = 0 AND "
+ + useAlias(alias, AttributeValuePeer.ATTRIBUTE_ID)
+ + " = " + attributeId
+ ).replace('.', DOT_REPLACEMENT_IN_JOIN_CONDITION ),
+ operator
+ );
+ }
+
/**
* Get a List of Issues that match the criteria given by this
* SearchIssue's searchWords and the quick search attribute values.
@@ -1819,4 +1823,4 @@
}
}
}
-}
\ No newline at end of file
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.