From 7bb2ef6f61fb8f180c70e854344550a13bdb3361 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Sat, 24 Jul 2010 23:14:20 +0000 Subject: Allow new layouts if BDB is read-only. --- .../java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java | 2 +- src/main/java/com/amazon/carbonado/repo/sleepycat/BDBStorage.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/amazon/carbonado/repo') 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 b423ab9..eb10042 100644 --- a/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java +++ b/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBRepository.java @@ -354,7 +354,7 @@ abstract class BDBRepository extends AbstractRepository throws FetchException, PersistException { try { - return ((BDBStorage) storageFor(type)).getLayout(mStorableCodecFactory); + return ((BDBStorage) storageFor(type)).getLayout(true, mStorableCodecFactory); } catch (PersistException e) { throw e; } catch (RepositoryException e) { diff --git a/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBStorage.java b/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBStorage.java index 66e8475..f4d8f24 100644 --- a/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBStorage.java +++ b/src/main/java/com/amazon/carbonado/repo/sleepycat/BDBStorage.java @@ -419,7 +419,7 @@ abstract class BDBStorage implements Storage, Storag { StorableInfo info = StorableIntrospector.examine(getStorableType()); StorableCodecFactory codecFactory = mRepository.getStorableCodecFactory(); - final Layout layout = getLayout(codecFactory); + final Layout layout = getLayout(readOnly, codecFactory); // Open primary database. Object primaryDatabase; @@ -766,7 +766,9 @@ abstract class BDBStorage implements Storage, Storag } } - Layout getLayout(StorableCodecFactory codecFactory) throws RepositoryException { + Layout getLayout(boolean readOnly, StorableCodecFactory codecFactory) + throws RepositoryException + { if (Unevolvable.class.isAssignableFrom(getStorableType())) { // Don't record generation for storables marked as unevolvable. return null; @@ -782,7 +784,7 @@ abstract class BDBStorage implements Storage, Storag } Class type = getStorableType(); - return factory.layoutFor(type, codecFactory.getLayoutOptions(type)); + return factory.layoutFor(readOnly, type, codecFactory.getLayoutOptions(type)); } /** -- cgit v1.2.3