From: Simon Brandhof Date: Fri, 20 Jul 2018 09:36:47 +0000 (+0200) Subject: SONAR-11062 Analysis task fails when thread failed previously with OOM X-Git-Tag: 7.5~750 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9cb8739c465cbd26842fff6eb03d05a75f77a9c8;p=sonarqube.git SONAR-11062 Analysis task fails when thread failed previously with OOM --- diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java index 72ef09bed1f..75caebe851c 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java @@ -70,10 +70,6 @@ public class DefaultOrganizationProviderImpl implements DefaultOrganizationProvi @Override public void load() { - checkState( - CACHE.get() == null, - "load called twice for thread '%s' or state wasn't cleared last time it was used", - Thread.currentThread().getName()); CACHE.set(new Cache()); } diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/organization/DefaultOrganizationProviderImplTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/organization/DefaultOrganizationProviderImplTest.java index 75ef3d76540..cc3f33da32b 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/organization/DefaultOrganizationProviderImplTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/organization/DefaultOrganizationProviderImplTest.java @@ -19,6 +19,7 @@ */ package org.sonar.server.organization; +import org.junit.After; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -29,7 +30,6 @@ import org.sonar.db.DbTester; import org.sonar.db.organization.OrganizationDto; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; @@ -54,6 +54,11 @@ public class DefaultOrganizationProviderImplTest { private DefaultOrganizationProviderImpl underTest = new DefaultOrganizationProviderImpl(dbClient); + @After + public void tearDown() { + underTest.unload(); + } + @Test public void get_fails_with_ISE_if_default_organization_internal_property_does_not_exist() { expectISENoDefaultOrganizationUuid(); @@ -116,17 +121,17 @@ public class DefaultOrganizationProviderImplTest { } @Test - public void load_fails_with_ISE_when_called_twice_without_unload_in_between() { + public void load_resets_thread_local_when_called_twice() { + insertOrganization(ORGANIZATION_DTO_1, DATE_1); + dbClient.internalPropertiesDao().save(dbSession, DEFAULT_ORGANIZATION, ORGANIZATION_DTO_1.getUuid()); + dbSession.commit(); + underTest.load(); + DefaultOrganization org1 = underTest.get(); - try { - underTest.load(); - fail("A IllegalStateException should have been raised"); - } catch (IllegalStateException e) { - assertThat(e).hasMessage("load called twice for thread '" + Thread.currentThread().getName() + "' or state wasn't cleared last time it was used"); - } finally { - underTest.unload(); - } + underTest.load(); + DefaultOrganization org2 = underTest.get(); + assertThat(org1).isNotSameAs(org2); } @Test