the closing of fetching thread has been updated

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/speciesdiscovery@70778 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2013-03-04 17:01:08 +00:00
parent fe583ee0af
commit a8a203bb1c
4 changed files with 38 additions and 11 deletions

View File

@ -824,6 +824,11 @@ public class SearchController {
searchBorderLayoutPanel.getSpeciesCenterPanel().setMaskGridPanel(mask);
if(mask)
searchBorderLayoutPanel.getSpeciesWestPanel().mask();
else
searchBorderLayoutPanel.getSpeciesWestPanel().unmask();
searchBorderLayoutPanel.getSpeciesNorthPanel().activeButtonSearch(!mask);
}

View File

@ -238,13 +238,13 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
CloseableIterator<ResultElement> input = taxonomyService.searchByQuery(query);
//DEBUG
System.out.println("returned input stream by service...");
logger.trace("returned input stream by service...");
// System.out.println("service return iterator searched...");
logger.trace("service return iterator searched...");
SearchResultType resultType = QueryUtil.getQueryResultType(query);
CloseableIterator<FetchingElement> output = IteratorChainBuilder.buildChain(input, resultType, aslSession);
FetchingSessionUtil.createFetchingSession(output, resultType, aslSession);
logger.trace("creating fetching session completed!");
return resultType;
} catch (Exception e) {
@ -286,6 +286,7 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
if(daoTaxonomyRow!=null)
daoTaxonomyRow.removeAll();
logger.trace("delete all row from Dao's - completed");
} catch (Exception e) {
logger.error("Error in delete all row");
throw new Exception("Error in delete all row" + e.getCause(), e);
@ -624,7 +625,7 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
* {@inheritDoc}
*/
public void stopSearchWithoutRemove() throws SearchServiceException {
logger.trace("stopSearch()");
logger.trace("stopSearch without Remove");
ASLSession session = getASLSession();
//we safely get the session if exists
@ -644,7 +645,7 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
*/
@Override
public void stopSearch() throws SearchServiceException {
logger.trace("stopSearch()");
logger.trace("stopSearch");
ASLSession session = getASLSession();
FetchingSession<? extends FetchingElement> searchSession = SessionUtil.getCurrentSearchSession(session);

View File

@ -104,7 +104,7 @@ public class SpeciesService {
logger.trace("searchByFilters searchTerm: "+searchTerm+ " usearchFilters: "+searchFilters);
try {
System.out.println("query building...");
logger.trace("query building...");
String query = QueryBuilder.buildQuery(searchTerm, searchType, searchFilters);
// System.out.println("query build - OK " + query);
logger.trace("query build - OK " + query);
@ -146,7 +146,7 @@ public class SpeciesService {
public CloseableIterator<ResultElement> searchByQuery(String query) throws SearchServiceException {
logger.trace("searchByQuery query: "+query);
logger.trace("search by Query - query is: "+query);
// System.out.println("searchByQuery query: "+query);
try {

View File

@ -6,6 +6,7 @@ package org.gcube.portlets.user.speciesdiscovery.server.session;
import java.io.Closeable;
import java.io.IOException;
import java.sql.SQLException;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.gcube.portlets.user.speciesdiscovery.server.stream.Aggregator;
@ -61,10 +62,30 @@ public class FetchingSession<T extends FetchingElement> implements Closeable {
public void close() throws IOException
{
logger.trace("fetcherThread close...");
fetcher.close();
// logger.trace("###fetcherThread close - OK");
logger.trace("###fetcherThread close - OK");
new Thread(){
@Override
public void run() {
try {
Long startTime = System.currentTimeMillis();
logger.trace("##new thread run for closing old fetcher... time: "+startTime);
fetcher.close();
//logger.trace("###fetcherThread close - OK");
Long endTime = System.currentTimeMillis() - startTime;
String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
logger.trace("##old fetcher has been closed.. in " + time);
} catch (IOException e) {
logger.error("An error occurred in fetcher Thread close ",e);
e.printStackTrace();
}
};
}.start();
}
public boolean isComplete()