[Mulgara-svn] r2026 - in trunk/src/jar: content-mbox/java/org/mulgara/content/mbox/parser/config content-mbox/java/org/mulgara/content/mbox/parser/model content-mp3/java/org/mulgara/content/mp3/parser content-rlog/java/org/mulgara/content/rlog content-rlog/java/org/mulgara/krule/rlog/ast demo-mp3/java/org/mulgara/demo/mp3/swing query/java/org/mulgara/query/functions resolver/java/org/mulgara/resolver resolver-distributed/java/org/mulgara/resolver/distributed/remote resolver-gis/java/org/mulgara/resolver/gis resolver-gis/java/org/mulgara/resolver/gis/tools resolver-null/java/org/mulgara/resolver/nullres resolver-spi/java/org/mulgara/resolver/spi resolver-xsd/java/org/mulgara/resolver/xsd tuples-hybrid/java/org/mulgara/store/bdb
pag at mulgara.org
pag at mulgara.org
Wed Sep 14 19:05:04 UTC 2011
Author: pag
Date: 2011-09-14 19:05:04 +0000 (Wed, 14 Sep 2011)
New Revision: 2026
Modified:
trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java
trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/model/ModelFactory.java
trunk/src/jar/content-mp3/java/org/mulgara/content/mp3/parser/ParserFactory.java
trunk/src/jar/content-rlog/java/org/mulgara/content/rlog/RlogStructure.java
trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalStatement.java
trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/StringLiteral.java
trunk/src/jar/demo-mp3/java/org/mulgara/demo/mp3/swing/IconLoader.java
trunk/src/jar/query/java/org/mulgara/query/functions/MulgaraXFunctionGroup.java
trunk/src/jar/resolver-distributed/java/org/mulgara/resolver/distributed/remote/StatementSetFactory.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/LocalGISCoordinate.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java
trunk/src/jar/resolver-null/java/org/mulgara/resolver/nullres/NullResolution.java
trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/EmptyResolution.java
trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/Bound.java
trunk/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java
trunk/src/jar/tuples-hybrid/java/org/mulgara/store/bdb/DbTuples.java
Log:
Updates for fortify compliance
Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -78,15 +78,12 @@
*/
public static ConfigManager getInstance() {
- if (instance == null) {
+ synchronized (ConfigManager.class) {
- synchronized (ConfigManager.class) {
+ if (instance == null) {
- if (instance == null) {
-
- // Create the configuration manager
- instance = new ConfigManager();
- }
+ // Create the configuration manager
+ instance = new ConfigManager();
}
}
Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/model/ModelFactory.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/model/ModelFactory.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/model/ModelFactory.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -86,15 +86,12 @@
*/
public static ModelFactory getInstance() throws FactoryException {
- if (instance == null) {
+ synchronized (ModelFactory.class) {
- synchronized (ModelFactory.class) {
+ if (instance == null) {
- if (instance == null) {
-
- // Create the factory
- instance = new ModelFactory();
- }
+ // Create the factory
+ instance = new ModelFactory();
}
}
Modified: trunk/src/jar/content-mp3/java/org/mulgara/content/mp3/parser/ParserFactory.java
===================================================================
--- trunk/src/jar/content-mp3/java/org/mulgara/content/mp3/parser/ParserFactory.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-mp3/java/org/mulgara/content/mp3/parser/ParserFactory.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -86,15 +86,12 @@
*/
public static ParserFactory getInstance() throws FactoryException {
- if (instance == null) {
+ synchronized (ParserFactory.class) {
- synchronized (ParserFactory.class) {
+ if (instance == null) {
- if (instance == null) {
-
- // Create the factory
- instance = new ParserFactory();
- }
+ // Create the factory
+ instance = new ParserFactory();
}
}
Modified: trunk/src/jar/content-rlog/java/org/mulgara/content/rlog/RlogStructure.java
===================================================================
--- trunk/src/jar/content-rlog/java/org/mulgara/content/rlog/RlogStructure.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-rlog/java/org/mulgara/content/rlog/RlogStructure.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -50,7 +50,7 @@
public class RlogStructure {
/** Logger. */
- private static Logger logger = Logger.getLogger(RlogStructure.class.getName());
+ private static final Logger logger = Logger.getLogger(RlogStructure.class.getName());
/** The rdf:type URI. */
private static final URIReference TYPE = new URIReferenceImpl(RDF.TYPE);
@@ -627,7 +627,8 @@
if (refType.equals(Krule.URI_REF)) {
// writing a URI
Node value = getPropertyValue(n, RDF_VALUE);
- if (value == null || !(value instanceof URIReference)) throw new IllegalArgumentException("Bad Krule structure. URIReference came back with the wrong type: " + value + "(" + value.getClass().getName() + ")");
+ if (value == null) throw new IllegalArgumentException("Bad Krule structure. null value for: " + n);
+ if (!(value instanceof URIReference)) throw new IllegalArgumentException("Bad Krule structure. URIReference came back with the wrong type: " + value + "(" + value.getClass().getName() + ")");
return namespaceString((URIReference)value);
} else if (refType.equals(Krule.VARIABLE)) {
@@ -657,7 +658,8 @@
if (refType.equals(Krule.URI_REF)) {
// writing a URI
Node value = getPropertyValue(n, RDF_VALUE);
- if (value == null || !(value instanceof URIReference)) throw new IllegalArgumentException("Bad Krule structure. URIReference came back with the wrong type: " + value + "(" + value.getClass().getName() + ")");
+ if (value == null) throw new IllegalArgumentException("Bad Krule structure. Null value for: " + n);
+ if (!(value instanceof URIReference)) throw new IllegalArgumentException("Bad Krule structure. URIReference came back with the wrong type: " + value + "(" + value.getClass().getName() + ")");
return value.equals(TYPE);
}
return false;
Modified: trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalStatement.java
===================================================================
--- trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalStatement.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalStatement.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -14,6 +14,7 @@
import java.util.Collections;
import java.util.List;
+import static org.mulgara.util.ObjectUtil.eq;
/**
* Represents a canonicalized form of a statement. Used for comparing statements
@@ -62,7 +63,7 @@
public boolean equals(Object o) {
if (!(o instanceof CanonicalStatement)) return false;
CanonicalStatement s = (CanonicalStatement)o;
- return equal(head, s.head) && body.equals(s.body);
+ return eq(head, s.head) && body.equals(s.body);
}
@@ -97,15 +98,4 @@
head.renameVariables(vc);
}
-
- /**
- * Performs an equality comparison for values that may be null.
- * @param a The first object to be compared. May be null.
- * @param b The second object to be compared. May be null.
- * @return <code>true</code> if both a and b are null, or if they are equal.
- * <code>false</code> otherwise.
- */
- private static final boolean equal(Object a, Object b) {
- return a == null ? b == null : a.equals(b);
- }
}
Modified: trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/StringLiteral.java
===================================================================
--- trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/StringLiteral.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/StringLiteral.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -21,6 +21,7 @@
import org.mulgara.krule.rlog.rdf.Literal;
import org.mulgara.krule.rlog.rdf.RDFNode;
import org.mulgara.krule.rlog.rdf.URIReference;
+import static org.mulgara.util.ObjectUtil.eq;
/**
* A quoted string in the AST.
@@ -73,7 +74,7 @@
public boolean equals(Object o) {
if (o instanceof StringLiteral) {
StringLiteral ol = (StringLiteral)o;
- return value.equals(ol.value) && nullEq(lang, ol.lang) && nullEq(type, ol.type);
+ return value.equals(ol.value) && eq(lang, ol.lang) && eq(type, ol.type);
}
return false;
}
Modified: trunk/src/jar/demo-mp3/java/org/mulgara/demo/mp3/swing/IconLoader.java
===================================================================
--- trunk/src/jar/demo-mp3/java/org/mulgara/demo/mp3/swing/IconLoader.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/demo-mp3/java/org/mulgara/demo/mp3/swing/IconLoader.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -62,6 +62,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(IconLoader.class.getName());
//---------------------- List of Predefined Icon Images ----------------------
@@ -105,11 +106,9 @@
* @return IconLoader
*/
private static IconLoader getInstance() {
- if (instance == null) {
- synchronized (IconLoader.class) {
- if (instance == null) {
- instance = new IconLoader();
- }
+ synchronized (IconLoader.class) {
+ if (instance == null) {
+ instance = new IconLoader();
}
}
return instance;
Modified: trunk/src/jar/query/java/org/mulgara/query/functions/MulgaraXFunctionGroup.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/functions/MulgaraXFunctionGroup.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/query/java/org/mulgara/query/functions/MulgaraXFunctionGroup.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -37,7 +37,6 @@
* @author Paul Gearon
* @copyright © 2009 <a href="http://www.duraspace.org/">DuraSpace</a>
*/
- at SuppressWarnings("unchecked")
public class MulgaraXFunctionGroup implements MulgaraFunctionGroup {
/** The prefix for the mulgarax: namespace */
@@ -81,7 +80,7 @@
* @see http://www.w3.org/TR/xpath-functions/#func-matches
*/
static private class System extends MulgaraFunction {
- public Object eval(List args) throws XPathFunctionException {
+ public Object eval(List<?> args) throws XPathFunctionException {
String str = (String)args.get(0);
StringBuilder outputString = new StringBuilder();
try {
@@ -107,7 +106,7 @@
static private class System2 extends MulgaraFunction {
public String getName() { return "system/2"; }
public int getArity() { return 2; }
- public Object eval(List args) throws XPathFunctionException {
+ public Object eval(List<?> args) throws XPathFunctionException {
// get the command and arguments
String str = (String)args.get(0);
// get the data to feed to stdin
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -102,11 +102,19 @@
resolveModelExpression(context, ((GraphOperation)modelExpr).getLHS(), constraint);
Tuples rhs = ConstraintOperations.
resolveModelExpression(context, ((GraphOperation)modelExpr).getRHS(), constraint);
+ Tuples result = null;
try {
- return TuplesOperations.append(lhs, rhs);
- } finally {
+ result = TuplesOperations.append(lhs, rhs);
lhs.close();
+ lhs = null;
rhs.close();
+ return result;
+ } finally {
+ if (lhs != null) {
+ // result != null means failed during lhs.close()
+ if (result == null) lhs.close();
+ rhs.close();
+ } // else failed during rhs.close()
}
}
}),
@@ -117,11 +125,19 @@
resolveModelExpression(context, ((GraphOperation)modelExpr).getLHS(), constraint);
Tuples rhs = ConstraintOperations.
resolveModelExpression(context, ((GraphOperation)modelExpr).getRHS(), constraint);
+ Tuples result = null;
try {
- return TuplesOperations.join(lhs, rhs);
- } finally {
+ result = TuplesOperations.join(lhs, rhs);
lhs.close();
+ lhs = null;
rhs.close();
+ return result;
+ } catch (TuplesException e) {
+ if (lhs != null) { // haven't closed anything yet
+ if (result == null) lhs.close(); // if result is set then exception due to lhs.close
+ rhs.close();
+ } // else means failed during rhs.close
+ throw e;
}
}
}),
@@ -196,11 +212,19 @@
boolean distinct = context.setDistinctQuery(true);
Tuples rhs = ConstraintOperations.resolveConstraintExpression(context, modelExpr, constraints.get(1));
context.setDistinctQuery(distinct);
+ Tuples result = null;
try {
- return TuplesOperations.subtract(lhs, rhs);
- } finally {
+ result = TuplesOperations.subtract(lhs, rhs);
lhs.close();
+ lhs = null;
rhs.close();
+ return result;
+ } finally {
+ if (lhs != null) {
+ // result != null means failed during lhs.close()
+ if (result == null) lhs.close();
+ rhs.close();
+ } // else failed during rhs.close()
}
}
}),
@@ -208,11 +232,19 @@
public Tuples resolve(QueryEvaluationContext context, GraphExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
List<Tuples> args = context.resolveConstraintOperation(modelExpr, (ConstraintOperation)constraintExpr);
assert args.size() == 2;
+ Tuples result = null, a0 = (Tuples)args.get(0), a1 = (Tuples)args.get(1);
try {
- return TuplesOperations.optionalJoin((Tuples)args.get(0), (Tuples)args.get(1), ((ConstraintOptionalJoin)constraintExpr).getFilter(), context);
+ result = TuplesOperations.optionalJoin(a0, a1, ((ConstraintOptionalJoin)constraintExpr).getFilter(), context);
+ a0.close();
+ a0 = null;
+ a1.close();
+ return result;
} finally {
- ((Tuples)args.get(0)).close();
- ((Tuples)args.get(1)).close();
+ if (a0 != null) {
+ // result != null means failed during a0.close()
+ if (result == null) a0.close();
+ a1.close();
+ } // else failed during a1.close()
}
}
}),
@@ -278,10 +310,15 @@
new NVPair(ConstraintFilter.class, new ConstraintResolutionHandler() {
public Tuples resolve(QueryEvaluationContext context, GraphExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
Tuples unfiltered = ConstraintOperations.resolveConstraintExpression(context, modelExpr, ((ConstraintFilter)constraintExpr).getUnfilteredConstraint());
+ Tuples result = null;
try {
- return TuplesOperations.filter(unfiltered, ((ConstraintFilter)constraintExpr).getFilter(), context);
- } finally {
+ result = TuplesOperations.filter(unfiltered, ((ConstraintFilter)constraintExpr).getFilter(), context);
unfiltered.close();
+ return result;
+ } catch (TuplesException e) {
+ // result != null means that exception occurred during unfiltered.close()
+ if (result == null) unfiltered.close();
+ throw e;
}
}
}),
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/OrderByRowComparator.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -90,7 +90,7 @@
}
/** Logger. */
- private static Logger logger =
+ private static final Logger logger =
Logger.getLogger(OrderByRowComparator.class);
/**
@@ -168,7 +168,7 @@
public boolean equals(RowComparator r)
{
// Require matching class
- if (!r.getClass().equals(OrderByRowComparator.class)) {
+ if (r.getClass() != OrderByRowComparator.class) {
return false;
}
Modified: trunk/src/jar/resolver-distributed/java/org/mulgara/resolver/distributed/remote/StatementSetFactory.java
===================================================================
--- trunk/src/jar/resolver-distributed/java/org/mulgara/resolver/distributed/remote/StatementSetFactory.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-distributed/java/org/mulgara/resolver/distributed/remote/StatementSetFactory.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -35,11 +35,11 @@
public class StatementSetFactory {
/** The size for transitioning between a serializable set and a remote set. */
- static final long WATER_MARK = 2048L;
+ static final long WATER_MARK = 0x2048L;
public static Set<Triple> newStatementSet(Statements statements, ResolverSession session) throws TuplesException, GlobalizeException {
// make sure the WATER_MARK refers to a set that is indexable by integer
- assert (long)(int)WATER_MARK == WATER_MARK;
+ // assert (long)(int)WATER_MARK == WATER_MARK;
if (statements.getRowUpperBound() < WATER_MARK) return new ShortGlobalStatementSet(statements, session);
try {
RemotePager<Triple> pager = new RemotePagerImpl<Triple>(Triple.class, new TripleSetAdaptor(statements, session));
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/LocalGISCoordinate.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/LocalGISCoordinate.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/LocalGISCoordinate.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -179,7 +179,7 @@
public boolean equals(Object obj) {
boolean equal = false;
- equal = equal && (obj != null) && (obj instanceof LocalGISCoordinate);
+ equal = (obj != null) && (obj instanceof LocalGISCoordinate);
if (equal) {
LocalGISCoordinate coord = (LocalGISCoordinate) obj;
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -223,8 +223,7 @@
*/
public boolean equals(Object obj) {
- boolean equal = false;
- equal = equal && (obj != null) && (obj instanceof AbstractAngle);
+ boolean equal = (obj != null) && (obj instanceof AbstractAngle);
if (equal) {
AbstractAngle angle = (AbstractAngle) obj;
Modified: trunk/src/jar/resolver-null/java/org/mulgara/resolver/nullres/NullResolution.java
===================================================================
--- trunk/src/jar/resolver-null/java/org/mulgara/resolver/nullres/NullResolution.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-null/java/org/mulgara/resolver/nullres/NullResolution.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -24,6 +24,7 @@
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
import org.mulgara.resolver.spi.Resolution;
+import org.mulgara.store.tuples.AbstractTuples;
import org.mulgara.store.tuples.Annotation;
import org.mulgara.store.tuples.RowComparator;
import org.mulgara.store.tuples.Tuples;
@@ -222,4 +223,7 @@
}
}
+ public boolean equals(Object o) {
+ return (o instanceof Resolution) && AbstractTuples.equals(this, (Resolution)o);
+ }
}
Modified: trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/EmptyResolution.java
===================================================================
--- trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/EmptyResolution.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/EmptyResolution.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -27,9 +27,6 @@
package org.mulgara.resolver.spi;
-// Java 2 standard packages
-import java.util.*;
-
// Third party packages
import org.apache.log4j.Logger; // Apache Log4J
@@ -54,6 +51,7 @@
public class EmptyResolution extends EmptyTuples implements Resolution {
/** Logger. */
+ @SuppressWarnings("unused")
private static Logger logger =
Logger.getLogger(EmptyResolution.class.getName());
Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/Bound.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/Bound.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/Bound.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -38,9 +38,6 @@
// Third party packages
import org.apache.log4j.Logger; // Apache Log4J
-// Local packages
-import org.mulgara.store.stringpool.SPObject;
-
/**
* The point representing the upper or lower extent of an interval.
*
@@ -60,7 +57,8 @@
class Bound
{
/** Logger */
- private static Logger logger = Logger.getLogger(Bound.class.getName());
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(Bound.class.getName());
/**
* The numerical edge of the interval.
@@ -129,11 +127,15 @@
return true;
}
- if (!object.getClass().equals(Bound.class)) {
+ if (object.getClass() != Bound.class) {
return false;
}
Bound bound = (Bound) object;
return (value == bound.value) && (closed == bound.closed);
}
+
+ public int hashCode() {
+ return Double.valueOf(value).hashCode() * (closed ? 3 : 1);
+ }
}
Modified: trunk/src/jar/tuples-hybrid/java/org/mulgara/store/bdb/DbTuples.java
===================================================================
--- trunk/src/jar/tuples-hybrid/java/org/mulgara/store/bdb/DbTuples.java 2011-09-14 17:52:18 UTC (rev 2025)
+++ trunk/src/jar/tuples-hybrid/java/org/mulgara/store/bdb/DbTuples.java 2011-09-14 19:05:04 UTC (rev 2026)
@@ -269,7 +269,6 @@
}
}
if (!found) {
- logger.error("Unexpected variable: " + v);
throw new Error("Unexpected variable: " + v);
}
}
@@ -296,7 +295,6 @@
return copy;
} catch (CloneNotSupportedException ce) {
- logger.error("DbTuples.clone() threw CloneNotSupported", ce);
throw new RuntimeException("DbTuples.clone() threw CloneNotSupported", ce);
}
}
@@ -368,7 +366,6 @@
public int getColumnIndex(Variable variable) throws TuplesException {
for (int c = 0; c < vars.length; c++) if (vars[c].equals(variable)) return c;
- logger.warn("Variable not found: " + variable);
throw new TuplesException("Variable not found: " + variable);
}
@@ -472,7 +469,7 @@
if (!(o instanceof Tuples)) return false;
t = (Tuples)o;
- if (t instanceof DbTuples) return this.database.equals(((DbTuples)t).database);
+ if (t instanceof DbTuples) return this.database == ((DbTuples)t).database;
try {
Variable[] tvars = t.getVariables();
@@ -509,6 +506,15 @@
}
}
+ /** {@inheritDoc} */
+ public int hashCode() {
+ long rowcount;
+ try {
+ rowcount = getRowCount();
+ } catch (TuplesException e) { rowcount = 0; }
+ return getVariables().hashCode() * 3 + (int)(rowcount & 0xFFFFFFFF) * 7 +
+ (int)(rowcount >> 32) * 11;
+ }
/** {@inheritDoc} */
public String toString() {
More information about the Mulgara-svn
mailing list