From c0f5bdcdb29608532656c71c219680eccd4aad09 Mon Sep 17 00:00:00 2001 From: yzhou Date: Tue, 21 Apr 2015 22:45:35 +0100 Subject: fixed some bugs in windows server --- src/org/semanticweb/karma2/MyKarma.java | 64 +++++++++++++-------------------- 1 file changed, 25 insertions(+), 39 deletions(-) (limited to 'src/org/semanticweb') diff --git a/src/org/semanticweb/karma2/MyKarma.java b/src/org/semanticweb/karma2/MyKarma.java index 60938df..b2b4352 100644 --- a/src/org/semanticweb/karma2/MyKarma.java +++ b/src/org/semanticweb/karma2/MyKarma.java @@ -121,30 +121,19 @@ public class MyKarma { private Set answerCQ_multiThread(ConjunctiveQuery q, AnswerTuples soundAnswerTuples, boolean isGround) { Set> set = new HashSet>(); ExtendedConjunctiveQuery qext = ExtendedConjunctiveQuery.computeExtension(q); - TupleIterator tupleIterator; + TupleIterator tupleIterator = null; + ExecutorService es = null; try { tupleIterator = store.compileQuery(qext.toString(), prefixes, parameters); - } catch (JRDFStoreException e) { - e.printStackTrace(); - return null; - } - ExecutorService es = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); - AnswerTuple tuple; - try { - try { - for (long multi = tupleIterator.open(); multi != 0; multi = tupleIterator.getNext()) { - Map match = new HashMap(); - for (int i = 0; i < qext.getNumberOfAnswerTerms(); i++) { - match.put(qext.getAnswerTerm(i), tupleIterator.getGroundTerm(i)); - } - if ((tuple = contains(qext, soundAnswerTuples, match)) != null) - set.add(es.submit(new Spurious(qext, match, tuple, isGround))); + es = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + AnswerTuple tuple; + for (long multi = tupleIterator.open(); multi != 0; multi = tupleIterator.getNext()) { + Map match = new HashMap(); + for (int i = 0; i < qext.getNumberOfAnswerTerms(); i++) { + match.put(qext.getAnswerTerm(i), tupleIterator.getGroundTerm(i)); } - } catch (JRDFStoreException e) { - e.printStackTrace(); - return null; - } finally { - tupleIterator.dispose(); + if ((tuple = contains(qext, soundAnswerTuples, match)) != null) + set.add(es.submit(new Spurious(qext, match, tuple, isGround))); } Set result = new HashSet(set.size()); while(!set.isEmpty()) { @@ -166,28 +155,28 @@ public class MyKarma { } } return result; + } catch (JRDFStoreException e1) { + e1.printStackTrace(); + return null; } finally { - es.shutdown(); + if (tupleIterator != null) tupleIterator.dispose(); + if (es != null) es.shutdown(); } } private Set answerCQ_singleThread(ConjunctiveQuery q, AnswerTuples soundAnswerTuples, boolean isGround) { ExtendedConjunctiveQuery qext = ExtendedConjunctiveQuery.computeExtension(q); - TupleIterator tupleIterator; - try { - tupleIterator = store.compileQuery(qext.toString(), prefixes, parameters); - } catch (JRDFStoreException e) { - e.printStackTrace(); - return null; - } - boolean useBushyValue = parameters.m_useBushy, allAnswersInRootValue = parameters.m_allAnswersInRoot; - parameters.m_useBushy = false; - parameters.m_allAnswersInRoot = false; - try { Set result = new HashSet(); - AnswerTuple tuple; + + TupleIterator tupleIterator = null; try { + tupleIterator = store.compileQuery(qext.toString(), prefixes, parameters); + parameters.m_useBushy = false; + parameters.m_allAnswersInRoot = false; + + AnswerTuple tuple; + for (long multi = tupleIterator.open(); multi != 0; multi = tupleIterator.getNext()) { Map match = new HashMap(); for (int i = 0; i < qext.getNumberOfAnswerTerms(); i++) { @@ -200,14 +189,11 @@ public class MyKarma { e.printStackTrace(); return null; } finally { - tupleIterator.dispose(); - } - return result; - } finally { + if (tupleIterator != null) tupleIterator.dispose(); parameters.m_useBushy = useBushyValue; parameters.m_allAnswersInRoot = allAnswersInRootValue; } - + return result; } private AnswerTuple contains(ExtendedConjunctiveQuery qext, AnswerTuples answerTuples, Map match) { -- cgit v1.2.3