Author: ronvoe122
Date: 2006-12-28 07:33:29-0800
New Revision: 10404
Modified:
trunk/ (props changed)
trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java
trunk/src/java/org/tigris/scarab/actions/ReportIssue.java
trunk/src/java/org/tigris/scarab/actions/Search.java
trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java
trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java
trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java
Log:
Merged revisions 10378-10379 via svnmerge from
http://scarab.tigris.org/svn/scarab/branches/release/b21
........
r10378 | dabbous | 2006-12-11 00:34:12 +0100 (Mo, 11 Dez 2006) | 4 lines
added some finally blocks to avoid potential blocking of
the search module. further changed the wait for search engines
from "infinite wait" to "wait or 20 seconds max" to avoid freezing of
Scarab.
........
r10379 | dabbous | 2006-12-11 01:37:12 +0100 (Mo, 11 Dez 2006) | 2 lines
issue.close() was inappropriate at some places. partially reverted changes from
previos commit
........
Modified: trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java&p2=trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/ConfigureReport.java 2006-12-28 07:33:29-0800
@@ -85,6 +85,7 @@
import org.tigris.scarab.util.ScarabUtil;
import org.tigris.scarab.util.export.ExportFormat;
import org.tigris.scarab.util.word.IssueSearch;
+import org.tigris.scarab.util.word.IssueSearchFactory;
/**
* This class is responsible for report generation forms
@@ -249,9 +250,12 @@
// we are using an IssueSearch object to gather the data to
// create the ReportOptionAttribute objects.
-
- IssueSearch search = scarabR.getNewSearch();
- // Set intake properties
+ IssueSearch search = null;
+
+ try
+ {
+ search = scarabR.getNewSearch();
+ // Set intake properties
//Group searchGroup = intake.get("SearchIssue", search.getQueryKey());
//searchGroup.setProperties(search);
@@ -341,6 +345,19 @@
String msg = getLocalizedHeadingConfirmMessage(report, l10n);
scarabR.setConfirmMessage(msg);
+
+ }
+ catch(Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ if(search != null)
+ {
+ IssueSearchFactory.INSTANCE.notifyDone();
+ }
+ }
/*
//testing
Modified: trunk/src/java/org/tigris/scarab/actions/ReportIssue.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/ReportIssue.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/actions/ReportIssue.java&p2=trunk/src/java/org/tigris/scarab/actions/ReportIssue.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/ReportIssue.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/ReportIssue.java 2006-12-28 07:33:29-0800
@@ -233,50 +233,47 @@
boolean dupThresholdExceeded = false;
try
{
- search = IssueSearchFactory.INSTANCE.getInstance(
- issue, (ScarabUser)data.getUser());
- // remove special characters from the text attributes
- for (Iterator textAVs = search.getTextAttributeValues().iterator();
- textAVs.hasNext();)
- {
- AttributeValue av = (AttributeValue)textAVs.next();
- if (av.getAttribute().getAttributeType().getName().equals("date"))
- av.setValue(DateAttribute.internalDateFormat(av.getValue(), getLocalizationTool(context).get(L10NKeySet.ShortDatePattern)));
- String s = av.getValue();
- if (s != null && s.length() > 0)
- {
- StringTokenizer tokens = new StringTokenizer(s,
- ScarabConstants.INVALID_SEARCH_CHARACTERS);
- StringBuffer query = new StringBuffer(s.length() + 10);
- while (tokens.hasMoreTokens())
- {
- query.append(' ');
- query.append(tokens.nextToken());
+ search = IssueSearchFactory.INSTANCE.getInstance(issue, (ScarabUser)data.getUser());
+ // remove special characters from the text attributes
+ for (Iterator textAVs = search.getTextAttributeValues().iterator(); textAVs.hasNext();)
+ {
+ AttributeValue av = (AttributeValue)textAVs.next();
+ if (av.getAttribute().getAttributeType().getName().equals("date"))
+ av.setValue(DateAttribute.internalDateFormat(av.getValue(), getLocalizationTool(context).get(L10NKeySet.ShortDatePattern)));
+ String s = av.getValue();
+ if (s != null && s.length() > 0)
+ {
+ StringTokenizer tokens = new StringTokenizer(s,
+ ScarabConstants.INVALID_SEARCH_CHARACTERS);
+ StringBuffer query = new StringBuffer(s.length() + 10);
+ while (tokens.hasMoreTokens())
+ {
+ query.append(' ');
+ query.append(tokens.nextToken());
+ }
+ av.setValue(query.toString().toLowerCase());
}
- av.setValue(query.toString().toLowerCase());
}
- }
- // set the template to dedupe unless none exist, then skip
- // to final entry screen
- IteratorWithSize queryResults = search.getQueryResults();
- dupThresholdExceeded = (queryResults.size() > threshold);
- if (dupThresholdExceeded)
- {
- List matchingIssueIds = new ArrayList(maxResults);
- // limit the number of matching issues to maxResults
- for (int i = 0; queryResults.hasNext() && i <= maxResults; i++)
+ // set the template to dedupe unless none exist, then skip
+ // to final entry screen
+ IteratorWithSize queryResults = search.getQueryResults();
+ dupThresholdExceeded = (queryResults.size() > threshold);
+ if (dupThresholdExceeded)
+ {
+ List matchingIssueIds = new ArrayList(maxResults);
+ // limit the number of matching issues to maxResults
+ for (int i = 0; queryResults.hasNext() && i <= maxResults; i++)
+ {
+ matchingIssueIds.add(((QueryResult)queryResults.next()).getUniqueId());
+ }
+ context.put("issueList", matchingIssueIds);
+ template = "entry,Wizard2.vm";
+ }
+ else
{
- matchingIssueIds.add(
- ((QueryResult)queryResults.next()).getUniqueId());
+ template = nextTemplate;
}
- context.put("issueList", matchingIssueIds);
- template = "entry,Wizard2.vm";
- }
- else
- {
- template = nextTemplate;
- }
}
catch (MaxConcurrentSearchException e)
{
@@ -293,8 +290,8 @@
if (search != null)
{
search.close();
+ IssueSearchFactory.INSTANCE.notifyDone();
}
- IssueSearchFactory.INSTANCE.notifyDone();
}
setTarget(data, template);
Modified: trunk/src/java/org/tigris/scarab/actions/Search.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/Search.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/actions/Search.java&p2=trunk/src/java/org/tigris/scarab/actions/Search.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/Search.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/Search.java 2006-12-28 07:33:29-0800
@@ -92,6 +92,7 @@
import org.tigris.scarab.util.ScarabUtil;
import org.tigris.scarab.util.export.ExportFormat;
import org.tigris.scarab.util.word.IssueSearch;
+import org.tigris.scarab.util.word.IssueSearchFactory;
/**
* This class is responsible for searching.
@@ -1012,7 +1013,8 @@
IssueSearch search = scarabR.getPopulatedSearch();
if (search != null)
{
- setTarget(data, "UserList.vm");
+ setTarget(data, "UserList.vm");
+ IssueSearchFactory.INSTANCE.notifyDone();
}
}
Modified: trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&p2=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java 2006-12-28 07:33:29-0800
@@ -1986,6 +1986,13 @@
throw e; //EXCEPTION
}
}
+ finally
+ {
+ if(search != null)
+ {
+ IssueSearchFactory.INSTANCE.notifyDone();
+ }
+ }
return queryResults;
}
Modified: trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java&p2=trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java (original)
+++ trunk/src/java/org/tigris/scarab/util/word/IssueSearchFactory.java 2006-12-28 07:33:29-0800
@@ -112,12 +112,12 @@
int getMaxWait()
{
// TODO: FIXME: Should be avalon component.
- //int max = Turbine.getConfiguration()
+ // int max = Turbine.getConfiguration()
// .getInt("scarab.concurrent.search.wait", -1);
- int max = -1;
+ int max = 20; // if for any reason scarab search gets blocked we now get informed on the screen.
+ // instead of getting a frozen scarab. [HD]
max *= 1000;
- return max;
-
+ return max;
}
public IssueSearch getInstance(Issue issue, ScarabUser searcher)
@@ -169,7 +169,7 @@
}
else if (maxWait < 0)
{
- wait();
+ wait(); // no god idea becasue potential for frozen Scarab [HD]
}
else // maxWait == 0
{
Modified: trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java?view=diff&rev=10404&p1=trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java&p2=trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java&r1=10403&r2=10404
==============================================================================
--- trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java (original)
+++ trunk/src/java/org/tigris/scarab/xmlrpc/SimpleHandler.java 2006-12-28 07:33:29-0800
@@ -344,28 +344,33 @@
protected Vector findIssuesWithAttributeValue(final ScarabUser user,
final Attribute attribute, final String value) throws Exception
{
-
+ IssueSearch search = null;
final Vector retValue = new Vector();
- final IssueSearch search = IssueSearchFactory.INSTANCE.getInstance(
- MITListManager.getAllModulesAllIssueTypesList(user), user);
- final AttributeValue av = AttributeValue.getNewInstance(attribute,
- search);
- av.setValue(value);
- search.addAttributeValue(av);
- final Iterator queryresults = search.getQueryResults();
-
- while (queryresults.hasNext())
+ try
{
- final QueryResult qr = (QueryResult) queryresults.next();
- retValue.add(qr.getUniqueId());
- //log(" Adding to results "+qr.getUniqueId());
- }
+ search = IssueSearchFactory.INSTANCE.getInstance(
+ MITListManager.getAllModulesAllIssueTypesList(user), user);
+ final AttributeValue av = AttributeValue.getNewInstance(attribute, search);
+ av.setValue(value);
+ search.addAttributeValue(av);
+ final Iterator queryresults = search.getQueryResults();
- // close search
- search.close();
- IssueSearchFactory.INSTANCE.notifyDone();
- // return matching issues
- return retValue;
+ while (queryresults.hasNext())
+ {
+ final QueryResult qr = (QueryResult) queryresults.next();
+ retValue.add(qr.getUniqueId());
+ //log(" Adding to results "+qr.getUniqueId());
+ }
+ }
+ finally
+ {
+ if(search != null)
+ {
+ search.close();
+ IssueSearchFactory.INSTANCE.notifyDone();
+ }
+ }
+ return retValue; // return matching issues
}
}
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.