From: Julien Lancelot Date: Mon, 3 Dec 2012 14:32:49 +0000 (+0100) Subject: SONAR-3306 Improve unit test to fix issue on it-sonar-persistence tests X-Git-Tag: 3.4~202 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9e6d221047e1a2d4076e285da63993ead0920884;p=sonarqube.git SONAR-3306 Improve unit test to fix issue on it-sonar-persistence tests --- diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/SemaphoreDaoTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/SemaphoreDaoTest.java index 781d5c95997..6458060cb3a 100644 --- a/sonar-core/src/test/java/org/sonar/core/persistence/SemaphoreDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/persistence/SemaphoreDaoTest.java @@ -27,6 +27,9 @@ import org.junit.rules.ExpectedException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.util.Date; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CyclicBarrier; @@ -234,12 +237,34 @@ public class SemaphoreDaoTest extends AbstractDaoTestCase { } private boolean isRecent(Date date) { - Date now = new Date(); - Date futur = DateUtils.addDays(now, 1); - Date past = DateUtils.addDays(now, -1); + Date futur = DateUtils.addMinutes(now(), 1); + Date past = DateUtils.addDays(now(), -1); return date.after(past) && date.before(futur); } + private Date now() { + Connection connection = null; + PreparedStatement statement = null; + ResultSet rs = null; + try { + connection = getConnection(); + rs = null; + statement = connection.prepareStatement("select current_timestamp"); + rs = statement.executeQuery(); + if (rs.next()) { + return new Date(); + } + return null; + + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + DatabaseUtils.closeQuietly(rs); + DatabaseUtils.closeQuietly(statement); + DatabaseUtils.closeQuietly(connection); + } + } + private static class Runner extends Thread { SemaphoreDao dao; AtomicInteger locks;