[Mulgara-dev] NegativeArraySizeException
James Leigh
james-nospam at leighnet.ca
Tue Nov 11 15:26:32 UTC 2008
The latest from trunk plus this patch allows Mulgara to execute the
query and others like it without an exception.
Thanks Alex.
On Thu, 2008-11-06 at 10:08 -0500, Alex Hall wrote:
> James Leigh wrote:
> > Hi Paul et al,
> >
> > I loaded up 25m of BSBM data and executed a query like the one below.
> > Instead of getting any results, I got this exception. In
> > HybridTuples.java it casts a long into an int. This may account for the
> > int being negative. I have the dataset on another machine and can make
> > it and the exact query available if desired. Paul can you review
> > HybridTuples and DenseLongMatrix and make sure the long/int handling is
> > correct?
>
> Just taking a quick look here... When the LeftJoin operation calculates the
> upper bound of its row count, it multiplies a long by a long without checking
> for overflow, which is how I suspect that the negative value is creeping in. If
> you're building from source, try applying the attached patch and let me know if
> it fixes the problem.
>
> Regards,
> Alex
> plain text document attachment (LeftJoin.txt)
> Index: C:/Mulgara/trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java
> ===================================================================
> --- C:/Mulgara/trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java (revision 1373)
> +++ C:/Mulgara/trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java (working copy)
> @@ -175,7 +175,7 @@
> public long getRowUpperBound() throws TuplesException {
> BigInteger rowCount = BigInteger.valueOf(lhs.getRowUpperBound());
> rowCount = rowCount.multiply(BigInteger.valueOf(rhs.getRowUpperBound()));
> - return rowCount.longValue();
> + return rowCount.bitLength() > 63 ? Long.MAX_VALUE : rowCount.longValue();
> }
>
>
> _______________________________________________
> Mulgara-dev mailing list
> Mulgara-dev at mulgara.org
> http://mulgara.org/mailman/listinfo/mulgara-dev
More information about the Mulgara-dev
mailing list