[Mulgara-svn] r2024 - in trunk/src/jar: query/java/org/mulgara/query query/java/org/mulgara/query/filter/arithmetic query/java/org/mulgara/query/filter/value resolver/java/org/mulgara/resolver resolver-relational/java/org/mulgara/resolver/relational resolver-store/java/org/mulgara/resolver/store resolver-xsd/java/org/mulgara/resolver/xsd server-rmi/java/org/mulgara/server/rmi tuples/java/org/mulgara/store/tuples
pag at mulgara.org
pag at mulgara.org
Mon Sep 12 18:23:58 UTC 2011
Author: pag
Date: 2011-09-12 18:23:58 +0000 (Mon, 12 Sep 2011)
New Revision: 2024
Modified:
trunk/src/jar/query/java/org/mulgara/query/GraphOperation.java
trunk/src/jar/query/java/org/mulgara/query/Query.java
trunk/src/jar/query/java/org/mulgara/query/filter/arithmetic/BinaryOperation.java
trunk/src/jar/query/java/org/mulgara/query/filter/value/ExternalFn.java
trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java
trunk/src/jar/resolver-store/java/org/mulgara/resolver/store/StatementStoreResolution.java
trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java
trunk/src/jar/resolver/java/org/mulgara/resolver/LocalQueryResolver.java
trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java
trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java
trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraXAResourceContext.java
trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResource.java
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResourceWrapperXAResource.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/DefaultRowComparator.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/OrderedAppend.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/PartialColumnComparator.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/TuplesOperations.java
Log:
Fixed up usage of equals, plus some flow control around exception handling
Modified: trunk/src/jar/query/java/org/mulgara/query/GraphOperation.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/GraphOperation.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/query/java/org/mulgara/query/GraphOperation.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -168,7 +168,7 @@
public boolean equals(Object m) {
if (!(m instanceof GraphOperation)) return false;
- if ((m == null) || !m.getClass().equals(getClass())) return false;
+ if ((m == null) || m.getClass() !=getClass()) return false;
if (m == this) return true;
Class<?> type = m.getClass();
@@ -205,13 +205,13 @@
*/
private void flattenExpression(Set<GraphExpression> expressions, Class<?> type) {
- if (lhs.getClass().equals(type)) {
+ if (lhs.getClass() == type) {
((GraphOperation)lhs).flattenExpression(expressions, type);
} else {
expressions.add(lhs);
}
- if (rhs.getClass().equals(type)) {
+ if (rhs.getClass() == type) {
((GraphOperation)rhs).flattenExpression(expressions, type);
} else {
expressions.add(rhs);
Modified: trunk/src/jar/query/java/org/mulgara/query/Query.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/Query.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/query/java/org/mulgara/query/Query.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -423,6 +423,13 @@
return answer.equals(query.answer);
}
+ public int hashCode() {
+ return variableList.hashCode() + 3 * graphExpression.hashCode() +
+ 5 * constraintExpression.hashCode() + 7 * havingConstraint.hashCode() +
+ 11 * ((orderList == null) ? 0 : orderList.hashCode()) +
+ 13 * ((limit == null) ? 0 : limit.hashCode()) +
+ 17 * offset + answer.hashCode();
+ }
/**
* Close this {@link Query}, and the underlying {@link Answer} objects.
Modified: trunk/src/jar/query/java/org/mulgara/query/filter/arithmetic/BinaryOperation.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/arithmetic/BinaryOperation.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/arithmetic/BinaryOperation.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -71,11 +71,10 @@
* @throws QueryException The values of one of the operands could not be resolved.
* @see org.mulgara.query.filter.value.NumericExpression#getNumber()
*/
- @SuppressWarnings("unchecked")
public Number getNumber() throws QueryException {
Number left = lhs.getNumber();
Number right = rhs.getNumber();
- NumberOps op = opMap.get(new ClassPair(left, right));
+ NumberOps<? extends Number, ? extends Number> op = opMap.get(new ClassPair(left, right));
if (op == null) throw new AssertionError("Missing entry in operation map");
return doOperation(op, left, right);
}
@@ -87,8 +86,7 @@
* @param right The second operand
* @return The arithmetic result of applying the operation to the parameters
*/
- @SuppressWarnings("unchecked")
- abstract Number doOperation(NumberOps ops, Number left, Number right);
+ abstract Number doOperation(NumberOps<? extends Number, ? extends Number> ops, Number left, Number right);
/** Stores classes as an integrated pair for mapping pairs of Numbers to their appropriate functions */
static class ClassPair {
@@ -125,7 +123,7 @@
/** @return <code>true</code> iff o is a class pair containing equal elements */
public boolean equals(Object o) {
if (o == null || (!(o instanceof ClassPair))) return false;
- return left.equals(((ClassPair)o).left) && right.equals(((ClassPair)o).right);
+ return left == ((ClassPair)o).left && right == ((ClassPair)o).right;
}
}
Modified: trunk/src/jar/query/java/org/mulgara/query/filter/value/ExternalFn.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/value/ExternalFn.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/value/ExternalFn.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -199,7 +199,7 @@
}
throw new QueryException("Error executing external function", e);
}
- return (result.getClass().equals(URI.class)) ? new IRI((URI)result) : TypedLiteral.newLiteral(result);
+ return (result.getClass() == URI.class) ? new IRI((URI)result) : TypedLiteral.newLiteral(result);
}
/**
@@ -243,12 +243,14 @@
for (XPathFunctionResolver resolver: FunctionResolverRegistry.getFunctionResolverRegistry()) {
try {
result = resolver.resolveFunction(fnName, argCount);
+ if (result != null) {
+ fnCache.put(label, result);
+ break;
+ }
} catch (Exception e) {
// this resolver is unable to handle the given QName
}
- if (result != null) break;
}
- if (result != null) fnCache.put(label, result);
}
return result;
}
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/LocalQueryResolver.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/LocalQueryResolver.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/LocalQueryResolver.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -86,9 +86,9 @@
/** Logger. */
private static final Logger logger = Logger.getLogger(LocalQueryResolver.class.getName());
- private DatabaseOperationContext operationContext;
+ private final DatabaseOperationContext operationContext;
- private ResolverSession resolverSession;
+ private final ResolverSession resolverSession;
private boolean distinctQuery = false;
@@ -329,9 +329,13 @@
}
result = TuplesOperations.project(result, variables, query.isDistinct());
- } finally {
- tmp.close();
+ } catch (TuplesException t) {
+ try {
+ tmp.close();
+ } catch (TuplesException e) { /* Already throwing an exception. Ignore. */ }
+ throw t;
}
+ tmp.close();
}
return result;
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -609,7 +609,7 @@
} catch (Throwable th) {
try {
errorReport("Error aborting enlistable resource", th);
- } catch (Throwable ignore) { }
+ } catch (Throwable ignore) { /* Unable to log. Would normally log, so ignore. */ }
}
}
}
@@ -771,24 +771,28 @@
factory.releaseMutex();
}
- protected void finalize() {
- debugReport("GC-finalize");
- if (state != State.FINISHED && state != State.FAILED) {
- errorReport("Finalizing incomplete transaction - aborting...", null);
- try {
- abortTransaction(new MulgaraTransactionException("Transaction finalized while still valid"));
- } catch (Throwable th) {
- errorReport("Attempt to abort transaction from finalize failed", th);
+ protected void finalize() throws Throwable {
+ try {
+ debugReport("GC-finalize");
+ if (state != State.FINISHED && state != State.FAILED) {
+ errorReport("Finalizing incomplete transaction - aborting...", null);
+ try {
+ abortTransaction(new MulgaraTransactionException("Transaction finalized while still valid"));
+ } catch (Throwable th) {
+ errorReport("Attempt to abort transaction from finalize failed", th);
+ }
}
+
+ if (state != State.FAILED && (inuse != 0 || using != 0)) {
+ errorReport("Reference counting error in transaction", null);
+ }
+
+ if (transaction != null) {
+ errorReport("Transaction not terminated properly", null);
+ }
+ } finally {
+ super.finalize();
}
-
- if (state != State.FAILED && (inuse != 0 || using != 0)) {
- errorReport("Reference counting error in transaction", null);
- }
-
- if (transaction != null) {
- errorReport("Transaction not terminated properly", null);
- }
}
private final void report(String desc) {
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -251,8 +251,8 @@
throw new MulgaraTransactionException("Attempting set auto-commit false in failed session");
} else {
// AutoCommit off -> off === no-op. Log info.
- if (logger.isInfoEnabled()) {
- logger.info("Attempt to set autocommit false twice\n" + new StackTrace());
+ if (logger.isDebugEnabled()) {
+ logger.debug("Attempt to set autocommit false twice\n" + new StackTrace());
}
}
}
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraXAResourceContext.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraXAResourceContext.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraXAResourceContext.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -254,7 +254,7 @@
factory.acquireMutex(0, XAException.class);
try {
if (logger.isDebugEnabled()) logger.debug("Performing isSameRM");
- if (!xares.getClass().equals(MulgaraXAResource.class)) {
+ if (xares.getClass() != MulgaraXAResource.class) {
return false;
} else {
// Based on X/Open-XA-TP section 3.2 I believe a 'Resource Manager
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -155,11 +155,15 @@
// Methods implementing the RowComparator interface
//
+ public boolean equals(Object o) {
+ return (o instanceof RowComparator) && equals((RowComparator)o);
+ }
+
/**
- * METHOD TO DO
+ * Test if this is equal to another RowComparator.
*
- * @param r PARAMETER TO DO
- * @return RETURNED VALUE TO DO
+ * @param r The other comparator
+ * @return true if both comparators are the same
*/
public boolean equals(RowComparator r)
{
Modified: trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java
===================================================================
--- trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -90,7 +90,7 @@
public class RelationalResolution extends AbstractTuples implements Resolution {
/** Logger */
- private static Logger logger = Logger.getLogger(RelationalResolution.class);
+ private static final Logger logger = Logger.getLogger(RelationalResolution.class);
/** The constraint this instance resolves */
private final RelationalConstraint constraint;
@@ -254,13 +254,16 @@
if (object == this) {
return true;
}
- if (this.getClass().equals(object.getClass())) {
+ if (object != null && this.getClass() == object.getClass()) {
RelationalResolution lhs = (RelationalResolution)object;
return lhs.defn == this.defn && lhs.constraint == this.constraint;
}
return false;
}
+ public int hashCode() {
+ return defn.hashCode() * 7;
+ }
public Constraint getConstraint() {
return constraint;
@@ -309,9 +312,17 @@
result.add(resolveInstance(head, constraint, conn, defn));
}
+ this.result = null;
this.result = TuplesOperations.join(result);
- } finally {
close(result.toArray(new Tuples[result.size()]));
+ } catch (TuplesException e) {
+ if (this.result == null) {
+ // A non-null result means that the exception occured during the close
+ try {
+ close(result.toArray(new Tuples[result.size()]));
+ } catch (TuplesException e2) { /* Already throwing an exception */ }
+ }
+ throw e;
}
}
@@ -429,27 +440,39 @@
Answer answer;
answer = new RelationalAnswer(query, conn);
- Tuples lt, st;
+ Tuples lt = null, st = null;
try {
lt = new LocalizedTuples(resolverSession, answer, false);
- } finally {
- answer.close();
+ } catch (IllegalArgumentException e) {
+ try {
+ answer.close();
+ } catch (TuplesException e2) { /* Already throwing an exception. Ignore. */ }
+ throw e;
}
+ answer.close();
try {
st = TuplesOperations.sort(lt);
- } finally {
- lt.close();
+ } catch (TuplesException e) {
+ try {
+ lt.close();
+ } catch (TuplesException e2) { /* Already throwing an exception. Ignore. */ }
+ throw e;
}
+ lt.close();
// Combine result with additional properties via join.
additionalProperties.add(st);
- Tuples jt;
+ Tuples jt = null;
try {
jt = TuplesOperations.join(additionalProperties);
- } finally {
- st.close();
+ } catch (TuplesException e) {
+ try {
+ st.close();
+ } catch (TuplesException e2) { /* Already throwing an exception. Ignore. */ }
+ throw e;
}
+ st.close();
return jt;
}
Modified: trunk/src/jar/resolver-store/java/org/mulgara/resolver/store/StatementStoreResolution.java
===================================================================
--- trunk/src/jar/resolver-store/java/org/mulgara/resolver/store/StatementStoreResolution.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver-store/java/org/mulgara/resolver/store/StatementStoreResolution.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -173,6 +173,7 @@
private static int calculateRowCardinality(Constraint constraint, StatementStore store) throws TuplesException {
Tuples countTuples = null;
+ int cardinality = 0;
try {
countTuples = store.findTuples(toGraphTuplesIndex(constraint.getElement(0)),
@@ -188,19 +189,26 @@
}
switch (rowCount) {
case 0:
- return Cursor.ZERO;
+ cardinality = Cursor.ZERO;
+ break;
case 1:
- return Cursor.ONE;
+ cardinality = Cursor.ONE;
+ break;
default:
- return Cursor.MANY;
+ cardinality = Cursor.MANY;
}
} catch (StatementStoreException es) {
throw new TuplesException("Error accessing StatementStore", es);
- } finally {
+ } catch (TuplesException te) {
if (countTuples != null) {
- countTuples.close();
+ try {
+ countTuples.close();
+ } catch (TuplesException e) { /* Already throwing an exception, so ignore */ }
}
+ throw te;
}
+ countTuples.close();
+ return cardinality;
}
private static long toGraphTuplesIndex(ConstraintElement constraintElement) throws TuplesException {
@@ -279,7 +287,7 @@
}
prefix = new long[4];
- List variableList = new ArrayList();
+ List<Variable> variableList = new ArrayList<Variable>();
variableToColumn = new int[4];
int variableIndex = 0;
// Note: baseDefinition is in 'constraint-order'
@@ -560,7 +568,7 @@
}
public Annotation getAnnotation(Class<? extends Annotation> annotation) {
- if (annotation.equals(DefinablePrefixAnnotation.class)) {
+ if (annotation == DefinablePrefixAnnotation.class) {
return new DefinablePrefixAnnotation() {
public void definePrefix(Set<Variable> boundVars) throws TuplesException {
boolean[] bound = new boolean[4];
Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -125,16 +125,16 @@
assert constraintConjunction != null;
- List elements = constraintConjunction.getElements();
- List newElements = new ArrayList(elements.size());
+ List<ConstraintExpression> elements = constraintConjunction.getElements();
+ List<ConstraintExpression> newElements = new ArrayList<ConstraintExpression>(elements.size());
boolean modified = false;
// This map is keyed on Variable instances, and maps to the cumulative
// IntervalConstraint assocated with that variable
- Map map = new HashMap();
+ Map<Variable,IntervalConstraint> map = new HashMap<Variable,IntervalConstraint>();
- for (Iterator i = elements.iterator(); i.hasNext();) {
- ConstraintExpression element = (ConstraintExpression) i.next();
+ for (Iterator<ConstraintExpression> i = elements.iterator(); i.hasNext();) {
+ ConstraintExpression element = i.next();
// Recursively transform the element
ConstraintExpression transformedElement = transformExpression(context, element);
@@ -156,7 +156,7 @@
newElements.add(element);
} else {
IntervalConstraint interval = (IntervalConstraint) element;
- IntervalConstraint cumulative = (IntervalConstraint) map.get(interval.getVariable());
+ IntervalConstraint cumulative = map.get(interval.getVariable());
if (cumulative == null) {
cumulative = interval;
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResource.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResource.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResource.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -22,12 +22,8 @@
import java.rmi.Remote;
import java.rmi.RemoteException;
import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
-// Third party packages
-import org.apache.log4j.Category;
-
// Local packages
/**
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResourceWrapperXAResource.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResourceWrapperXAResource.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteXAResourceWrapperXAResource.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -39,7 +39,7 @@
*/
class RemoteXAResourceWrapperXAResource implements XAResource, ResourceManagerInstanceAdaptor {
/** logger */
- private static Logger logger = Logger.getLogger(RemoteXAResourceWrapperXAResource.class.getName());
+ private static final Logger logger = Logger.getLogger(RemoteXAResourceWrapperXAResource.class.getName());
/**
* The wrapped instance.
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/DefaultRowComparator.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/DefaultRowComparator.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/DefaultRowComparator.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -79,6 +79,13 @@
return INSTANCE;
}
+ /**
+ * This class is stateless, so equality is just a type check.
+ */
+ public boolean equals(Object o) {
+ return o.getClass() == DefaultRowComparator.class;
+ }
+
//
// Methods implementing RowComparator interface
//
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -512,6 +512,13 @@
nrVars = rhs.getNumberOfVariables() - commonVars.size();
return right.compare(reduce(first, rhsOffset, nrVars), reduce(second, rhsOffset, nrVars));
}
+
+ public boolean equals(Object o) {
+ return o instanceof MergedComparator &&
+ left.equals(((MergedComparator)o).left) &&
+ right.equals(((MergedComparator)o).right);
+ }
+
}
/**
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/OrderedAppend.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/OrderedAppend.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/OrderedAppend.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -75,7 +75,7 @@
/**
* The propositions to conjoin.
*/
- protected final Tuples[] operands;
+ protected Tuples[] operands;
/**
* The return value of the {@link #beforeFirst} method.
@@ -138,19 +138,6 @@
}
/**
- * CONSTRUCTOR OrderedAppend TO DO
- *
- * @param orderedAppend PARAMETER TO DO
- * @throws TuplesException EXCEPTION TO DO
- */
- private OrderedAppend(OrderedAppend orderedAppend) throws TuplesException {
-
- operands = clone(orderedAppend.operands);
- setVariables(orderedAppend.getVariables());
- prefix = orderedAppend.prefix;
- }
-
- /**
* Gets the ColumnValue attribute of the OrderedAppend object
*
* @param column PARAMETER TO DO
@@ -398,7 +385,7 @@
public Annotation getAnnotation(Class<? extends Annotation> annotation) {
- if (annotation.equals(DefinablePrefixAnnotation.class) && prefixDefinable) {
+ if (annotation == DefinablePrefixAnnotation.class && prefixDefinable) {
return new DefinablePrefixAnnotation() {
public void definePrefix(Set<Variable> boundVars) throws TuplesException {
for (int i = 0; i < operands.length; i++) {
@@ -423,15 +410,12 @@
* @return RETURNED VALUE TO DO
*/
public Object clone() {
+ OrderedAppend oa = (OrderedAppend)super.clone();
+ oa.operands = clone(operands);
+ oa.setVariables(getVariables());
+ oa.prefix = prefix;
- try {
-
- return new OrderedAppend(this);
- }
- catch (TuplesException e) {
-
- throw new RuntimeException("Unable to clone", e);
- }
+ return oa;
}
/**
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/PartialColumnComparator.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/PartialColumnComparator.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/PartialColumnComparator.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -123,4 +123,10 @@
// We have a duplicate row
return 0; // indicate equality
}
+
+ public boolean equals(Object o) {
+ return (o instanceof PartialColumnComparator) &&
+ Arrays.equals(varMap, ((PartialColumnComparator)o).varMap);
+ }
+
}
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/TuplesOperations.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/TuplesOperations.java 2011-09-12 18:23:05 UTC (rev 2023)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/TuplesOperations.java 2011-09-12 18:23:58 UTC (rev 2024)
@@ -41,7 +41,6 @@
import org.mulgara.query.filter.Inverse;
import org.mulgara.query.filter.RDFTerm;
import org.mulgara.resolver.spi.*;
-import org.mulgara.util.StackTrace;
/**
* TQL answer. An answer is a set of solutions, where a solution is a mapping of
@@ -621,7 +620,7 @@
// If the call to getRowCardinality returns > 0 then beforeFirst,
// and then next should return true too.
logger.error("No rows but getRowCardinality returned Cursor.ONE: (class=" +
- tuples.getClass().getName() + ") " + tuples.toString() + "\n" + new StackTrace());
+ tuples.getClass().getName() + ") " + tuples.toString());
throw new AssertionError("No rows but getRowCardinality returned Cursor.ONE");
}
iter.remove();
@@ -790,8 +789,10 @@
}
if (minTuples == null) {
- logger.info("Unable to meet ordering constraints with bindings: " + boundVars);
- for (Tuples op: operands) logger.info(" Operand: " + tuplesSummary(op));
+ if (logger.isDebugEnabled()) {
+ logger.debug("Unable to meet ordering constraints with bindings: " + boundVars);
+ for (Tuples op: operands) logger.debug(" Operand: " + tuplesSummary(op));
+ }
throw new TuplesException("Unable to meet ordering constraints");
}
More information about the Mulgara-svn
mailing list