Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
maxAssignmentsExceededInfo.quotaExceededException);
onlineDsAssignmentStrategy = new OnlineDsAssignmentStrategy(targetRepository, actionRepository, actionStatusRepository,
quotaManagement, this::isConfirmationFlowEnabled, repositoryProperties,
maxAssignmentsExceededHandler);

Check warning on line 179 in hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java

View workflow job for this annotation

GitHub Actions / Analyze (java-kotlin)

possible 'this' escape before subclass is fully initialized
offlineDsAssignmentStrategy = new OfflineDsAssignmentStrategy(targetRepository, actionRepository, actionStatusRepository,
quotaManagement, this::isConfirmationFlowEnabled, repositoryProperties,
maxAssignmentsExceededHandler);
Expand Down Expand Up @@ -375,7 +375,7 @@
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
@Retryable(includes = ConcurrencyFailureException.class, maxRetriesString = Constants.RETRY_MAX, delayString = Constants.RETRY_DELAY)
public Action forceTargetAction(final long actionId) {
final JpaAction action = actionRepository.findById(actionId)
Expand All @@ -390,7 +390,7 @@
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void deleteAction(final long actionId) {
log.info("Deleting action {}", actionId);
final JpaAction action = actionRepository.getById(actionId);
Expand All @@ -404,7 +404,7 @@
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void deleteActionsByRsql(final String rsql) {
log.info("Deleting actions matching rsql {}", rsql);
final Specification<JpaAction> rsqlSpec = QLSupport.getInstance().buildSpec(rsql, ActionFields.class);
Expand All @@ -423,27 +423,27 @@

// TODO - since Spring 4.x migration, reconsider if it is the best way
private static <T> PredicateSpecification<T> predicateSpec(final Specification<T> spec) {
return (from, cb) -> spec.toPredicate((Root<T>) from, cb.createQuery(), cb);

Check warning on line 426 in hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java

View workflow job for this annotation

GitHub Actions / Analyze (java-kotlin)

unchecked cast
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void deleteActionsByIds(final List<Long> actionIds) {
log.info("Deleting actions with ids {}", actionIds);
checkActionsEligibleForDeletion(actionIds);
actionRepository.deleteAllById(actionIds);
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void deleteTargetActionsByIds(final String controllerId, final List<Long> actionsIds) {
log.info("Delete actions for target {} with action ids {}", controllerId, actionsIds);
checkActionsEligibleForDeletion(actionsIds);
actionRepository.delete(ActionSpecifications.byControllerIdAndIdIn(controllerId, actionsIds));
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void deleteOldestTargetActions(final String controllerId, final int keepLast) {
final JpaTarget target = targetRepository.findByControllerId(controllerId).orElseThrow(EntityNotFoundException::new);
// check access to target since deletion will be executed via native query
Expand All @@ -469,6 +469,7 @@
}

@Override
@Transactional(isolation = Isolation.READ_COMMITTED)
public void startScheduledActionsByRolloutGroupParent(final long rolloutId, final long distributionSetId, final Long rolloutGroupParentId) {
while (DeploymentHelper.runInNewTransaction(txManager, "startScheduledActions-" + rolloutId, status -> {
final PageRequest pageRequest = PageRequest.of(0, ACTION_PAGE_LIMIT);
Expand All @@ -492,6 +493,7 @@
}

@Override
@Transactional(isolation = Isolation.READ_COMMITTED)
public void startScheduledActions(final List<Action> rolloutGroupActions) {
// Close actions already assigned and collect pending assignments
final List<JpaAction> pendingTargetAssignments = rolloutGroupActions.stream()
Expand Down Expand Up @@ -519,7 +521,7 @@
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public int deleteActionsByStatusAndLastModifiedBefore(final Set<Status> status, final long lastModified) {
if (status.isEmpty()) {
return 0;
Expand Down Expand Up @@ -550,7 +552,7 @@
}

@Override
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
public void cancelActionsForDistributionSet(final ActionCancellationType cancelationType, final DistributionSet distributionSet) {
actionRepository.findAll(ActionSpecifications.byDistributionSetIdAndActiveAndStatusIsNot(distributionSet.getId(), Status.CANCELING))
.forEach(action -> {
Expand Down Expand Up @@ -582,6 +584,7 @@
public record MaxAssignmentsExceededInfo(long targetId, long requested, AssignmentQuotaExceededException quotaExceededException) {}

@Override
@Transactional(isolation = Isolation.READ_COMMITTED)
public void handleMaxAssignmentsExceeded(
final Long targetId, final Long requested, final AssignmentQuotaExceededException quotaExceededException) {
int actionsPurgePercentage = getActionsPurgePercentage();
Expand Down
Loading