improve logging and added precondition checks

This commit is contained in:
Sebastian Sdorra
2012-12-07 14:11:37 +01:00
parent 948acde0f2
commit 24e9b53115
3 changed files with 16 additions and 3 deletions

View File

@@ -109,6 +109,10 @@ public abstract class FileBasedStore<T> implements StoreBase<T>
@Override @Override
public void remove(String id) public void remove(String id)
{ {
Preconditions.checkArgument(!Strings.isNullOrEmpty(id),
"id argument is required");
logger.debug("try to delete store entry with id {}", id);
File file = getFile(id); File file = getFile(id);
remove(file); remove(file);
@@ -127,6 +131,8 @@ public abstract class FileBasedStore<T> implements StoreBase<T>
@Override @Override
public T get(String id) public T get(String id)
{ {
Preconditions.checkArgument(!Strings.isNullOrEmpty(id),
"id argument is required");
logger.trace("try to retrieve item with id {}", id); logger.trace("try to retrieve item with id {}", id);
File file = getFile(id); File file = getFile(id);
@@ -144,10 +150,10 @@ public abstract class FileBasedStore<T> implements StoreBase<T>
*/ */
protected void remove(File file) protected void remove(File file)
{ {
logger.trace("delete store entry {}", file);
if (file.exists() &&!file.delete()) if (file.exists() &&!file.delete())
{ {
logger.debug("delete store entry {}", file);
throw new StoreException( throw new StoreException(
"could not delete store entry ".concat(file.getPath())); "could not delete store entry ".concat(file.getPath()));
} }

View File

@@ -33,6 +33,8 @@ package sonia.scm.store;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder; import com.google.common.collect.ImmutableList.Builder;
@@ -104,6 +106,10 @@ public class FileBlobStore extends FileBasedStore<Blob> implements BlobStore
@Override @Override
public Blob create(String id) public Blob create(String id)
{ {
Preconditions.checkArgument(!Strings.isNullOrEmpty(id),
"id argument is required");
logger.debug("create new blob with id {}", id);
File file = getFile(id); File file = getFile(id);
try try
@@ -130,6 +136,7 @@ public class FileBlobStore extends FileBasedStore<Blob> implements BlobStore
@Override @Override
public void remove(Blob blob) public void remove(Blob blob)
{ {
Preconditions.checkNotNull("blob argument is required");
remove(blob.getId()); remove(blob.getId());
} }

View File

@@ -107,7 +107,7 @@ public class JAXBDataStore<T> extends FileBasedStore<T> implements DataStore<T>
@Override @Override
public void put(String id, T item) public void put(String id, T item)
{ {
logger.info("put item {} to store", id); logger.debug("put item {} to store", id);
File file = getFile(id); File file = getFile(id);