diff --git a/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/StaxSdkAppServer2.java b/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/StaxSdkAppServer2.java index 3d196a79a4..0298d0d92b 100644 --- a/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/StaxSdkAppServer2.java +++ b/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/StaxSdkAppServer2.java @@ -22,8 +22,8 @@ package org.jclouds.demo.tweetstore.integration; import static com.google.common.base.Predicates.instanceOf; import static java.util.Arrays.asList; -import static org.jclouds.demo.tweetstore.config.utils.ObjectFields.set; -import static org.jclouds.demo.tweetstore.config.utils.ObjectFields.valueOf; +import static org.jclouds.demo.tweetstore.integration.utils.ObjectFields.set; +import static org.jclouds.demo.tweetstore.integration.utils.ObjectFields.valueOf; import java.io.File; import java.io.IOException; @@ -107,6 +107,13 @@ class StaxSdkAppServer2 { serverThread.interrupt(); StaxReflect.getStaxAppQueryTimer(server).cancel(); KillerCallback requestMonitorAssassin = new KillerCallback(StaxReflect.getRequestMonitorTimerCallback(server)); + /* + * Hoping for the best here in terms of visibility - we're setting a variable in a + * different thread which isn't guaranteed to see the change. + * But we can't set the callbackClient before serverThread starts (which would create + * a happens-before relationship) because the objects on which the callbackClient is + * set have not been created yet at that point. + */ set("callbackClient", StaxReflect.getRequestMonitorTimer(server), requestMonitorAssassin); requestMonitorAssassin.setToKill(); } diff --git a/demos/tweetstore/runatcloud-tweetstore/src/main/java/org/jclouds/demo/tweetstore/config/utils/ObjectFields.java b/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/utils/ObjectFields.java similarity index 97% rename from demos/tweetstore/runatcloud-tweetstore/src/main/java/org/jclouds/demo/tweetstore/config/utils/ObjectFields.java rename to demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/utils/ObjectFields.java index 57f857463c..e6c108ab3f 100644 --- a/demos/tweetstore/runatcloud-tweetstore/src/main/java/org/jclouds/demo/tweetstore/config/utils/ObjectFields.java +++ b/demos/tweetstore/runatcloud-tweetstore/src/test/java/org/jclouds/demo/tweetstore/integration/utils/ObjectFields.java @@ -18,7 +18,7 @@ * limitations under the License. * ==================================================================== */ -package org.jclouds.demo.tweetstore.config.utils; +package org.jclouds.demo.tweetstore.integration.utils; import java.lang.reflect.Field;