Scarab commit: svn commit: r10404 - trunk: . src/java/org/tigris/scarab/actions src/java/org/tigris/scarab/tools src/java/org/tigris/scarab/util/word src/java/org/tigris/scarab/xmlrpc

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
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.