Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
kypo-adaptive-training
Manage
Activity
Members
Labels
Plan
Issues
3
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
2
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MUNI-KYPO-CRP
backend-java
kypo-adaptive-training
Merge requests
!138
Resolve "Duplicate userRefId causing lockup on a parallel upload"
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Resolve "Duplicate userRefId causing lockup on a parallel upload"
117-duplicate-userrefid-causing-lockup-on-a-parallel-upload
into
develop
Overview
1
Commits
6
Pipelines
3
Changes
11
Merged
Mário Murín
requested to merge
117-duplicate-userrefid-causing-lockup-on-a-parallel-upload
into
develop
8 months ago
Overview
1
Commits
6
Pipelines
3
Changes
2
Expand
Closes
#117 (closed)
👍
0
👎
0
Merge request reports
Compare
version 1
version 2
6f8a9d8b
8 months ago
version 1
3c136c93
8 months ago
develop (base)
and
version 2
latest version
327fa05e
6 commits,
8 months ago
version 2
6f8a9d8b
5 commits,
8 months ago
version 1
3c136c93
4 commits,
8 months ago
Show latest version
2 files
+
11
−
1
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
Search (e.g. *.vue) (Ctrl+P)
src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingInstanceService.java
+
9
−
0
Options
@@ -135,6 +135,7 @@ public class TrainingInstanceService {
public
String
update
(
TrainingInstance
trainingInstanceToUpdate
)
{
validateStartAndEndTime
(
trainingInstanceToUpdate
);
TrainingInstance
trainingInstance
=
findById
(
trainingInstanceToUpdate
.
getId
());
checkNotRevivingAnExpiredInstance
(
trainingInstanceToUpdate
,
trainingInstance
);
//add original organizers to update
trainingInstanceToUpdate
.
setOrganizers
(
new
HashSet
<>(
trainingInstance
.
getOrganizers
()));
addLoggedInUserAsOrganizerToTrainingInstance
(
trainingInstanceToUpdate
);
@@ -176,6 +177,14 @@ public class TrainingInstanceService {
}
}
private
void
checkNotRevivingAnExpiredInstance
(
TrainingInstance
trainingInstanceToUpdate
,
TrainingInstance
currentTrainingInstance
)
{
if
(
currentTrainingInstance
.
finished
()
&&
!
trainingInstanceToUpdate
.
finished
())
{
throw
new
EntityConflictException
(
new
EntityErrorDetail
(
TrainingInstance
.
class
,
"id"
,
trainingInstanceToUpdate
.
getId
().
getClass
(),
trainingInstanceToUpdate
.
getId
(),
"End time of an expired instance cannot be set to the future."
));
}
}
private
void
checkChangedFieldsOfTrainingInstance
(
TrainingInstance
trainingInstanceToUpdate
,
TrainingInstance
currentTrainingInstance
)
{
if
(!
currentTrainingInstance
.
getStartTime
().
equals
(
trainingInstanceToUpdate
.
getStartTime
()))
{
throw
new
EntityConflictException
(
new
EntityErrorDetail
(
TrainingInstance
.
class
,
"id"
,
Long
.
class
,
trainingInstanceToUpdate
.
getId
(),
Loading