modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
| 17 ++++++++++
1 file changed, 17 insertions(+)
New commits:
commit c0110f46915f697dc4bb894bf6433facffa8c0e1
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed May 29 10:52:14 2013 -0400
try to deal with async raw inserts
Raw data is now inserted asynchronously. Tests in the itests-2 module lack a good
way,
short of adding test-specific hooks into production code, for blocking or getting
notified
when inserts have finished. This commit provides a temporary work around.
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
index 163a61b..63cb23d 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
@@ -166,6 +166,7 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test
{
report.addData(new MeasurementDataNumeric(buckets.get(59) + 30, request, 6.6));
dataManager.mergeMeasurementReport(report);
+ waitForRawInserts();
List<MeasurementDataNumericHighLowComposite> actualData =
findDataForContext(overlord,
EntityContext.forResource(resource.getId()), dynamicSchedule,
beginTime.getMillis(), endTime.getMillis());
@@ -210,6 +211,7 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test
{
report.addData(new MeasurementDataNumeric(buckets.get(59) + 30, request, 6.6));
dataManager.mergeMeasurementReport(report);
+ waitForRawInserts();
MeasurementAggregate actual = dataManager.getAggregate(overlord,
dynamicSchedule.getId(),
beginTime.getMillis(), endTime.getMillis());
@@ -393,4 +395,19 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test
{
return data.get(0);
}
+ /**
+ * Raw data is inserted asynchronously so it is possible that
+ * MeasurementDataManagerBean.mergeMeasurementReport will return before all raw data
in
+ * the report has been inserted. There currently is not a good way for tests in the
+ * itests-2 module to block or to get notified when raw data inserts have finished.
As
+ * a (hopefully temporary) hack we will sleep for a somewhat arbitrary amount of
time
+ * to allow for the inserts to complete.
+ */
+ private void waitForRawInserts() {
+ try {
+ Thread.sleep(300);
+ } catch (InterruptedException e) {
+ }
+ }
+
}
Show replies by date