From 5119dc8f3678bfc07a7a65fcd35023d7749aa585 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Fri, 24 Oct 2014 15:31:59 +0200 Subject: [PATCH] SONAR-5755 Update uuids on existing resources to deal with project structure changes --- .../sonar/batch/index/DefaultResourcePersister.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java index 45621a3718f..ac4c026b667 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java +++ b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java @@ -280,7 +280,7 @@ public final class DefaultResourcePersister implements ResourcePersister { } } - private ResourceModel findOrCreateModel(Resource resource, @Nullable Resource parentReference) { + private ResourceModel findOrCreateModel(Resource resource, @Nullable Resource parentResource) { ResourceModel model; try { model = session.getSingleResult(ResourceModel.class, "key", resource.getEffectiveKey()); @@ -288,11 +288,12 @@ public final class DefaultResourcePersister implements ResourcePersister { if (StringUtils.isBlank(resource.getEffectiveKey())) { throw new SonarException("Unable to persist resource " + resource.toString() + ". Resource effective key is blank. This may be caused by an outdated plugin."); } - model = createModel(resource, parentReference); + model = createModel(resource, parentResource); } else { mergeModel(model, resource); } + updateUuids(resource, parentResource, model); return model; } catch (NonUniqueResultException e) { @@ -305,7 +306,7 @@ public final class DefaultResourcePersister implements ResourcePersister { model.setEnabled(Boolean.TRUE); model.setDescription(resource.getDescription()); model.setKey(resource.getEffectiveKey()); - setUuids(resource, parentResource, model); + model.setUuid(UUID.randomUUID().toString()); model.setPath(resource.getPath()); Language language = resource.getLanguage(); if (language != null) { @@ -322,8 +323,7 @@ public final class DefaultResourcePersister implements ResourcePersister { return model; } - private void setUuids(Resource resource, Resource parentResource, ResourceModel model) { - model.setUuid(UUID.randomUUID().toString()); + private void updateUuids(Resource resource, Resource parentResource, ResourceModel model) { if (parentResource != null) { ResourceModel parentModel = session.getSingleResult(ResourceModel.class, "id", parentResource.getId()); if (parentModel.getProjectUuid() != null) { -- 2.39.5