http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/fac22702/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java 
b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 2897a63..95dc9a6 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -71,7 +71,6 @@ import com.cloud.agent.manager.allocator.HostAllocator;
 import com.cloud.alert.AlertManager;
 import com.cloud.capacity.CapacityManager;
 import com.cloud.cluster.ClusterManager;
-import com.cloud.cluster.StackMaid;
 import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.dao.ConfigurationDao;
@@ -238,7 +237,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
 
     @Inject
     protected ConfigurationDao _configDao;
-    
+
     Map<VirtualMachine.Type, VirtualMachineGuru<? extends VMInstanceVO>> 
_vmGurus = new HashMap<VirtualMachine.Type, VirtualMachineGuru<? extends 
VMInstanceVO>>();
     protected StateMachine2<State, VirtualMachine.Event, VirtualMachine> 
_stateMachine;
 
@@ -288,7 +287,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Allocating nics for " + vm);
         }
-        
+
         try {
             _networkMgr.allocate(vmProfile, networks);
         } catch (ConcurrentOperationException e) {
@@ -673,7 +672,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                             }
                             continue;
                         }
-    
+
                         StoragePoolVO pool = 
_storagePoolDao.findById(vol.getPoolId());
                         if (!pool.isInMaintenance()) {
                             if (s_logger.isDebugEnabled()) {
@@ -707,7 +706,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                         }
                     }
                 }
-                
+
                 VirtualMachineProfileImpl<T> vmProfile = new 
VirtualMachineProfileImpl<T>(vm, template, offering, account, params);
                 DeployDestination dest = null;
                 for (DeploymentPlanner planner : _planners) {
@@ -757,7 +756,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                     if(!reuseVolume){
                         reuseVolume = true;
                     }
-                    
+
                     Commands cmds = null;
                     vmGuru.finalizeVirtualMachineProfile(vmProfile, dest, ctx);
 
@@ -776,10 +775,10 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                     _workDao.updateStep(work, Step.Starting);
 
                     _agentMgr.send(destHostId, cmds);
-                    
+
                     _workDao.updateStep(work, Step.Started);
-                    
-                    
+
+
                     StartAnswer startAnswer = 
cmds.getAnswer(StartAnswer.class);
                     if (startAnswer != null && startAnswer.getResult()) {
                         String host_guid = startAnswer.getHost_guid();
@@ -803,7 +802,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.info("The guru did not like the 
answers so stopping " + vm);
                             }
-                           
+
                             StopCommand cmd = new 
StopCommand(vm.getInstanceName());
                             StopAnswer answer = (StopAnswer) 
_agentMgr.easySend(destHostId, cmd);
                             if (answer == null || !answer.getResult()) {
@@ -815,7 +814,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                         }
                     }
                     s_logger.info("Unable to start VM on " + dest.getHost() + 
" due to " + (startAnswer == null ? " no start answer" : 
startAnswer.getDetails()));
-                    
+
                 } catch (OperationTimedoutException e) {
                     s_logger.debug("Unable to send the start command to host " 
+ dest.getHost());
                     if (e.isActive()) {
@@ -1071,7 +1070,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         }
 
         vmGuru.prepareStop(profile);
-        
+
         StopCommand stop = new StopCommand(vm, vm.getInstanceName(), null);
         boolean stopped = false;
         StopAnswer answer = null;
@@ -1560,13 +1559,13 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
     public boolean isVirtualMachineUpgradable(VirtualMachine vm, 
ServiceOffering offering) {
         boolean isMachineUpgradable = true;            
         for(HostAllocator allocator : _hostAllocators) {
-               isMachineUpgradable = allocator.isVirtualMachineUpgradable(vm, 
offering);
-               if(isMachineUpgradable)
-                       continue;
-               else
-                       break;
+            isMachineUpgradable = allocator.isVirtualMachineUpgradable(vm, 
offering);
+            if(isMachineUpgradable)
+                continue;
+            else
+                break;
         }
-        
+
         return isMachineUpgradable;
     }
 
@@ -1644,7 +1643,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                 commands.addCommand(command);
             }
         }
-        
+
         for (final AgentVmInfo left : infos.values()) {
             boolean found = false;
             for (VirtualMachineGuru<? extends VMInstanceVO> vmGuru : 
_vmGurus.values()) {
@@ -1740,7 +1739,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
 
 
     public void fullSync(final long clusterId, Map<String, Pair<String, 
State>> newStates) {
-       if (newStates==null)return;
+        if (newStates==null)return;
         Map<Long, AgentVmInfo> infos = convertToInfos(newStates);
         Set<VMInstanceVO> set_vms = Collections.synchronizedSet(new 
HashSet<VMInstanceVO>());
         set_vms.addAll(_vmDao.listByClusterId(clusterId));
@@ -1750,11 +1749,11 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
             AgentVmInfo info =  infos.remove(vm.getId());
             VMInstanceVO castedVm = null;
             if ((info == null && (vm.getState() == State.Running || 
vm.getState() == State.Starting))  
-                       ||  (info != null && (info.state == State.Running && 
vm.getState() == State.Starting))) 
+                    ||  (info != null && (info.state == State.Running && 
vm.getState() == State.Starting))) 
             {
-               s_logger.info("Found vm " + vm.getInstanceName() + " in 
inconsistent state. " + vm.getState() + " on CS while " +  (info == null ? 
"Stopped" : "Running") + " on agent");
+                s_logger.info("Found vm " + vm.getInstanceName() + " in 
inconsistent state. " + vm.getState() + " on CS while " +  (info == null ? 
"Stopped" : "Running") + " on agent");
                 info = new AgentVmInfo(vm.getInstanceName(), getVmGuru(vm), 
vm, State.Stopped);
-                       
+
                 // Bug 13850- grab outstanding work item if any for this VM 
state so that we mark it as DONE after we change VM state, else it will remain 
pending
                 ItWorkVO work = _workDao.findByOutstandingWork(vm.getId(), 
vm.getState());
                 if (work != null) {
@@ -1763,8 +1762,8 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                     }
                 }
                 vm.setState(State.Running); // set it as running and let HA 
take care of it
-                       _vmDao.persist(vm);
-                       
+                _vmDao.persist(vm);
+
                 if (work != null) {
                     if (s_logger.isDebugEnabled()) {
                         s_logger.debug("Updating outstanding work item to 
Done, id:" + work.getId());
@@ -1772,7 +1771,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                     work.setStep(Step.Done);
                     _workDao.update(work.getId(), work);
                 }
-                       
+
                 castedVm = info.guru.findById(vm.getId());
                 try {
                     Host host = _hostDao.findByGuid(info.getHostUuid());
@@ -1812,20 +1811,20 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                 }
             }
             else
-            // host id can change
-               if (info != null && vm.getState() == State.Running){
-                  // check for host id changes
-                  Host host = _hostDao.findByGuid(info.getHostUuid());
-                   if (host != null && (vm.getHostId() == null || host.getId() 
!= vm.getHostId())){
-                       s_logger.info("Found vm " + vm.getInstanceName() + " 
with inconsistent host in db, new host is " +  host.getId());
-                               try {
-                                               stateTransitTo(vm, 
VirtualMachine.Event.AgentReportMigrated, host.getId());
-                                       } catch (NoTransitionException e) {
-                                               s_logger.warn(e.getMessage());
-                                       }
-                       }
-            }
-             /* else if(info == null && vm.getState() == State.Stopping) { 
//Handling CS-13376
+                // host id can change
+                if (info != null && vm.getState() == State.Running){
+                    // check for host id changes
+                    Host host = _hostDao.findByGuid(info.getHostUuid());
+                    if (host != null && (vm.getHostId() == null || 
host.getId() != vm.getHostId())){
+                        s_logger.info("Found vm " + vm.getInstanceName() + " 
with inconsistent host in db, new host is " +  host.getId());
+                        try {
+                            stateTransitTo(vm, 
VirtualMachine.Event.AgentReportMigrated, host.getId());
+                        } catch (NoTransitionException e) {
+                            s_logger.warn(e.getMessage());
+                        }
+                    }
+                }
+            /* else if(info == null && vm.getState() == State.Stopping) { 
//Handling CS-13376
                         s_logger.warn("Marking the VM as Stopped as it was 
still stopping on the CS" +vm.getName());
                         vm.setState(State.Stopped); // Setting the VM as 
stopped on the DB and clearing it from the host
                         vm.setLastHostId(vm.getHostId());
@@ -1863,7 +1862,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         boolean is_alien_vm = true;
         long alien_vm_count = -1;
         for (Map.Entry<String, Pair<String, State>> entry : 
newStates.entrySet()) {
-               is_alien_vm = true;
+            is_alien_vm = true;
             for (VirtualMachineGuru<? extends VMInstanceVO> vmGuru : vmGurus) {
                 String name = entry.getKey();
                 VMInstanceVO vm = vmGuru.findByName(name);
@@ -1881,8 +1880,8 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
             }
             // alien VMs
             if (is_alien_vm){
-               map.put(alien_vm_count--, new AgentVmInfo(entry.getKey(), null, 
null, entry.getValue().second(), entry.getValue().first()));
-               s_logger.warn("Found an alien VM " + entry.getKey());
+                map.put(alien_vm_count--, new AgentVmInfo(entry.getKey(), 
null, null, entry.getValue().second(), entry.getValue().first()));
+                s_logger.warn("Found an alien VM " + entry.getKey());
             }
         }
         return map;
@@ -2267,13 +2266,13 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         Long clusterId = agent.getClusterId();
         long agentId = agent.getId();
         if (agent.getHypervisorType() == HypervisorType.XenServer) { // only 
for Xen
-               StartupRoutingCommand startup = (StartupRoutingCommand) cmd;
-               HashMap<String, Pair<String, State>> allStates = 
startup.getClusterVMStateChanges();
-               if (allStates != null){
-                       this.fullSync(clusterId, allStates);
-               }
-               
-               // initiate the cron job
+            StartupRoutingCommand startup = (StartupRoutingCommand) cmd;
+            HashMap<String, Pair<String, State>> allStates = 
startup.getClusterVMStateChanges();
+            if (allStates != null){
+                this.fullSync(clusterId, allStates);
+            }
+
+            // initiate the cron job
             ClusterSyncCommand syncCmd = new 
ClusterSyncCommand(Integer.parseInt(Config.ClusterDeltaSyncInterval.getDefaultValue()),
 clusterId);
             try {
                 long seq_no = _agentMgr.send(agentId, new Commands(syncCmd), 
this);
@@ -2340,7 +2339,6 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
             } catch (Exception e) {
                 s_logger.warn("Caught the following exception on transition 
checking", e);
             } finally {
-                StackMaid.current().exitCleanup();
                 lock.unlock();
             }
         }
@@ -2375,7 +2373,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
     public VMInstanceVO findById(long vmId) {
         return _vmDao.findById(vmId);
     }
-    
+
     @Override
     public void checkIfCanUpgrade(VirtualMachine vmInstance, long 
newServiceOfferingId) {
         ServiceOfferingVO newServiceOffering = 
_offeringDao.findById(newServiceOfferingId);
@@ -2387,7 +2385,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         if (!vmInstance.getState().equals(State.Stopped)) {
             s_logger.warn("Unable to upgrade virtual machine " + 
vmInstance.toString() + " in state " + vmInstance.getState());
             throw new InvalidParameterValueException("Unable to upgrade 
virtual machine " + vmInstance.toString() + " " +
-                       "in state " + vmInstance.getState()
+                    "in state " + vmInstance.getState()
                     + "; make sure the virtual machine is stopped and not in 
an error state before upgrading.");
         }
 
@@ -2395,11 +2393,11 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         if (vmInstance.getServiceOfferingId() == newServiceOffering.getId()) {
             if (s_logger.isInfoEnabled()) {
                 s_logger.info("Not upgrading vm " + vmInstance.toString() + " 
since it already has the requested " +
-                               "service offering (" + 
newServiceOffering.getName() + ")");
+                        "service offering (" + newServiceOffering.getName() + 
")");
             }
 
             throw new InvalidParameterValueException("Not upgrading vm " + 
vmInstance.toString() + " since it already " +
-                       "has the requested service offering (" + 
newServiceOffering.getName() + ")");
+                    "has the requested service offering (" + 
newServiceOffering.getName() + ")");
         }
 
         ServiceOfferingVO currentServiceOffering = 
_offeringDao.findByIdIncludingRemoved(vmInstance.getServiceOfferingId());
@@ -2421,7 +2419,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
                     "useLocalStorage=" + 
currentServiceOffering.getUseLocalStorage()
                     + ", target offering useLocalStorage=" + 
newServiceOffering.getUseLocalStorage());
         }
-        
+
         // if vm is a system vm, check if it is a system service offering, if 
yes return with error as it cannot be used for user vms
         if (currentServiceOffering.getSystemUse() != 
newServiceOffering.getSystemUse()) {
             throw new InvalidParameterValueException("isSystem property is 
different for current service offering and new service offering");
@@ -2430,7 +2428,7 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         // Check that there are enough resources to upgrade the service 
offering
         if (!isVirtualMachineUpgradable(vmInstance, newServiceOffering)) {
             throw new InvalidParameterValueException("Unable to upgrade 
virtual machine, not enough resources available " +
-                       "for an offering of " + newServiceOffering.getCpu() + " 
cpu(s) at "
+                    "for an offering of " + newServiceOffering.getCpu() + " 
cpu(s) at "
                     + newServiceOffering.getSpeed() + " Mhz, and " + 
newServiceOffering.getRamSize() + " MB of memory");
         }
 
@@ -2439,12 +2437,12 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         List<String> newTags = 
_configMgr.csvTagsToList(newServiceOffering.getTags());
         if (!newTags.containsAll(currentTags)) {
             throw new InvalidParameterValueException("Unable to upgrade 
virtual machine; the new service offering " +
-                       "does not have all the tags of the "
+                    "does not have all the tags of the "
                     + "current service offering. Current service offering 
tags: " + currentTags + "; " + "new service " +
-                               "offering tags: " + newTags);
+                    "offering tags: " + newTags);
         }
     }
-    
+
     @Override
     public boolean upgradeVmDb(long vmId, long serviceOfferingId) {
         VMInstanceVO vmForUpdate = _vmDao.createForUpdate();
@@ -2455,38 +2453,38 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
         vmForUpdate.setServiceOfferingId(newSvcOff.getId());
         return _vmDao.update(vmId, vmForUpdate);
     }
-    
+
     @Override
     public NicProfile addVmToNetwork(VirtualMachine vm, Network network, 
NicProfile requested) throws ConcurrentOperationException, 
-                                                    
ResourceUnavailableException, InsufficientCapacityException {
-        
+    ResourceUnavailableException, InsufficientCapacityException {
+
         s_logger.debug("Adding vm " + vm + " to network " + network + "; 
requested nic profile " + requested);
         VMInstanceVO vmVO = _vmDao.findById(vm.getId());
         ReservationContext context = new ReservationContextImpl(null, null, 
_accountMgr.getActiveUser(User.UID_SYSTEM), 
                 _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM));
-        
+
         VirtualMachineProfileImpl<VMInstanceVO> vmProfile = new 
VirtualMachineProfileImpl<VMInstanceVO>(vmVO, null, 
                 null, null, null);
-        
+
         DataCenter dc = _configMgr.getZone(network.getDataCenterId());
         Host host = _hostDao.findById(vm.getHostId()); 
         DeployDestination dest = new DeployDestination(dc, null, null, host);
-        
+
         //check vm state
         if (vm.getState() == State.Running) {
             //1) allocate and prepare nic
             NicProfile nic = _networkMgr.createNicForVm(network, requested, 
context, vmProfile, true);
-            
+
             //2) Convert vmProfile to vmTO
             HypervisorGuru hvGuru = 
_hvGuruMgr.getGuru(vmProfile.getVirtualMachine().getHypervisorType());
             VirtualMachineTO vmTO = hvGuru.implement(vmProfile);
-            
+
             //3) Convert nicProfile to NicTO
             NicTO nicTO = toNicTO(nic, 
vmProfile.getVirtualMachine().getHypervisorType());
-            
+
             //4) plug the nic to the vm
             VirtualMachineGuru<VMInstanceVO> vmGuru = getVmGuru(vmVO);
-            
+
             s_logger.debug("Plugging nic for vm " + vm + " in network " + 
network);
             if (vmGuru.plugNic(network, nicTO, vmTO, context, dest)) {
                 s_logger.debug("Nic is plugged successfully for vm " + vm + " 
in network " + network + ". Vm  is a part of network now");
@@ -2509,40 +2507,40 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
     @Override
     public NicTO toNicTO(NicProfile nic, HypervisorType hypervisorType) {
         HypervisorGuru hvGuru = _hvGuruMgr.getGuru(hypervisorType);
-        
+
         NicTO nicTO = hvGuru.toNicTO(nic);
         return nicTO;
     }
-    
+
     @Override
     public boolean removeVmFromNetwork(VirtualMachine vm, Network network, URI 
broadcastUri) throws ConcurrentOperationException, ResourceUnavailableException 
{
         VMInstanceVO vmVO = _vmDao.findById(vm.getId());
         ReservationContext context = new ReservationContextImpl(null, null, 
_accountMgr.getActiveUser(User.UID_SYSTEM), 
                 _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM));
-        
+
         VirtualMachineProfileImpl<VMInstanceVO> vmProfile = new 
VirtualMachineProfileImpl<VMInstanceVO>(vmVO, null, 
                 null, null, null);
-        
+
         DataCenter dc = _configMgr.getZone(network.getDataCenterId());
         Host host = _hostDao.findById(vm.getHostId()); 
         DeployDestination dest = new DeployDestination(dc, null, null, host);
         VirtualMachineGuru<VMInstanceVO> vmGuru = getVmGuru(vmVO);
         HypervisorGuru hvGuru = 
_hvGuruMgr.getGuru(vmProfile.getVirtualMachine().getHypervisorType());
         VirtualMachineTO vmTO = hvGuru.implement(vmProfile);
-        
+
         Nic nic = null;
-        
+
         if (broadcastUri != null) {
             nic = 
_nicsDao.findByNetworkIdInstanceIdAndBroadcastUri(network.getId(), vm.getId(), 
broadcastUri.toString());
         } else {
             nic = _networkMgr.getNicInNetwork(vm.getId(), network.getId());
         }
-        
+
         NicProfile nicProfile = new NicProfile(nic, network, 
nic.getBroadcastUri(), nic.getIsolationUri(), 
                 _networkMgr.getNetworkRate(network.getId(), vm.getId()), 
                 _networkMgr.isSecurityGroupSupportedInNetwork(network), 
                 
_networkMgr.getNetworkTag(vmProfile.getVirtualMachine().getHypervisorType(), 
network));
-        
+
         //1) Unplug the nic
         NicTO nicTO = toNicTO(nicProfile, 
vmProfile.getVirtualMachine().getHypervisorType());
         s_logger.debug("Un-plugging nic for vm " + vm + " from network " + 
network);
@@ -2553,14 +2551,14 @@ public class VirtualMachineManagerImpl implements 
VirtualMachineManager, Listene
             s_logger.warn("Failed to unplug nic for the vm " + vm + " from 
network " + network);
             return false;
         }
-        
+
         //2) Release the nic
         _networkMgr.releaseNic(vmProfile, nic);
         s_logger.debug("Successfully released nic " + nic +  "for vm " + vm);
-        
+
         //3) Remove the nic
         _networkMgr.removeNic(vmProfile, nic);
         return result;
     }
-   
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/fac22702/server/test/com/cloud/async/TestAsync.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/async/TestAsync.java 
b/server/test/com/cloud/async/TestAsync.java
index 187f2e5..6f67fe2 100644
--- a/server/test/com/cloud/async/TestAsync.java
+++ b/server/test/com/cloud/async/TestAsync.java
@@ -19,18 +19,13 @@ package com.cloud.async;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
-
 import junit.framework.Assert;
 
-import com.cloud.async.AsyncJobVO;
-import com.cloud.cluster.StackMaid;
+import org.apache.log4j.Logger;
+
 import com.cloud.cluster.CheckPointVO;
 import com.cloud.cluster.dao.StackMaidDao;
 import com.cloud.cluster.dao.StackMaidDaoImpl;
-import com.cloud.serializer.Param;
-import com.cloud.utils.ActionDelegate;
-import com.cloud.utils.Pair;
 import com.cloud.utils.db.Transaction;
 import com.cloud.utils.testcase.Log4jEnabledTestCase;
 
@@ -42,15 +37,15 @@ public class TestAsync extends Log4jEnabledTestCase {
        public static class SampleAsyncResult {
                @Param(name="name", propName="name")
                private final String _name;
-               
+
                @Param
                private final int count;
-               
+
                public SampleAsyncResult(String name, int count) {
                        _name = name;
                        this.count = count;
                }
-               
+
                public String getName() { return _name; }
                public int getCount() { return count; }
        }
@@ -60,31 +55,31 @@ public class TestAsync extends Log4jEnabledTestCase {
                AsyncJobVO job = new AsyncJobVO(1, 1, "TestCmd", null);
                job.setInstanceType("user_vm");
                job.setInstanceId(1000L);
-               
+
                char[] buf = new char[1024];
                for(int i = 0; i < 1024; i++)
                        buf[i] = 'a';
-                       
+
                job.setResult(new String(buf));
                dao.persist(job);
-               
+
                AsyncJobVO jobVerify = dao.findById(job.getId());
-               
+
                Assert.assertTrue(jobVerify.getCmd().equals(job.getCmd()));
                Assert.assertTrue(jobVerify.getUserId() == 1);
                Assert.assertTrue(jobVerify.getAccountId() == 1);
-               
+
                String result = jobVerify.getResult();
                for(int i = 0; i < 1024; i++)
                        Assert.assertTrue(result.charAt(i) == 'a');
-               
+
                jobVerify = dao.findInstancePendingAsyncJob("user_vm", 1000L);
                Assert.assertTrue(jobVerify != null);
                Assert.assertTrue(jobVerify.getCmd().equals(job.getCmd()));
                Assert.assertTrue(jobVerify.getUserId() == 1);
                Assert.assertTrue(jobVerify.getAccountId() == 1);
        }
-       
+
        public void testSerialization() {
                List<Pair<String, Object>> l;
                int value = 1;
@@ -93,23 +88,23 @@ public class TestAsync extends Log4jEnabledTestCase {
                Assert.assertTrue(l.get(0).first().equals("result"));
                Assert.assertTrue(l.get(0).second().equals("1"));
                l.clear();
-               
+
                SampleAsyncResult result = new SampleAsyncResult("vmops", 1);
                l = SerializerHelper.toPairList(result, "result");
-               
+
                Assert.assertTrue(l.size() == 2);
                Assert.assertTrue(l.get(0).first().equals("name"));
                Assert.assertTrue(l.get(0).second().equals("vmops"));
                Assert.assertTrue(l.get(1).first().equals("count"));
                Assert.assertTrue(l.get(1).second().equals("1"));
        }
-       
+
        public void testAsyncResult() {
                AsyncJobResult result = new AsyncJobResult(1);
-               
+
                result.setResultObject(100);
                
Assert.assertTrue(result.getResult().equals("java.lang.Integer/100"));
-               
+
                Object obj = result.getResultObject();
                Assert.assertTrue(obj instanceof Integer);
                Assert.assertTrue(((Integer)obj).intValue() == 100);
@@ -119,7 +114,7 @@ public class TestAsync extends Log4jEnabledTestCase {
                Transaction txn = Transaction.open("testTransaction");
                try {
                        txn.start();
-                       
+
                        AsyncJobDao dao = new AsyncJobDaoImpl();
                        AsyncJobVO job = new AsyncJobVO(1, 1, "TestCmd", null);
                        job.setInstanceType("user_vm");
@@ -131,11 +126,11 @@ public class TestAsync extends Log4jEnabledTestCase {
                        txn.close();
                }
        }
-       
+
        public void testMorevingian() {
                int threadCount = 10;
                final int testCount = 10;
-               
+
                Thread[] threads = new Thread[threadCount];
                for(int i = 0; i < threadCount; i++) {
                        final int threadNum = i + 1;
@@ -145,35 +140,35 @@ public class TestAsync extends Log4jEnabledTestCase {
                                                Transaction txn = 
Transaction.open(Transaction.CLOUD_DB);
                                                try {
                                                        AsyncJobDao dao = new 
AsyncJobDaoImpl();
-                                                       
+
                                                        s_logger.info("Thread " 
+ threadNum + " acquiring lock");
                                                        AsyncJobVO job = 
dao.acquire(1L, 30);
                                                        if(job != null) {
                                                                
s_logger.info("Thread " + threadNum + " acquired lock");
-                                                               
+
                                                                try {
                                                                        
Thread.sleep(Log4jEnabledTestCase.getRandomMilliseconds(1000, 3000));
                                                                } catch 
(InterruptedException e) {
                                                                }
-                                                               
+
                                                                
s_logger.info("Thread " + threadNum + " acquiring lock nestly");
                                                                AsyncJobVO job2 
= dao.acquire(1L, 30);
                                                                if(job2 != 
null) {
                                                                        
s_logger.info("Thread " + threadNum + " acquired lock nestly");
-                                                                       
+
                                                                        try {
                                                                                
Thread.sleep(Log4jEnabledTestCase.getRandomMilliseconds(1000, 3000));
                                                                        } catch 
(InterruptedException e) {
                                                                        }
-                                                                       
+
                                                                        
s_logger.info("Thread " + threadNum + " releasing lock (nestly acquired)");
                                                                        
dao.release(1L);
                                                                        
s_logger.info("Thread " + threadNum + " released lock (nestly acquired)");
-                                                                       
+
                                                                } else {
                                                                        
s_logger.info("Thread " + threadNum + " was unable to acquire lock nestly");
                                                                }
-                                                               
+
                                                                
s_logger.info("Thread " + threadNum + " releasing lock");
                                                                dao.release(1L);
                                                                
s_logger.info("Thread " + threadNum + " released lock");
@@ -183,7 +178,7 @@ public class TestAsync extends Log4jEnabledTestCase {
                                                } finally {
                                                        txn.close();
                                                }
-                                               
+
                                                try {
                                                        
Thread.sleep(Log4jEnabledTestCase.getRandomMilliseconds(1000, 10000));
                                                } catch (InterruptedException 
e) {
@@ -192,11 +187,11 @@ public class TestAsync extends Log4jEnabledTestCase {
                                }
                        });
                }
-               
+
                for(int i = 0; i < threadCount; i++) {
                        threads[i].start();
                }
-               
+
                for(int i = 0; i < threadCount; i++) {
                        try {
                                threads[i].join();
@@ -204,88 +199,83 @@ public class TestAsync extends Log4jEnabledTestCase {
                        }
                }
        }
-       */
-       
-       public void testMaid() {
-               Transaction txn = Transaction.open(Transaction.CLOUD_DB);
-               
-               StackMaidDao dao = new StackMaidDaoImpl();
-               dao.pushCleanupDelegate(1L, 0, "delegate1", "Hello, world");
-               dao.pushCleanupDelegate(1L, 1, "delegate2", new Long(100));
-               dao.pushCleanupDelegate(1L, 2, "delegate3", null);
-               
-               CheckPointVO item = dao.popCleanupDelegate(1L);
-               Assert.assertTrue(item.getDelegate().equals("delegate3"));
-               Assert.assertTrue(item.getContext() == null);
-               
-               item = dao.popCleanupDelegate(1L);
-               Assert.assertTrue(item.getDelegate().equals("delegate2"));
-               s_logger.info(item.getContext());
-
-               item = dao.popCleanupDelegate(1L);
-               Assert.assertTrue(item.getDelegate().equals("delegate1"));
-               s_logger.info(item.getContext());
-               
-               txn.close();
-       }
-       
-       public void testMaidClear() {
-               Transaction txn = Transaction.open(Transaction.CLOUD_DB);
-               
-               StackMaidDao dao = new StackMaidDaoImpl();
-               dao.pushCleanupDelegate(1L, 0, "delegate1", "Hello, world");
-               dao.pushCleanupDelegate(1L, 1, "delegate2", new Long(100));
-               dao.pushCleanupDelegate(1L, 2, "delegate3", null);
-               
-               dao.clearStack(1L);
-               Assert.assertTrue(dao.popCleanupDelegate(1L) == null);
-               txn.close();
-       }
-       
-       public void testMaidExitCleanup() {
-               StackMaid.current().push(1L, "com.cloud.async.CleanupDelegate", 
"Hello, world1");
-               StackMaid.current().push(1L, "com.cloud.async.CleanupDelegate", 
"Hello, world2");
-               
-               StackMaid.current().exitCleanup(1L);
-       }
-       
-       public void testMaidLeftovers() {
+     */
 
-               Thread[] threads = new Thread[3];
-               for(int i = 0; i < 3; i++) {
-                       final int threadNum = i+1;
-                       threads[i] = new Thread(new Runnable() {
-                               public void run() {
-                                       Transaction txn = 
Transaction.open(Transaction.CLOUD_DB);
-                                       
-                                       StackMaidDao dao = new 
StackMaidDaoImpl();
-                                       dao.pushCleanupDelegate(1L, 0, 
"delegate-" + threadNum, "Hello, world");
-                                       dao.pushCleanupDelegate(1L, 1, 
"delegate-" + threadNum, new Long(100));
-                                       dao.pushCleanupDelegate(1L, 2, 
"delegate-" + threadNum, null);
-                                       
-                                       txn.close();
-                               }
-                       });
-                       
-                       threads[i].start();
-               }
-               
-               for(int i = 0; i < 3; i++) {
-                       try {
-                               threads[i].join();
-                       } catch (InterruptedException e) {
-                       }
-               }
+    public void testMaid() {
+        Transaction txn = Transaction.open(Transaction.CLOUD_DB);
 
-               
-               Transaction txn = Transaction.open(Transaction.CLOUD_DB);
-               
-               StackMaidDao dao = new StackMaidDaoImpl();
-               List<CheckPointVO> l = dao.listLeftoversByMsid(1L);
-               for(CheckPointVO maid : l) {
-                       s_logger.info("" + maid.getThreadId() + " " + 
maid.getDelegate() + " " + maid.getContext());
-               }
-               
-               txn.close();
-       }
+        StackMaidDao dao = new StackMaidDaoImpl();
+        dao.pushCleanupDelegate(1L, 0, "delegate1", "Hello, world");
+        dao.pushCleanupDelegate(1L, 1, "delegate2", new Long(100));
+        dao.pushCleanupDelegate(1L, 2, "delegate3", null);
+
+        CheckPointVO item = dao.popCleanupDelegate(1L);
+        Assert.assertTrue(item.getDelegate().equals("delegate3"));
+        Assert.assertTrue(item.getContext() == null);
+
+        item = dao.popCleanupDelegate(1L);
+        Assert.assertTrue(item.getDelegate().equals("delegate2"));
+        s_logger.info(item.getContext());
+
+        item = dao.popCleanupDelegate(1L);
+        Assert.assertTrue(item.getDelegate().equals("delegate1"));
+        s_logger.info(item.getContext());
+
+        txn.close();
+    }
+
+    public void testMaidClear() {
+        Transaction txn = Transaction.open(Transaction.CLOUD_DB);
+
+        StackMaidDao dao = new StackMaidDaoImpl();
+        dao.pushCleanupDelegate(1L, 0, "delegate1", "Hello, world");
+        dao.pushCleanupDelegate(1L, 1, "delegate2", new Long(100));
+        dao.pushCleanupDelegate(1L, 2, "delegate3", null);
+
+        dao.clearStack(1L);
+        Assert.assertTrue(dao.popCleanupDelegate(1L) == null);
+        txn.close();
+    }
+
+
+    public void testMaidLeftovers() {
+
+        Thread[] threads = new Thread[3];
+        for(int i = 0; i < 3; i++) {
+            final int threadNum = i+1;
+            threads[i] = new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    Transaction txn = Transaction.open(Transaction.CLOUD_DB);
+
+                    StackMaidDao dao = new StackMaidDaoImpl();
+                    dao.pushCleanupDelegate(1L, 0, "delegate-" + threadNum, 
"Hello, world");
+                    dao.pushCleanupDelegate(1L, 1, "delegate-" + threadNum, 
new Long(100));
+                    dao.pushCleanupDelegate(1L, 2, "delegate-" + threadNum, 
null);
+
+                    txn.close();
+                }
+            });
+
+            threads[i].start();
+        }
+
+        for(int i = 0; i < 3; i++) {
+            try {
+                threads[i].join();
+            } catch (InterruptedException e) {
+            }
+        }
+
+
+        Transaction txn = Transaction.open(Transaction.CLOUD_DB);
+
+        StackMaidDao dao = new StackMaidDaoImpl();
+        List<CheckPointVO> l = dao.listLeftoversByMsid(1L);
+        for(CheckPointVO maid : l) {
+            s_logger.info("" + maid.getThreadId() + " " + maid.getDelegate() + 
" " + maid.getContext());
+        }
+
+        txn.close();
+    }
 }

Reply via email to