You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2015/03/13 16:56:02 UTC
svn commit: r1666491 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb:
RDBBlobStore.java RDBDataSourceFactory.java RDBDocumentSerializer.java
RDBDocumentStore.java
Author: reschke
Date: Fri Mar 13 15:56:01 2015
New Revision: 1666491
URL: http://svn.apache.org/r1666491
Log:
OAK-1266 - fix FindBug detected issues, remove unused imports
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1666491&r1=1666490&r2=1666491&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java Fri Mar 13 15:56:01 2015
@@ -38,8 +38,6 @@ import javax.sql.DataSource;
import org.apache.jackrabbit.oak.commons.StringUtils;
import org.apache.jackrabbit.oak.plugins.blob.CachingBlobStore;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
-import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.DB;
-import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.FETCHFIRSTSYNTAX;
import org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java?rev=1666491&r1=1666490&r2=1666491&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java Fri Mar 13 15:56:01 2015
@@ -24,7 +24,6 @@ import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
-import java.util.Locale;
import java.util.logging.Logger;
import javax.sql.DataSource;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java?rev=1666491&r1=1666490&r2=1666491&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java Fri Mar 13 15:56:01 2015
@@ -27,6 +27,7 @@ import java.util.TreeMap;
import java.util.zip.GZIPInputStream;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
@@ -122,8 +123,9 @@ public class RDBDocumentSerializer {
}
appendString(sb, key.getName());
sb.append(",");
- if (key.getRevision() != null) {
- appendString(sb, key.getRevision().toString());
+ Revision rev = key.getRevision();
+ if (rev != null) {
+ appendString(sb, rev.toString());
sb.append(",");
}
appendValue(sb, op.value);
@@ -226,7 +228,7 @@ public class RDBDocumentSerializer {
if (!blobInUse) {
throw new DocumentStoreException("did not expect \"blob\" here: " + row.getData());
}
- if (!json.getToken().equals("blob")) {
+ if (!"blob".equals(json.getToken())) {
throw new DocumentStoreException("expected string literal \"blob\"");
}
} else {
@@ -329,7 +331,7 @@ public class RDBDocumentSerializer {
}
}
- @Nonnull
+ @Nullable
private static Object readValueFromJson(@Nonnull JsopTokenizer json) {
switch (json.read()) {
case JsopReader.NULL:
@@ -349,6 +351,9 @@ public class RDBDocumentSerializer {
break;
}
String k = json.readString();
+ if (k == null) {
+ throw new IllegalArgumentException("unexpected null revision");
+ }
json.read(':');
map.put(Revision.fromString(k), readValueFromJson(json));
json.matches(',');
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1666491&r1=1666490&r2=1666491&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Fri Mar 13 15:56:01 2015
@@ -50,6 +50,7 @@ import javax.annotation.Nonnull;
import javax.sql.DataSource;
import com.google.common.collect.ImmutableMap;
+
import org.apache.jackrabbit.oak.cache.CacheStats;
import org.apache.jackrabbit.oak.cache.CacheValue;
import org.apache.jackrabbit.oak.plugins.document.Collection;
@@ -846,13 +847,13 @@ public class RDBDocumentStore implements
int retries = maxRetries;
while (!success && retries > 0) {
- long lastmodcount = (Long) oldDoc.get(MODCOUNT);
+ long lastmodcount = modcountOf(oldDoc);
success = updateDocument(collection, doc, update, lastmodcount);
if (!success) {
retries -= 1;
oldDoc = readDocumentCached(collection, update.getId(), Integer.MAX_VALUE);
if (oldDoc != null) {
- long newmodcount = (Long) oldDoc.get(MODCOUNT);
+ long newmodcount = modcountOf(oldDoc);
if (lastmodcount == newmodcount) {
// cached copy did not change so it probably was
// updated by a different instance, get a fresh one
@@ -937,14 +938,16 @@ public class RDBDocumentStore implements
}
if (success) {
for (Entry<String, NodeDocument> entry : cachedDocs.entrySet()) {
- if (entry.getValue() == null) {
+ T oldDoc = (T) (entry.getValue());
+ if (oldDoc == null) {
// make sure concurrently loaded document is
// invalidated
nodesCache.invalidate(new StringValue(entry.getKey()));
} else {
- T oldDoc = (T) (entry.getValue());
- T newDoc = applyChanges(collection, (T) (entry.getValue()), update, true);
- applyToCache((NodeDocument) oldDoc, (NodeDocument) newDoc);
+ T newDoc = applyChanges(collection, oldDoc, update, true);
+ if (newDoc != null) {
+ applyToCache((NodeDocument) oldDoc, (NodeDocument) newDoc);
+ }
}
}
} else {
@@ -1011,8 +1014,8 @@ public class RDBDocumentStore implements
String tableName = getTable(collection);
try {
long lastmodcount = -1;
- if (cachedDoc != null && cachedDoc.getModCount() != null) {
- lastmodcount = cachedDoc.getModCount().longValue();
+ if (cachedDoc != null) {
+ lastmodcount = modcountOf(cachedDoc);
}
connection = this.ch.getROConnection();
RDBRow row = dbRead(connection, tableName, id, lastmodcount);
@@ -1583,6 +1586,20 @@ public class RDBDocumentStore implements
return doc == null ? NodeDocument.NULL : doc;
}
+ @Nonnull
+ private static String idOf(@Nonnull Document doc) {
+ String id = doc.getId();
+ if (id == null) {
+ throw new IllegalArgumentException("non-null ID expected");
+ }
+ return id;
+ }
+
+ private static long modcountOf(@Nonnull Document doc) {
+ Number n = doc.getModCount();
+ return n != null ? n.longValue() : -1;
+ }
+
/**
* Adds a document to the {@link #nodesCache} iff there is no document in
* the cache with the document key. This method does not acquire a lock from
@@ -1605,7 +1622,7 @@ public class RDBDocumentStore implements
// meantime. That is, use get() with a Callable,
// which is only used when the document isn't there
try {
- CacheValue key = new StringValue(doc.getId());
+ CacheValue key = new StringValue(idOf(doc));
for (;;) {
NodeDocument cached = nodesCache.get(key, new Callable<NodeDocument>() {
@Override
@@ -1637,7 +1654,7 @@ public class RDBDocumentStore implements
// loading it into the cache -> return now
return;
} else {
- CacheValue key = new StringValue(newDoc.getId());
+ CacheValue key = new StringValue(idOf(newDoc));
// this is an update (oldDoc != null)
if (Objects.equal(cached.getModCount(), oldDoc.getModCount())) {
nodesCache.put(key, newDoc);
@@ -1654,7 +1671,7 @@ public class RDBDocumentStore implements
private <T extends Document> void addToCache(Collection<T> collection, T doc) {
if (collection == Collection.NODES) {
- Lock lock = getAndLock(doc.getId());
+ Lock lock = getAndLock(idOf(doc));
try {
addToCache((NodeDocument) doc);
} finally {