You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/02/13 15:35:43 UTC
[1/3] jena git commit: JENA-1140: Better hash code for
AbstractDateTime.
Repository: jena
Updated Branches:
refs/heads/master 9c4a0f86e -> 9b38d8e91
JENA-1140: Better hash code for AbstractDateTime.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8c475680
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8c475680
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8c475680
Branch: refs/heads/master
Commit: 8c475680b3d85520e41b7eb78418e9514fb85eef
Parents: 9c4a0f8
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Feb 13 14:18:54 2016 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Feb 13 14:25:28 2016 +0000
----------------------------------------------------------------------
.../jena/datatypes/xsd/AbstractDateTime.java | 23 ++++++++++----------
1 file changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8c475680/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
index fbbf950..dfb3a66 100644
--- a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
+++ b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
@@ -18,6 +18,8 @@
package org.apache.jena.datatypes.xsd;
+import java.util.Arrays ;
+
/**
* Base class for representation of XSD duration, time, date/time
* and related datatype instances. We are using the Xerces internal
@@ -104,9 +106,10 @@ public class AbstractDateTime implements Comparable<AbstractDateTime> {
/**
- * Convert fractional second representation to a simple float.
+ * Convert fractional second representation to a simple double..
*/
protected void extractFractionalSeconds() {
+ fractionalSeconds = 0.0 ;
if (data[ms] != 0) {
int fs = data[ms];
fractionalSeconds = (fs) / Math.pow(10.0, data[msscale]);
@@ -123,24 +126,22 @@ public class AbstractDateTime implements Comparable<AbstractDateTime> {
for (int i = 0; i < data.length; i++) {
if (data[i] != adt.data[i]) return false;
}
+ // fractionalSeconds is generated from data[ms]
return true;
}
return false;
}
- /**
- * hash function
- */
@Override
public int hashCode() {
- int hash = 0;
- for ( int aData : data )
- {
- hash = ( hash << 1 ) ^ aData;
- }
- return hash;
+ // See JENA-1140.
+ // Eclipse generated - without fractionalSeconds which is generated from data[ms]
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Arrays.hashCode(data);
+ return result;
}
-
+
// --------------------------------------------------------------------
// This code is adapated from Xerces 2.6.0 AbstractDateTimeDV.
// Copyright (c) 1999-2003 The Apache Software Foundation. All rights
[3/3] jena git commit: Remove excess blank lines.
Posted by an...@apache.org.
Remove excess blank lines.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9b38d8e9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9b38d8e9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9b38d8e9
Branch: refs/heads/master
Commit: 9b38d8e9190d1d6e36131051b227fc133cdb5dc3
Parents: 86b42a9
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Feb 13 14:23:48 2016 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Feb 13 14:25:50 2016 +0000
----------------------------------------------------------------------
.../main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/9b38d8e9/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
index dfb3a66..9a7380b 100644
--- a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
+++ b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/AbstractDateTime.java
@@ -102,8 +102,6 @@ public class AbstractDateTime implements Comparable<AbstractDateTime> {
}
return 0;
}
-
-
/**
* Convert fractional second representation to a simple double..
[2/3] jena git commit: JENA-1142: Extend the range of primes.
Posted by an...@apache.org.
JENA-1142: Extend the range of primes.
Up to hash tables of about 100e6 items.
No presumption that at that size every works but this makes
it a soft failure rather than a hard failure.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/86b42a9a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/86b42a9a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/86b42a9a
Branch: refs/heads/master
Commit: 86b42a9ad0b84ca5554b74b22eb7223103026661
Parents: 8c47568
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Feb 13 14:23:14 2016 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Feb 13 14:25:50 2016 +0000
----------------------------------------------------------------------
.../java/org/apache/jena/mem/HashCommon.java | 34 +++++++++++++-------
1 file changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/86b42a9a/jena-core/src/main/java/org/apache/jena/mem/HashCommon.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/mem/HashCommon.java b/jena-core/src/main/java/org/apache/jena/mem/HashCommon.java
index ba03aea..b33d1b2 100644
--- a/jena-core/src/main/java/org/apache/jena/mem/HashCommon.java
+++ b/jena-core/src/main/java/org/apache/jena/mem/HashCommon.java
@@ -21,6 +21,7 @@ package org.apache.jena.mem;
import java.util.*;
import org.apache.jena.shared.BrokenException ;
+import org.apache.jena.shared.JenaException ;
import org.apache.jena.util.iterator.* ;
/**
@@ -193,24 +194,33 @@ public abstract class HashCommon<Key>
threshold = (int) (capacity * loadFactor);
}
+ // Hash tables are 0.25 to 0.5 full so these numbers
+ // are for storing about 1/3 of that number of items.
+ // The larger sizes are added so that the system has "soft failure"
+ // rather implying guaranteed performance.
static final int [] primes =
{
7, 19, 37, 79, 149, 307, 617, 1237, 2477, 4957, 9923,
- 19853, 39709, 79423, 158849, 317701, 635413,
- 1270849, 2541701, 5083423
+ 19_853, 39_709, 79_423, 158_849, 317_701, 635_413,
+ 1_270_849, 2_541_701, 5_083_423
+ , 10_166_857
+ , 20_333_759
+ , 40_667_527
+ // Impractical?
+ , 81_335_047
+ , 162_670_111
+ , 325_340_233
};
- protected static int nextSize( int atLeast )
- {
- for ( int prime : primes )
- {
- if ( prime > atLeast )
- {
- return prime;
- }
- }
- return atLeast;
+ protected static int nextSize(int atLeast) {
+ for ( int prime : primes ) {
+ if ( prime > atLeast )
+ return prime;
}
+ // If not found, complain.
+ // Theer are some very large numbers in the primes table.
+ throw new JenaException("Failed to find a 'next size': atleast = "+atLeast) ;
+ }
/**
Remove the triple at element <code>i</code> of <code>contents</code>.