This is an automated email from the ASF dual-hosted git repository.
yasithdev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/master by this push:
new 6f0bca0796 fix: seed default sharing data idempotently without ERROR
noise (#625)
6f0bca0796 is described below
commit 6f0bca0796aeb08817ad106ef061dd2df5238e78
Author: Yasith Jayawardana <[email protected]>
AuthorDate: Sat Jun 6 12:47:41 2026 -0400
fix: seed default sharing data idempotently without ERROR noise (#625)
On every server restart against an existing DB, default-data seeding re-ran
and SharingService.create{Domain,EntityType,PermissionType} logged the
expected duplicate at ERROR with a full stack trace. Make those creates
idempotent: on an existing entry, log one clean WARN and return the existing
id instead of throwing/wrapping. The seeder logs "Ensured" and surfaces
genuine failures at ERROR.
---
.../airavata/orchestration/util/ExpCatalogDBInitConfig.java | 4 ++--
.../java/org/apache/airavata/sharing/service/SharingService.java | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExpCatalogDBInitConfig.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExpCatalogDBInitConfig.java
index 5fbd5ddff3..5cafe49442 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExpCatalogDBInitConfig.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExpCatalogDBInitConfig.java
@@ -90,9 +90,9 @@ public class ExpCatalogDBInitConfig implements DBInitConfig {
private void tryCreate(String label, ThrowingRunnable action) {
try {
action.run();
- logger.info("Created {}", label);
+ logger.info("Ensured {}", label);
} catch (Exception e) {
- logger.debug("{} already exists: {}", label, e.getMessage());
+ logger.error("Failed to ensure {}: {}", label, e.getMessage(), e);
}
}
diff --git
a/airavata-api/sharing-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
b/airavata-api/sharing-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
index c196acb50a..5db2886f9a 100644
---
a/airavata-api/sharing-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
+++
b/airavata-api/sharing-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
@@ -83,6 +83,9 @@ public class SharingService implements SharingFacade,
SharingProvider {
permissionType.setUpdatedTime(System.currentTimeMillis());
(new PermissionTypeRepository()).create(permissionType);
+ return domain.getDomainId();
+ } catch (DuplicateEntryException e) {
+ logger.warn("Domain {} already exists, skipping creation",
domain.getDomainId());
return domain.getDomainId();
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
@@ -635,6 +638,9 @@ public class SharingService implements SharingFacade,
SharingProvider {
entityType.setUpdatedTime(System.currentTimeMillis());
(new EntityTypeRepository()).create(entityType);
return entityType.getEntityTypeId();
+ } catch (DuplicateEntryException e) {
+ logger.warn("EntityType {} already exists, skipping creation",
entityType.getEntityTypeId());
+ return entityType.getEntityTypeId();
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
throw new SharingRegistryException(ex.getMessage() + " Stack
trace:" + ExceptionUtils.getStackTrace(ex));
@@ -727,6 +733,9 @@ public class SharingService implements SharingFacade,
SharingProvider {
permissionType.setUpdatedTime(System.currentTimeMillis());
(new PermissionTypeRepository()).create(permissionType);
return permissionType.getPermissionTypeId();
+ } catch (DuplicateEntryException e) {
+ logger.warn("PermissionType {} already exists, skipping creation",
permissionType.getPermissionTypeId());
+ return permissionType.getPermissionTypeId();
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
throw new SharingRegistryException(ex.getMessage() + " Stack
trace:" + ExceptionUtils.getStackTrace(ex));