summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/amazon/carbonado/filter/BinaryOpFilter.java4
-rw-r--r--src/main/java/com/amazon/carbonado/filter/FilterValues.java2
-rw-r--r--src/main/java/com/amazon/carbonado/info/ChainedProperty.java2
-rw-r--r--src/main/java/com/amazon/carbonado/qe/PropertyFilterList.java2
-rw-r--r--src/main/java/com/amazon/carbonado/qe/StorableIndexSet.java4
-rw-r--r--src/main/java/com/amazon/carbonado/raw/DataEncoder.java9
-rw-r--r--src/main/java/com/amazon/carbonado/raw/KeyEncoder.java4
-rw-r--r--src/main/java/com/amazon/carbonado/repo/indexed/DerivedIndexesTrigger.java5
-rw-r--r--src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java8
-rw-r--r--src/main/java/com/amazon/carbonado/spi/AbstractRepositoryBuilder.java2
10 files changed, 25 insertions, 17 deletions
diff --git a/src/main/java/com/amazon/carbonado/filter/BinaryOpFilter.java b/src/main/java/com/amazon/carbonado/filter/BinaryOpFilter.java
index 640c0ae..ffe81e7 100644
--- a/src/main/java/com/amazon/carbonado/filter/BinaryOpFilter.java
+++ b/src/main/java/com/amazon/carbonado/filter/BinaryOpFilter.java
@@ -69,11 +69,11 @@ public abstract class BinaryOpFilter<S extends Storable> extends Filter<S> {
return accept(new Binder<S>(), null);
}
- public boolean isBound() {
+ public synchronized boolean isBound() {
return (mState & BOUND) != 0;
}
- void markBound() {
+ synchronized void markBound() {
mState |= BOUND;
}
diff --git a/src/main/java/com/amazon/carbonado/filter/FilterValues.java b/src/main/java/com/amazon/carbonado/filter/FilterValues.java
index 954d3ac..6e7202c 100644
--- a/src/main/java/com/amazon/carbonado/filter/FilterValues.java
+++ b/src/main/java/com/amazon/carbonado/filter/FilterValues.java
@@ -36,6 +36,8 @@ import com.amazon.carbonado.util.Appender;
* @author Brian S O'Neill
*/
public class FilterValues<S extends Storable> implements Serializable, Appender {
+ private static final long serialVersionUID = 1L;
+
private static final Object[] NO_VALUES = new Object[0];
static <S extends Storable> FilterValues<S>
diff --git a/src/main/java/com/amazon/carbonado/info/ChainedProperty.java b/src/main/java/com/amazon/carbonado/info/ChainedProperty.java
index d30fc8f..65151e8 100644
--- a/src/main/java/com/amazon/carbonado/info/ChainedProperty.java
+++ b/src/main/java/com/amazon/carbonado/info/ChainedProperty.java
@@ -395,7 +395,7 @@ public class ChainedProperty<S extends Storable> implements Serializable, Append
System.arraycopy(mOuterJoin, 0, newOuterJoin, 0, mOuterJoin.length);
}
System.arraycopy(property.mOuterJoin, 0,
- newOuterJoin, mOuterJoin.length,
+ newOuterJoin, getChainCount() + 1,
property.mOuterJoin.length);
}
diff --git a/src/main/java/com/amazon/carbonado/qe/PropertyFilterList.java b/src/main/java/com/amazon/carbonado/qe/PropertyFilterList.java
index 279430c..c58aacb 100644
--- a/src/main/java/com/amazon/carbonado/qe/PropertyFilterList.java
+++ b/src/main/java/com/amazon/carbonado/qe/PropertyFilterList.java
@@ -155,7 +155,7 @@ class PropertyFilterList<S extends Storable> extends AbstractList<PropertyFilter
}
private static class PFComparator<S extends Storable>
- implements Comparator<PropertyFilter<S>>
+ implements Comparator<PropertyFilter<S>>, java.io.Serializable
{
public int compare(PropertyFilter<S> a, PropertyFilter<S> b) {
if (a.getOperator() != b.getOperator()) {
diff --git a/src/main/java/com/amazon/carbonado/qe/StorableIndexSet.java b/src/main/java/com/amazon/carbonado/qe/StorableIndexSet.java
index 976d5a1..7055b21 100644
--- a/src/main/java/com/amazon/carbonado/qe/StorableIndexSet.java
+++ b/src/main/java/com/amazon/carbonado/qe/StorableIndexSet.java
@@ -472,7 +472,9 @@ public class StorableIndexSet<S extends Storable> extends TreeSet<StorableIndex<
* Orders indexes such that they are grouped by property names. Within
* those groups, indexes are ordered most qualified to least qualified.
*/
- private static class StorableIndexComparator implements Comparator<StorableIndex<?>> {
+ private static class StorableIndexComparator
+ implements Comparator<StorableIndex<?>>, java.io.Serializable
+ {
public int compare(StorableIndex<?> a, StorableIndex<?> b) {
if (a == b) {
return 0;
diff --git a/src/main/java/com/amazon/carbonado/raw/DataEncoder.java b/src/main/java/com/amazon/carbonado/raw/DataEncoder.java
index 1049644..6eebc93 100644
--- a/src/main/java/com/amazon/carbonado/raw/DataEncoder.java
+++ b/src/main/java/com/amazon/carbonado/raw/DataEncoder.java
@@ -44,11 +44,6 @@ public class DataEncoder {
/** Byte to use for not-null, high ordering */
static final byte NOT_NULL_BYTE_LOW = (byte)~NOT_NULL_BYTE_HIGH;
- static final byte[] NULL_BYTE_ARRAY_HIGH = {NULL_BYTE_HIGH};
- static final byte[] NULL_BYTE_ARRAY_LOW = {NULL_BYTE_LOW};
- static final byte[] NOT_NULL_BYTE_ARRAY_HIGH = {NOT_NULL_BYTE_HIGH};
- static final byte[] NOT_NULL_BYTE_ARRAY_LOW = {NOT_NULL_BYTE_LOW};
-
/**
* Encodes the given signed integer into exactly 4 bytes.
*
@@ -604,12 +599,12 @@ public class DataEncoder {
public static byte[] encodeSingleNullable(byte[] value, int prefixPadding, int suffixPadding) {
if (prefixPadding <= 0 && suffixPadding <= 0) {
if (value == null) {
- return NULL_BYTE_ARRAY_HIGH;
+ return new byte[] {NULL_BYTE_HIGH};
}
int length = value.length;
if (length == 0) {
- return NOT_NULL_BYTE_ARRAY_HIGH;
+ return new byte[] {NOT_NULL_BYTE_HIGH};
}
byte[] dst = new byte[1 + length];
diff --git a/src/main/java/com/amazon/carbonado/raw/KeyEncoder.java b/src/main/java/com/amazon/carbonado/raw/KeyEncoder.java
index 44c5af5..5b11586 100644
--- a/src/main/java/com/amazon/carbonado/raw/KeyEncoder.java
+++ b/src/main/java/com/amazon/carbonado/raw/KeyEncoder.java
@@ -708,12 +708,12 @@ public class KeyEncoder extends DataEncoder {
int prefixPadding, int suffixPadding) {
if (prefixPadding <= 0 && suffixPadding <= 0) {
if (value == null) {
- return NULL_BYTE_ARRAY_LOW;
+ return new byte[] {NULL_BYTE_LOW};
}
int length = value.length;
if (length == 0) {
- return NOT_NULL_BYTE_ARRAY_LOW;
+ return new byte[] {NOT_NULL_BYTE_LOW};
}
byte[] dst = new byte[1 + length];
diff --git a/src/main/java/com/amazon/carbonado/repo/indexed/DerivedIndexesTrigger.java b/src/main/java/com/amazon/carbonado/repo/indexed/DerivedIndexesTrigger.java
index 21c7215..9e69935 100644
--- a/src/main/java/com/amazon/carbonado/repo/indexed/DerivedIndexesTrigger.java
+++ b/src/main/java/com/amazon/carbonado/repo/indexed/DerivedIndexesTrigger.java
@@ -92,6 +92,11 @@ class DerivedIndexesTrigger<S extends Storable, D extends Storable> extends Trig
}
@Override
+ public int hashCode() {
+ return mFetcher.hashCode();
+ }
+
+ @Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
diff --git a/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java b/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java
index 4bf4e2b..f12a58e 100644
--- a/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java
+++ b/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java
@@ -553,8 +553,12 @@ abstract class BDBRepository<Txn> extends AbstractRepository<Txn>
break;
}
- if (mSuspendUntil != Long.MIN_VALUE) {
- if (System.currentTimeMillis() < mSuspendUntil) {
+ long suspendUntil;
+ synchronized (this) {
+ suspendUntil = mSuspendUntil;
+ }
+ if (suspendUntil != Long.MIN_VALUE) {
+ if (System.currentTimeMillis() < suspendUntil) {
continue;
}
}
diff --git a/src/main/java/com/amazon/carbonado/spi/AbstractRepositoryBuilder.java b/src/main/java/com/amazon/carbonado/spi/AbstractRepositoryBuilder.java
index b73a9ce..3cfc94f 100644
--- a/src/main/java/com/amazon/carbonado/spi/AbstractRepositoryBuilder.java
+++ b/src/main/java/com/amazon/carbonado/spi/AbstractRepositoryBuilder.java
@@ -62,7 +62,7 @@ public abstract class AbstractRepositoryBuilder implements RepositoryBuilder {
public Iterable<TriggerFactory> getTriggerFactories() {
synchronized (mTriggerFactories) {
- if (mTriggerFactories == null || mTriggerFactories.size() == 0) {
+ if (mTriggerFactories.size() == 0) {
return Collections.emptyList();
} else {
return new ArrayList<TriggerFactory>(mTriggerFactories);