Skip to content

Commit 8cf6b07

Browse files
test(spanner): wrap backup schedule deletion in try-catch to prevent exception masking (#13185)
When a backup schedule creation fails (e.g., due to quota limits or rate throttling), the finally block attempts to delete the resource. Previously, deleteBackupSchedule threw a NotFoundException for uncreated resources, which suppressed the original failure from the try block. Wrapping the cleanup calls in try-catch ensures that: - The original exception explaining why the test failed is preserved and correctly reported. - In tests with multiple resources, a failure to delete the first resource does not abort cleanup of subsequent resources.
1 parent 9110ad6 commit 8cf6b07

6 files changed

Lines changed: 77 additions & 14 deletions

File tree

java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateFullBackupScheduleSampleIT.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,17 @@ public void testCreateFullBackupScheduleSample() throws Exception {
4141
CreateFullBackupScheduleSample.createFullBackupSchedule(
4242
projectId, instanceId, databaseId, backupScheduleId);
4343
} finally {
44-
DeleteBackupScheduleSample.deleteBackupSchedule(
45-
projectId, instanceId, databaseId, backupScheduleId);
44+
try {
45+
DeleteBackupScheduleSample.deleteBackupSchedule(
46+
projectId, instanceId, databaseId, backupScheduleId);
47+
} catch (Exception e) {
48+
System.out.println(
49+
"Failed to delete backup schedule "
50+
+ backupScheduleId
51+
+ " due to "
52+
+ e.getMessage()
53+
+ ", skipping...");
54+
}
4655
}
4756
});
4857
assertThat(out).contains(String.format("Created backup schedule: %s", backupScheduleName));

java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateIncrementalBackupScheduleSampleIT.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,17 @@ public void testCreateIncrementalBackupScheduleSample() throws Exception {
4141
CreateIncrementalBackupScheduleSample.createIncrementalBackupSchedule(
4242
projectId, multiRegionalInstanceId, databaseId, backupScheduleId);
4343
} finally {
44-
DeleteBackupScheduleSample.deleteBackupSchedule(
45-
projectId, multiRegionalInstanceId, databaseId, backupScheduleId);
44+
try {
45+
DeleteBackupScheduleSample.deleteBackupSchedule(
46+
projectId, multiRegionalInstanceId, databaseId, backupScheduleId);
47+
} catch (Exception e) {
48+
System.out.println(
49+
"Failed to delete backup schedule "
50+
+ backupScheduleId
51+
+ " due to "
52+
+ e.getMessage()
53+
+ ", skipping...");
54+
}
4655
}
4756
});
4857
assertThat(out)

java-spanner/samples/snippets/src/test/java/com/example/spanner/DeleteBackupScheduleSampleIT.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,17 @@ public void testDeleteBackupScheduleSample() throws Exception {
4141
CreateFullBackupScheduleSample.createFullBackupSchedule(
4242
projectId, instanceId, databaseId, backupScheduleId);
4343
} finally {
44-
DeleteBackupScheduleSample.deleteBackupSchedule(
45-
projectId, instanceId, databaseId, backupScheduleId);
44+
try {
45+
DeleteBackupScheduleSample.deleteBackupSchedule(
46+
projectId, instanceId, databaseId, backupScheduleId);
47+
} catch (Exception e) {
48+
System.out.println(
49+
"Failed to delete backup schedule "
50+
+ backupScheduleId
51+
+ " due to "
52+
+ e.getMessage()
53+
+ ", skipping...");
54+
}
4655
}
4756
});
4857
assertThat(out).contains(String.format("Deleted backup schedule: %s", backupScheduleName));

java-spanner/samples/snippets/src/test/java/com/example/spanner/GetBackupScheduleSampleIT.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,17 @@ public void testGetBackupScheduleSample() throws Exception {
4444
projectId, instanceId,
4545
databaseId, backupScheduleId);
4646
} finally {
47-
DeleteBackupScheduleSample.deleteBackupSchedule(
48-
projectId, instanceId, databaseId, backupScheduleId);
47+
try {
48+
DeleteBackupScheduleSample.deleteBackupSchedule(
49+
projectId, instanceId, databaseId, backupScheduleId);
50+
} catch (Exception e) {
51+
System.out.println(
52+
"Failed to delete backup schedule "
53+
+ backupScheduleId
54+
+ " due to "
55+
+ e.getMessage()
56+
+ ", skipping...");
57+
}
4958
}
5059
});
5160
assertThat(out).contains(String.format("Backup schedule: %s", backupScheduleName));

java-spanner/samples/snippets/src/test/java/com/example/spanner/ListBackupSchedulesSampleIT.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,28 @@ public void testListBackupSchedulesSample() throws Exception {
4949
projectId, instanceId, databaseId, backupScheduleId2);
5050
ListBackupSchedulesSample.listBackupSchedules(projectId, instanceId, databaseId);
5151
} finally {
52-
DeleteBackupScheduleSample.deleteBackupSchedule(
53-
projectId, instanceId, databaseId, backupScheduleId1);
54-
DeleteBackupScheduleSample.deleteBackupSchedule(
55-
projectId, instanceId, databaseId, backupScheduleId2);
52+
try {
53+
DeleteBackupScheduleSample.deleteBackupSchedule(
54+
projectId, instanceId, databaseId, backupScheduleId1);
55+
} catch (Exception e) {
56+
System.out.println(
57+
"Failed to delete backup schedule "
58+
+ backupScheduleId1
59+
+ " due to "
60+
+ e.getMessage()
61+
+ ", skipping...");
62+
}
63+
try {
64+
DeleteBackupScheduleSample.deleteBackupSchedule(
65+
projectId, instanceId, databaseId, backupScheduleId2);
66+
} catch (Exception e) {
67+
System.out.println(
68+
"Failed to delete backup schedule "
69+
+ backupScheduleId2
70+
+ " due to "
71+
+ e.getMessage()
72+
+ ", skipping...");
73+
}
5674
}
5775
});
5876
assertThat(out).contains(String.format("Backup schedule: %s", backupScheduleName1));

java-spanner/samples/snippets/src/test/java/com/example/spanner/UpdateBackupScheduleSampleIT.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,17 @@ public void testUpdateBackupScheduleSample() throws Exception {
4343
UpdateBackupScheduleSample.updateBackupSchedule(
4444
projectId, instanceId, databaseId, backupScheduleId);
4545
} finally {
46-
DeleteBackupScheduleSample.deleteBackupSchedule(
47-
projectId, instanceId, databaseId, backupScheduleId);
46+
try {
47+
DeleteBackupScheduleSample.deleteBackupSchedule(
48+
projectId, instanceId, databaseId, backupScheduleId);
49+
} catch (Exception e) {
50+
System.out.println(
51+
"Failed to delete backup schedule "
52+
+ backupScheduleId
53+
+ " due to "
54+
+ e.getMessage()
55+
+ ", skipping...");
56+
}
4857
}
4958
});
5059
assertThat(out).contains(String.format("Updated backup schedule: %s", backupScheduleName));

0 commit comments

Comments
 (0)