Skip to content

Commit d936b9f

Browse files
Fixed an issue when durability is set to null or invalid value. (#29)
Added an unit test for the same Testing: All unit tests passed
1 parent ddefaed commit d936b9f

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

src/main/java/com/oracle/nosql/spring/data/repository/NosqlRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ public interface NosqlRepository<T, ID extends Serializable> extends
157157
* {@link Durability#COMMIT_SYNC}.<p>
158158
* This set takes precedence over the one set when using
159159
* {@link NosqlTable#durability()}.<p>
160+
* If null or invalid value is provided durability will be set to
161+
* {@link Durability#COMMIT_NO_SYNC}<p>
160162
* Note: This applies to On-Prem installations only.
161163
*/
162164
void setDurability(String durability);

src/main/java/com/oracle/nosql/spring/data/repository/support/NosqlEntityInformation.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,12 +304,16 @@ private void setTableOptions(Class<T> domainClass) {
304304
}
305305

306306
private Durability getDurability(String durability) {
307+
if (durability == null) {
308+
return Durability.COMMIT_NO_SYNC;
309+
}
307310
if ("COMMIT_SYNC".equals(durability.toUpperCase())) {
308311
return Durability.COMMIT_SYNC;
309312
}
310313
if ("COMMIT_WRITE_NO_SYNC".equals(durability.toUpperCase())) {
311314
return Durability.COMMIT_WRITE_NO_SYNC;
312315
}
316+
//return COMMIT_NO_SYNC by default
313317
return Durability.COMMIT_NO_SYNC;
314318
}
315319

src/main/java/com/oracle/nosql/spring/data/repository/support/SimpleNosqlRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,17 +256,14 @@ public String getDurability() {
256256
}
257257

258258
static String convertDurability(Durability durability) {
259-
if (durability == Durability.COMMIT_NO_SYNC) {
260-
return "COMMIT_NO_SYNC";
261-
}
262-
if (durability == Durability.COMMIT_SYNC) {
259+
if (Durability.COMMIT_SYNC.equals(durability)) {
263260
return "COMMIT_SYNC";
264261
}
265-
if (durability == Durability.COMMIT_WRITE_NO_SYNC) {
262+
if (Durability.COMMIT_WRITE_NO_SYNC.equals(durability)) {
266263
return "COMMIT_WRITE_NO_SYNC";
267264
}
268265

269-
return durability.toString();
266+
return "COMMIT_NO_SYNC";
270267
}
271268

272269
/**

src/test/java/com/oracle/nosql/spring/data/test/TestApplication.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,14 @@ public void testConsistencyDurability() {
465465
repo.setDurability("COMMIT_WRITE_NO_SYNC");
466466
Assert.assertEquals("COMMIT_WRITE_NO_SYNC",
467467
repo.getDurability());
468+
469+
//null durability
470+
repo.setDurability(null);
471+
Assert.assertEquals("COMMIT_NO_SYNC", repo.getDurability());
472+
473+
//invalid durability
474+
repo.setDurability("INVALID");
475+
Assert.assertEquals("COMMIT_NO_SYNC", repo.getDurability());
468476
}
469477

470478
@SuppressWarnings("unchecked")
@@ -666,4 +674,4 @@ private void printWithTypes(String name, Map<?, ?> map) {
666674
}
667675
}
668676
}
669-
}
677+
}

0 commit comments

Comments
 (0)