This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a commit to branch ghi11438-errorprone-fixes in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 43162bfce8aa279d59d0e39cdc6cf59c45790761 Author: Pearl Dsilva <[email protected]> AuthorDate: Tue Jan 13 16:06:57 2026 -0500 Error Prone integration - Added error prone to the build --- .../java/com/cloud/agent/mockvm/MockVmMgr.java | 2 +- .../admin/backup/UpdateBackupOfferingCmd.java | 2 +- .../facade/AbstractConfigItemFacade.java | 2 +- .../com/cloud/network/HAProxyConfigurator.java | 2 +- .../java/com/cloud/resource/RequestWrapper.java | 2 +- .../directdownload/DirectDownloadCommand.java | 1 - .../java/com/cloud/agent/manager/AgentAttache.java | 6 ++ .../cloud/agent/manager/DirectAgentAttache.java | 6 ++ .../com/cloud/vm/VirtualMachineManagerImpl.java | 2 +- .../engine/orchestration/NetworkOrchestrator.java | 2 +- .../com/cloud/offerings/NetworkOfferingVO.java | 2 +- .../upgrade/SystemVmTemplateRegistration.java | 59 ++++++++-------- .../cloud/upgrade/dao/DatabaseAccessObject.java | 2 +- .../com/cloud/upgrade/dao/Upgrade41500to41510.java | 79 ++++++++++------------ .../vmsnapshot/ScaleIOVMSnapshotStrategy.java | 2 +- .../storage/endpoint/DefaultEndPointSelector.java | 8 +-- .../framework/serializer/OnwireClassRegistry.java | 2 +- .../cloudstack/ca/provider/RootCAProvider.java | 2 +- .../main/java/com/cloud/ha/HypervInvestigator.java | 2 +- .../kvm/resource/LibvirtComputingResource.java | 6 +- .../kvm/storage/KVMStorageProcessor.java | 4 +- .../kvm/storage/MultipathSCSIAdapterBase.java | 12 ++-- .../java/com/cloud/hypervisor/XenServerGuru.java | 5 +- .../driver/redfish/RedfishWrapper.java | 2 +- .../datastore/util/NexentaStorAppliance.java | 16 +++++ .../driver/StorPoolPrimaryDataStoreDriver.java | 2 +- .../storage/motion/StorPoolDataMotionStrategy.java | 2 +- .../cloudstack/ldap/ADLdapUserManagerImpl.java | 1 + .../cloudstack/ldap/OpenLdapUserManagerImpl.java | 7 +- pom.xml | 17 ++++- .../java/com/cloud/api/doc/ApiXmlDocWriter.java | 2 +- .../src/main/java/com/cloud/api/doc/Argument.java | 12 ++-- .../cloud/api/query/dao/TemplateJoinDaoImpl.java | 3 +- .../configuration/ConfigurationManagerImpl.java | 2 +- .../com/cloud/ha/HighAvailabilityManagerImpl.java | 2 +- .../com/cloud/network/IpAddressManagerImpl.java | 2 +- .../com/cloud/server/ManagementServerImpl.java | 2 +- .../com/cloud/storage/VolumeApiServiceImpl.java | 2 +- .../main/java/com/cloud/vm/UserVmManagerImpl.java | 4 +- .../cloudstack/network/RoutedIpv4ManagerImpl.java | 8 +-- .../gslb/GlobalLoadBalancingRulesServiceImpl.java | 2 +- .../rdpclient/ntlmssp/ServerNtlmsspChallenge.java | 5 +- .../src/main/java/streamer/ByteBuffer.java | 2 +- 43 files changed, 165 insertions(+), 142 deletions(-) diff --git a/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java b/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java index 54fdde3d3d2..d97207c9f30 100644 --- a/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java +++ b/agent/src/main/java/com/cloud/agent/mockvm/MockVmMgr.java @@ -249,7 +249,7 @@ public class MockVmMgr implements VmMgr { public MockVm createVmFromSpec(VirtualMachineTO vmSpec) { String vmName = vmSpec.getName(); long ramSize = vmSpec.getMinRam(); - int utilizationPercent = randSeed.nextInt() % 100; + int utilizationPercent = randSeed.nextInt(100); MockVm vm = null; synchronized (this) { diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java index 9de06715ee7..9657722a208 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java @@ -83,7 +83,7 @@ public class UpdateBackupOfferingCmd extends BaseCmd { public void execute() { try { if (StringUtils.isAllEmpty(getName(), getDescription()) && getAllowUserDrivenBackups() == null) { - throw new InvalidParameterValueException(String.format("Can't update Backup Offering [id: %s] because there are no parameters to be updated, at least one of the", + throw new InvalidParameterValueException(String.format("Can't update Backup Offering [id: %s] because there are no parameters to be updated, at least one of the " + "following should be informed: name, description or allowUserDrivenBackups.", id)); } diff --git a/core/src/main/java/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java b/core/src/main/java/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java index 83dfa2a62ca..64034e444ea 100644 --- a/core/src/main/java/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java +++ b/core/src/main/java/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java @@ -106,7 +106,7 @@ public abstract class AbstractConfigItemFacade { public static AbstractConfigItemFacade getInstance(final Class<? extends NetworkElementCommand> key) { if (!flyweight.containsKey(key)) { - throw new CloudRuntimeException("Unable to process the configuration for " + key.getClass().getName()); + throw new CloudRuntimeException("Unable to process the configuration for " + key.getName()); } final AbstractConfigItemFacade instance = flyweight.get(key); diff --git a/core/src/main/java/com/cloud/network/HAProxyConfigurator.java b/core/src/main/java/com/cloud/network/HAProxyConfigurator.java index e4b0a7ffff4..6e00e7cdc96 100644 --- a/core/src/main/java/com/cloud/network/HAProxyConfigurator.java +++ b/core/src/main/java/com/cloud/network/HAProxyConfigurator.java @@ -514,7 +514,7 @@ public class HAProxyConfigurator implements LoadBalancerConfigurator { } dstSubRule.add(sb.toString()); if (stickinessSubRule != null) { - sb.append(" cookie ").append(dest.getDestIp().replace(".", "_")).append('-').append(dest.getDestPort()).toString(); + sb.append(" cookie ").append(dest.getDestIp().replace(".", "_")).append('-').append(dest.getDestPort()); dstWithCookieSubRule.add(sb.toString()); } destsAvailable = true; diff --git a/core/src/main/java/com/cloud/resource/RequestWrapper.java b/core/src/main/java/com/cloud/resource/RequestWrapper.java index 54d8b289c8d..3c375195239 100644 --- a/core/src/main/java/com/cloud/resource/RequestWrapper.java +++ b/core/src/main/java/com/cloud/resource/RequestWrapper.java @@ -86,7 +86,7 @@ public abstract class RequestWrapper { keepCommandClass = commandClass2; } catch (final ClassCastException e) { - throw new CommandNotSupported("No key found for '" + keepCommandClass.getClass() + "' in the Map!"); + throw new CommandNotSupported("No key found for '" + keepCommandClass + "' in the Map!"); } catch (final NullPointerException e) { // Will now traverse all the resource hierarchy. Returning null // is not a problem. diff --git a/core/src/main/java/org/apache/cloudstack/agent/directdownload/DirectDownloadCommand.java b/core/src/main/java/org/apache/cloudstack/agent/directdownload/DirectDownloadCommand.java index b6748dca434..c3ee2599393 100644 --- a/core/src/main/java/org/apache/cloudstack/agent/directdownload/DirectDownloadCommand.java +++ b/core/src/main/java/org/apache/cloudstack/agent/directdownload/DirectDownloadCommand.java @@ -52,7 +52,6 @@ public abstract class DirectDownloadCommand extends StorageSubSystemCommand { final Integer soTimeout, final Integer connectionRequestTimeout, final boolean followRedirects) { this.url = url; this.templateId = templateId; - this.destData = destData; this.destPool = destPool; this.checksum = checksum; this.headers = headers; diff --git a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java index 30a58d405c9..5ae451a9945 100644 --- a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java +++ b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java @@ -24,6 +24,7 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -497,6 +498,11 @@ public abstract class AgentAttache { */ protected abstract boolean isClosed(); + @Override + public int hashCode() { + return Objects.hash(logger, _id, _uuid, _name, _waitForList, _requests, _currentSequence, _status, _maintenance, _nextSequence, _agentMgr); + } + protected class Alarm extends ManagedContextRunnable { long _seq; diff --git a/engine/orchestration/src/main/java/com/cloud/agent/manager/DirectAgentAttache.java b/engine/orchestration/src/main/java/com/cloud/agent/manager/DirectAgentAttache.java index 07d5bf80393..af958f48366 100644 --- a/engine/orchestration/src/main/java/com/cloud/agent/manager/DirectAgentAttache.java +++ b/engine/orchestration/src/main/java/com/cloud/agent/manager/DirectAgentAttache.java @@ -19,6 +19,7 @@ package com.cloud.agent.manager; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -148,6 +149,11 @@ public class DirectAgentAttache extends AgentAttache { } } + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), _HostPingRetryCount, _HostPingRetryTimer, _resource, _futures, _seq, tasks, _outstandingTaskCount, _outstandingCronTaskCount); + } + protected class PingTask extends ManagedContextRunnable { @Override protected synchronized void runInContext() { diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index c0976fe137e..77eb695ed58 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1730,7 +1730,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } catch (final OperationTimedoutException e) { throw new AgentUnavailableException(String.format("Unable to stop vm [%s] because the operation to stop timed out", vmUuid), e.getAgentId(), e); } catch (final ConcurrentOperationException e) { - throw new CloudRuntimeException(String.format("Unable to stop vm because of a concurrent operation", vmUuid), e); + throw new CloudRuntimeException(String.format("Unable to stop vm: %s because of a concurrent operation", vmUuid), e); } } diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index d19a4f1d4a0..5aad4892b0f 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -1737,7 +1737,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra final List<FirewallRuleVO> firewallEgressRulesToApply = _firewallDao.listByNetworkPurposeTrafficType(networkId, Purpose.Firewall, FirewallRule.TrafficType.Egress); final NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); final DataCenter zone = _dcDao.findById(network.getDataCenterId()); - if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Firewall) && _networkModel.areServicesSupportedInNetwork(network.getId(), Service.Firewall) + if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Firewall) && (network.getGuestType() == Network.GuestType.Isolated || network.getGuestType() == Network.GuestType.Shared && zone.getNetworkType() == NetworkType.Advanced)) { // add default egress rule to accept the traffic _firewallMgr.applyDefaultEgressFirewallRule(network.getId(), offering.isEgressDefaultPolicy(), true); diff --git a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java index 5cad366945f..db267635ce6 100644 --- a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java +++ b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java @@ -460,7 +460,7 @@ public class NetworkOfferingVO implements NetworkOffering { true, Availability.Optional, null, - Network.GuestType.Isolated, + guestType, true, false, false, diff --git a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java index a6aecf477f7..cabe16bfdc5 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java @@ -324,38 +324,33 @@ public class SystemVmTemplateRegistration { public static final Map<String, MetadataTemplateDetails> NewTemplateMap = new HashMap<>(); - public static final Map<Hypervisor.HypervisorType, String> RouterTemplateConfigurationNames = new HashMap<>() { - { - put(Hypervisor.HypervisorType.KVM, "router.template.kvm"); - put(Hypervisor.HypervisorType.VMware, "router.template.vmware"); - put(Hypervisor.HypervisorType.XenServer, "router.template.xenserver"); - put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv"); - put(Hypervisor.HypervisorType.LXC, "router.template.lxc"); - put(Hypervisor.HypervisorType.Ovm3, "router.template.ovm3"); - } - }; - - public static Map<Hypervisor.HypervisorType, Integer> hypervisorGuestOsMap = new HashMap<>() { - { - put(Hypervisor.HypervisorType.KVM, LINUX_12_ID); - put(Hypervisor.HypervisorType.XenServer, OTHER_LINUX_ID); - put(Hypervisor.HypervisorType.VMware, OTHER_LINUX_ID); - put(Hypervisor.HypervisorType.Hyperv, LINUX_12_ID); - put(Hypervisor.HypervisorType.LXC, LINUX_12_ID); - put(Hypervisor.HypervisorType.Ovm3, LINUX_12_ID); - } - }; - - public static final Map<Hypervisor.HypervisorType, ImageFormat> hypervisorImageFormat = new HashMap<Hypervisor.HypervisorType, ImageFormat>() { - { - put(Hypervisor.HypervisorType.KVM, ImageFormat.QCOW2); - put(Hypervisor.HypervisorType.XenServer, ImageFormat.VHD); - put(Hypervisor.HypervisorType.VMware, ImageFormat.OVA); - put(Hypervisor.HypervisorType.Hyperv, ImageFormat.VHD); - put(Hypervisor.HypervisorType.LXC, ImageFormat.QCOW2); - put(Hypervisor.HypervisorType.Ovm3, ImageFormat.RAW); - } - }; + public static final Map<Hypervisor.HypervisorType, String> RouterTemplateConfigurationNames = Map.of( + Hypervisor.HypervisorType.KVM, "router.template.kvm", + Hypervisor.HypervisorType.VMware, "router.template.vmware", + Hypervisor.HypervisorType.XenServer, "router.template.xenserver", + Hypervisor.HypervisorType.Hyperv, "router.template.hyperv", + Hypervisor.HypervisorType.LXC, "router.template.lxc", + Hypervisor.HypervisorType.Ovm3, "router.template.ovm3" + ); + + public static Map<Hypervisor.HypervisorType, Integer> hypervisorGuestOsMap = new HashMap<>(); + static { + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.KVM, LINUX_12_ID); + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.XenServer, OTHER_LINUX_ID); + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.VMware, OTHER_LINUX_ID); + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Hyperv, LINUX_12_ID); + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.LXC, LINUX_12_ID); + hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Ovm3, LINUX_12_ID); + } + + public static final Map<Hypervisor.HypervisorType, ImageFormat> hypervisorImageFormat = Map.of( + Hypervisor.HypervisorType.KVM, ImageFormat.QCOW2, + Hypervisor.HypervisorType.XenServer, ImageFormat.VHD, + Hypervisor.HypervisorType.VMware, ImageFormat.OVA, + Hypervisor.HypervisorType.Hyperv, ImageFormat.VHD, + Hypervisor.HypervisorType.LXC, ImageFormat.QCOW2, + Hypervisor.HypervisorType.Ovm3, ImageFormat.RAW + ); public boolean validateIfSeeded(TemplateDataStoreVO templDataStoreVO, String url, String path, String nfsVersion) { String filePath = null; diff --git a/engine/schema/src/main/java/com/cloud/upgrade/dao/DatabaseAccessObject.java b/engine/schema/src/main/java/com/cloud/upgrade/dao/DatabaseAccessObject.java index 0b973d195de..04fefe8b279 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/dao/DatabaseAccessObject.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/dao/DatabaseAccessObject.java @@ -98,7 +98,7 @@ public class DatabaseAccessObject { return true; } } catch (SQLException e) { - logger.debug(String.format("Index %s doesn't exist, ignoring exception:", indexName, e.getMessage())); + logger.debug(String.format("Index %s doesn't exist, ignoring exception:", indexName), e.getMessage()); } return false; } diff --git a/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41500to41510.java b/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41500to41510.java index c7295414326..18d419d29f9 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41500to41510.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41500to41510.java @@ -22,7 +22,6 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -98,49 +97,41 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting hypervisor types from clusters", e); } - final Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>() { - { - put(KVM, "systemvm-kvm-4.15.1"); - put(VMware, "systemvm-vmware-4.15.1"); - put(XenServer, "systemvm-xenserver-4.15.1"); - put(Hyperv, "systemvm-hyperv-4.15.1"); - put(LXC, "systemvm-lxc-4.15.1"); - put(Ovm3, "systemvm-ovm3-4.15.1"); - } - }; - - final Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = new HashMap<Hypervisor.HypervisorType, String>() { - { - put(KVM, "router.template.kvm"); - put(VMware, "router.template.vmware"); - put(XenServer, "router.template.xenserver"); - put(Hyperv, "router.template.hyperv"); - put(LXC, "router.template.lxc"); - put(Ovm3, "router.template.ovm3"); - } - }; - - final Map<Hypervisor.HypervisorType, String> newTemplateUrl = new HashMap<Hypervisor.HypervisorType, String>() { - { - put(KVM, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2"); - put(VMware, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-vmware.ova"); - put(XenServer, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-xen.vhd.bz2"); - put(Hyperv, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-hyperv.vhd.zip"); - put(LXC, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2"); - put(Ovm3, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-ovm.raw.bz2"); - } - }; - - final Map<Hypervisor.HypervisorType, String> newTemplateChecksum = new HashMap<Hypervisor.HypervisorType, String>() { - { - put(KVM, "0e9f9a7d0957c3e0a2088e41b2da2cec"); - put(XenServer, "86373992740b1eca8aff8b08ebf3aea5"); - put(VMware, "4006982765846d373eb3719b2fe4d720"); - put(Hyperv, "0b9514e4b6cba1f636fea2125f0f7a5f"); - put(LXC, "0e9f9a7d0957c3e0a2088e41b2da2cec"); - put(Ovm3, "ae3977e696b3e6c81bdcbb792d514d29"); - } - }; + final Map<Hypervisor.HypervisorType, String> NewTemplateNameList = Map.of( + KVM, "systemvm-kvm-4.15.1", + VMware, "systemvm-vmware-4.15.1", + XenServer, "systemvm-xenserver-4.15.1", + Hyperv, "systemvm-hyperv-4.15.1", + LXC, "systemvm-lxc-4.15.1", + Ovm3, "systemvm-ovm3-4.15.1" + ); + + final Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = Map.of( + KVM, "router.template.kvm", + VMware, "router.template.vmware", + XenServer, "router.template.xenserver", + Hyperv, "router.template.hyperv", + LXC, "router.template.lxc", + Ovm3, "router.template.ovm3" + ); + + final Map<Hypervisor.HypervisorType, String> newTemplateUrl = Map.of( + KVM, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2", + VMware, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-vmware.ova", + XenServer, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-xen.vhd.bz2", + Hyperv, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-hyperv.vhd.zip", + LXC, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2", + Ovm3, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-ovm.raw.bz2" + ); + + final Map<Hypervisor.HypervisorType, String> newTemplateChecksum = Map.of( + KVM, "0e9f9a7d0957c3e0a2088e41b2da2cec", + XenServer, "86373992740b1eca8aff8b08ebf3aea5", + VMware, "4006982765846d373eb3719b2fe4d720", + Hyperv, "0b9514e4b6cba1f636fea2125f0f7a5f", + LXC, "0e9f9a7d0957c3e0a2088e41b2da2cec", + Ovm3, "ae3977e696b3e6c81bdcbb792d514d29" + ); for (final Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()) { logger.debug("Updating " + hypervisorAndTemplateName.getKey() + " System Vms"); diff --git a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/ScaleIOVMSnapshotStrategy.java b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/ScaleIOVMSnapshotStrategy.java index 667d7ce1d86..98f9161da90 100644 --- a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/ScaleIOVMSnapshotStrategy.java +++ b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/ScaleIOVMSnapshotStrategy.java @@ -139,7 +139,7 @@ public class ScaleIOVMSnapshotStrategy extends ManagerBase implements VMSnapshot for (VolumeObjectTO volumeTO : volumeTOs) { Long poolId = volumeTO.getPoolId(); Storage.StoragePoolType poolType = vmSnapshotHelper.getStoragePoolType(poolId); - if (poolType != Storage.StoragePoolType.PowerFlex || volumeTO.getFormat() != ImageFormat.RAW || poolId != rootPoolId) { + if (poolType != Storage.StoragePoolType.PowerFlex || volumeTO.getFormat() != ImageFormat.RAW || !poolId.equals(rootPoolId)) { return StrategyPriority.CANT_HANDLE; } } diff --git a/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java b/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java index 7e9f65f43b3..40e0410da88 100644 --- a/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java +++ b/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java @@ -25,7 +25,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; import javax.inject.Inject; @@ -198,12 +197,7 @@ public class DefaultEndPointSelector implements EndPointSelector { Pair<List<DedicatedResourceVO>, Integer> hostIds = dedicatedResourceDao.searchDedicatedHosts(null, null, account.getId(), null, null); List<DedicatedResourceVO> accountDedicatedHosts = hostIds.first(); for (DedicatedResourceVO accountDedicatedResource: accountDedicatedHosts){ - Iterator<Long> dedicatedHostsIterator = dedicatedHosts.iterator(); - while (dedicatedHostsIterator.hasNext()) { - if (dedicatedHostsIterator.next() == accountDedicatedResource.getHostId()) { - dedicatedHostsIterator.remove(); - } - } + dedicatedHosts.removeIf(hostId -> hostId.equals(accountDedicatedResource.getHostId())); } } } diff --git a/framework/ipc/src/main/java/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java b/framework/ipc/src/main/java/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java index 3cc643956e9..93f5e0f9b5c 100644 --- a/framework/ipc/src/main/java/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java +++ b/framework/ipc/src/main/java/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java @@ -55,7 +55,7 @@ public class OnwireClassRegistry { } public OnwireClassRegistry(List<String> packages) { - packages.addAll(packages); + this.packages.addAll(packages); } public List<String> getPackages() { diff --git a/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java b/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java index 25c45ed2a10..395b637d4d4 100644 --- a/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java +++ b/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java @@ -440,7 +440,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con @Override public boolean start() { managementCertificateCustomSAN = CAManager.CertManagementCustomSubjectAlternativeName.value(); - return loadRootCAKeyPair() && loadRootCAKeyPair() && loadManagementKeyStore(); + return loadRootCAKeyPair() && loadManagementKeyStore(); } @Override diff --git a/plugins/hypervisors/hyperv/src/main/java/com/cloud/ha/HypervInvestigator.java b/plugins/hypervisors/hyperv/src/main/java/com/cloud/ha/HypervInvestigator.java index 3d79b9efdd1..2666ca0c1f5 100644 --- a/plugins/hypervisors/hyperv/src/main/java/com/cloud/ha/HypervInvestigator.java +++ b/plugins/hypervisors/hyperv/src/main/java/com/cloud/ha/HypervInvestigator.java @@ -45,7 +45,7 @@ public class HypervInvestigator extends AdapterBase implements Investigator { if (status == null) { throw new UnknownVM(); } - return status == Status.Up ? true : null; + return status == Status.Up; } @Override diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index b66a838a3a5..1bbebfe3ee5 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3882,12 +3882,12 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv LOGGER.info(String.format("Host uses control group [%s].", output)); if (!CGROUP_V2.equals(output)) { - LOGGER.info(String.format("Setting host CPU max capacity to 0, as it uses cgroup v1.", getHostCpuMaxCapacity())); + LOGGER.info("Setting host CPU max capacity: {} to 0, as it uses cgroup v1.", getHostCpuMaxCapacity()); setHostCpuMaxCapacity(0); return; } - LOGGER.info(String.format("Calculating the max shares of the host.")); + LOGGER.info("Calculating the max shares of the host."); setHostCpuMaxCapacity(cpuCores * cpuSpeed.intValue()); LOGGER.info(String.format("The max shares of the host is [%d].", getHostCpuMaxCapacity())); } @@ -5302,7 +5302,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv } for (String snapshotName: snapshotNames) { if (LOGGER.isDebugEnabled()) { - LOGGER.debug(String.format("Cleaning snapshot [%s] of VM [%s] metadata.", snapshotNames, dm.getName())); + LOGGER.debug("Cleaning snapshot {} of VM {} metadata.", Arrays.toString(snapshotNames), dm.getName()); } DomainSnapshot snapshot = dm.snapshotLookupByName(snapshotName); snapshot.delete(flags); // clean metadata of vm snapshot diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 33bd41ee6ba..267dfb67cf3 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -794,7 +794,7 @@ public class KVMStorageProcessor implements StorageProcessor { if (path == null) { path = srcData.getPath(); if (path == null) { - new CloudRuntimeException("The 'path' or 'iqn' field must be specified."); + throw new CloudRuntimeException("The 'path' or 'iqn' field must be specified."); } } } @@ -2261,7 +2261,7 @@ public class KVMStorageProcessor implements StorageProcessor { if (path == null) { path = details != null ? details.get(DiskTO.IQN) : null; if (path == null) { - new CloudRuntimeException("The 'path' or 'iqn' field must be specified."); + throw new CloudRuntimeException("The 'path' or 'iqn' field must be specified."); } } } diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java index 7ba29ffc26e..a64390407db 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/MultipathSCSIAdapterBase.java @@ -228,21 +228,21 @@ public abstract class MultipathSCSIAdapterBase implements StorageAdaptor { @Override public boolean disconnectPhysicalDisk(String volumePath, KVMStoragePool pool) { - if (LOGGER.isDebugEnabled()) LOGGER.debug(String.format("disconnectPhysicalDisk(volumePath,pool) called with args (%s, %s) START", volumePath, pool.getUuid())); + if (LOGGER.isDebugEnabled()) LOGGER.debug("disconnectPhysicalDisk(volumePath,pool) called with args ({}, {}) START", volumePath, pool.getUuid()); AddressInfo address = this.parseAndValidatePath(volumePath); if (address.getAddress() == null) { - if (LOGGER.isDebugEnabled()) LOGGER.debug(String.format("disconnectPhysicalDisk(volumePath,pool) returning FALSE, volume path has no address field", volumePath, pool.getUuid())); + if (LOGGER.isDebugEnabled()) LOGGER.debug("disconnectPhysicalDisk(volumePath,pool) called with args ({}, {}) returning FALSE, volume path has no address field", volumePath, pool.getUuid()); return false; } ScriptResult result = runScript(disconnectScript, 60000L, address.getAddress().toLowerCase()); if (result.getExitCode() != 0) { - LOGGER.warn(String.format("Disconnect failed for path [%s] with return code [%s]", address.getAddress().toLowerCase(), result.getExitCode())); + LOGGER.warn("Disconnect failed for path {} with return code {}", address.getAddress().toLowerCase(), result.getExitCode()); } if (LOGGER.isDebugEnabled()) { - LOGGER.debug("multipath flush output: " + result.getResult()); - LOGGER.debug(String.format("disconnectPhysicalDisk(volumePath,pool) called with args (%s, %s) COMPLETE [rc=%s]", volumePath, pool.getUuid(), result.getResult())); + LOGGER.debug("multipath flush output: {}", result.getResult()); + LOGGER.debug("disconnectPhysicalDisk(volumePath,pool) called with args ({}, {}) COMPLETE [rc={}]", volumePath, pool.getUuid(), result.getResult()); } return (result.getExitCode() == 0); @@ -250,7 +250,7 @@ public abstract class MultipathSCSIAdapterBase implements StorageAdaptor { @Override public boolean disconnectPhysicalDisk(Map<String, String> volumeToDisconnect) { - LOGGER.debug(String.format("disconnectPhysicalDisk(volumeToDisconnect) called with arg bag [not implemented]:") + " " + volumeToDisconnect); + LOGGER.debug("disconnectPhysicalDisk(volumeToDisconnect) called with arg bag [not implemented]: {}", volumeToDisconnect); return false; } diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java index 6f1b600dc66..5e04e38a587 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java @@ -181,10 +181,9 @@ public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru, logger.debug("We are returning the default host to execute commands because the target hypervisor of the source data is not XenServer."); return defaultHostToExecuteCommands; } - // only now can we decide, now we now we're only deciding for ourselves if (cmd instanceof StorageSubSystemCommand) { if (logger.isTraceEnabled()) { - logger.trace(String.format("XenServer StrorageSubSystemCommand re always executed in sequence (command of type %s to host %l).", cmd.getClass(), hostId)); + logger.trace(String.format("XenServer StrorageSubSystemCommand is always executed in sequence (command of type %s to host %s).", cmd.getClass(), hostId)); } StorageSubSystemCommand c = (StorageSubSystemCommand)cmd; c.setExecuteInSequence(true); @@ -223,7 +222,7 @@ public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru, return defaultHostToExecuteCommands; } logger.debug(String.format("We are changing the hostId to executed command from %d to %d.", hostId, hostCandidateToExecutedCommand.getId())); - return new Pair<Boolean, Long>(Boolean.TRUE, new Long(hostCandidateToExecutedCommand.getId())); + return new Pair<>(Boolean.TRUE, hostCandidateToExecutedCommand.getId()); } @Override diff --git a/plugins/outofbandmanagement-drivers/redfish/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/redfish/RedfishWrapper.java b/plugins/outofbandmanagement-drivers/redfish/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/redfish/RedfishWrapper.java index 09cee3b21ae..73a7ec6e263 100644 --- a/plugins/outofbandmanagement-drivers/redfish/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/redfish/RedfishWrapper.java +++ b/plugins/outofbandmanagement-drivers/redfish/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/redfish/RedfishWrapper.java @@ -39,7 +39,7 @@ public class RedfishWrapper { case SOFT: return RedfishClient.RedfishResetCmd.GracefulShutdown; case STATUS: - throw new IllegalStateException(String.format("%s is not a valid Redfish Reset command [%s]", operation)); + throw new IllegalStateException(String.format("%s is not a valid Redfish Reset command", operation)); default: throw new IllegalStateException(String.format("Redfish does not support operation [%s]", operation)); } diff --git a/plugins/storage/volume/nexenta/src/main/java/org/apache/cloudstack/storage/datastore/util/NexentaStorAppliance.java b/plugins/storage/volume/nexenta/src/main/java/org/apache/cloudstack/storage/datastore/util/NexentaStorAppliance.java index 8c22908c64d..65dc50a9efe 100644 --- a/plugins/storage/volume/nexenta/src/main/java/org/apache/cloudstack/storage/datastore/util/NexentaStorAppliance.java +++ b/plugins/storage/volume/nexenta/src/main/java/org/apache/cloudstack/storage/datastore/util/NexentaStorAppliance.java @@ -20,6 +20,7 @@ package org.apache.cloudstack.storage.datastore.util; import java.util.HashMap; import java.util.LinkedList; +import java.util.Objects; import org.apache.cloudstack.storage.datastore.util.NexentaNmsClient.NmsResponse; import org.apache.logging.log4j.Logger; @@ -132,6 +133,11 @@ public class NexentaStorAppliance { public boolean equals(Object other) { return other instanceof CreateIscsiTargetRequestParams && targetName.equals(((CreateIscsiTargetRequestParams) other).targetName); } + + @Override + public int hashCode() { + return Objects.hashCode(targetName); + } } /** @@ -248,6 +254,11 @@ public class NexentaStorAppliance { public boolean equals(Object other) { return other instanceof LuParams; } + + @Override + public int hashCode() { + return 1; + } } /** @@ -309,6 +320,11 @@ public class NexentaStorAppliance { } return false; } + + @Override + public int hashCode() { + return Objects.hash(targetGroup, lun, zvol, hostGroup, entryNumber); + } } @SuppressWarnings("unused") diff --git a/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/driver/StorPoolPrimaryDataStoreDriver.java b/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/driver/StorPoolPrimaryDataStoreDriver.java index 6ca67cb5923..ba9a4d97600 100644 --- a/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/driver/StorPoolPrimaryDataStoreDriver.java +++ b/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/driver/StorPoolPrimaryDataStoreDriver.java @@ -399,7 +399,7 @@ public class StorPoolPrimaryDataStoreDriver implements PrimaryDataStoreDriver { private String resizeVolume(DataObject data, String path, VolumeObject vol) { String err = null; ResizeVolumePayload payload = (ResizeVolumePayload)vol.getpayload(); - boolean needResize = vol.getSize() != payload.newSize; + boolean needResize = !vol.getSize().equals(payload.newSize); final String name = StorPoolStorageAdaptor.getVolumeNameFromPath(path, true); final long oldSize = vol.getSize(); diff --git a/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/motion/StorPoolDataMotionStrategy.java b/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/motion/StorPoolDataMotionStrategy.java index 5a4802ab264..7f7f4a074dd 100644 --- a/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/motion/StorPoolDataMotionStrategy.java +++ b/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/motion/StorPoolDataMotionStrategy.java @@ -221,7 +221,7 @@ public class StorPoolDataMotionStrategy implements DataMotionStrategy { if (answer != null && answer.getResult()) { SpApiResponse resSnapshot = StorPoolUtil.volumeSnapshot(volumeName, template.getUuid(), null, "template", null, conn); if (resSnapshot.getError() != null) { - logger.debug(String.format("Could not snapshot volume with ID={}", snapshot.getId())); + logger.debug("Could not snapshot volume with ID={}", snapshot.getId()); StorPoolUtil.spLog("VolumeSnapshot failed with error=%s", resSnapshot.getError().getDescr()); err = resSnapshot.getError().getDescr(); } else { diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/ADLdapUserManagerImpl.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/ADLdapUserManagerImpl.java index e96606dca2f..d2b23b33639 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/ADLdapUserManagerImpl.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/ADLdapUserManagerImpl.java @@ -34,6 +34,7 @@ public class ADLdapUserManagerImpl extends OpenLdapUserManagerImpl implements Ld private static final String MICROSOFT_AD_MEMBERS_FILTER = "memberOf"; @Override + @SuppressWarnings("BanJNDI") public List<LdapUser> getUsersInGroup(String groupName, LdapContext context, Long domainId) throws NamingException { if (StringUtils.isBlank(groupName)) { throw new IllegalArgumentException("ldap group name cannot be blank"); diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/OpenLdapUserManagerImpl.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/OpenLdapUserManagerImpl.java index d0b6bc4bd34..98d3be2f10c 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/OpenLdapUserManagerImpl.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/OpenLdapUserManagerImpl.java @@ -135,8 +135,7 @@ public class OpenLdapUserManagerImpl implements LdapUserManager { final StringBuilder memberOfFilter = new StringBuilder(); if (null != group) { if(logger.isDebugEnabled()) { - logger.debug("adding search filter for '" + group + - "', using '" + memberOfAttribute + "'"); + logger.debug("adding search filter for '{}', using '{}'", group, memberOfAttribute); } memberOfFilter.append("(" + memberOfAttribute + "="); memberOfFilter.append(group); @@ -235,6 +234,7 @@ public class OpenLdapUserManagerImpl implements LdapUserManager { } @Override + @SuppressWarnings("BanJNDI") public List<LdapUser> getUsersInGroup(String groupName, LdapContext context, Long domainId) throws NamingException { String attributeName = _ldapConfiguration.getGroupUniqueMemberAttribute(domainId); final SearchControls controls = new SearchControls(); @@ -264,6 +264,7 @@ public class OpenLdapUserManagerImpl implements LdapUserManager { return users; } + @SuppressWarnings("BanJNDI") private LdapUser getUserForDn(String userdn, LdapContext context, Long domainId) throws NamingException { final SearchControls controls = new SearchControls(); controls.setSearchScope(_ldapConfiguration.getScope()); @@ -286,6 +287,7 @@ public class OpenLdapUserManagerImpl implements LdapUserManager { return false; } + @SuppressWarnings("BanJNDI") public LdapUser searchUser(final String basedn, final String searchString, final LdapContext context, Long domainId) throws NamingException, IOException { final SearchControls searchControls = new SearchControls(); @@ -310,6 +312,7 @@ public class OpenLdapUserManagerImpl implements LdapUserManager { } @Override + @SuppressWarnings("BanJNDI") public List<LdapUser> searchUsers(final String username, final LdapContext context, Long domainId) throws NamingException, IOException { final SearchControls searchControls = new SearchControls(); diff --git a/pom.xml b/pom.xml index 6985108302d..10db9136518 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,7 @@ <cs.surefire-plugin.version>2.22.2</cs.surefire-plugin.version> <cs.clover-maven-plugin.version>4.4.1</cs.clover-maven-plugin.version> <cs.exec-maven-plugin.version>3.2.0</cs.exec-maven-plugin.version> + <cs.errorprone.version>2.24.1</cs.errorprone.version> <!-- Logging versions --> <cs.log4j.version>2.19.0</cs.log4j.version> @@ -1094,15 +1095,25 @@ <configuration> <source>${cs.jdk.version}</source> <target>${cs.jdk.version}</target> - <fork>true</fork> - <meminitial>128m</meminitial> - <maxmem>512m</maxmem> + <encoding>UTF-8</encoding> <compilerArgs> <arg>-XDignore.symbol.file=true</arg> <arg>--add-opens=java.base/java.lang=ALL-UNNAMED</arg> <arg>--add-exports=java.base/sun.security.x509=ALL-UNNAMED</arg> <arg>--add-exports=java.base/sun.security.provider=ALL-UNNAMED</arg> + <arg>-XDcompilePolicy=simple</arg> + <arg>-Xplugin:ErrorProne</arg> </compilerArgs> + <annotationProcessorPaths> + <path> + <groupId>com.google.errorprone</groupId> + <artifactId>error_prone_core</artifactId> + <version>${cs.errorprone.version}</version> + </path> + </annotationProcessorPaths> + <fork>true</fork> + <meminitial>128m</meminitial> + <maxmem>512m</maxmem> </configuration> </plugin> <plugin> diff --git a/server/src/main/java/com/cloud/api/doc/ApiXmlDocWriter.java b/server/src/main/java/com/cloud/api/doc/ApiXmlDocWriter.java index 5de5cd03fe1..b1bb316471b 100644 --- a/server/src/main/java/com/cloud/api/doc/ApiXmlDocWriter.java +++ b/server/src/main/java/com/cloud/api/doc/ApiXmlDocWriter.java @@ -411,7 +411,7 @@ public class ApiXmlDocWriter { xs.alias("alert", Alert.class); try(ObjectOutputStream out = xs.createObjectOutputStream(new FileWriter(dirName + "/alert_types.xml"), "alerts");) { for (Field f : AlertManager.class.getFields()) { - if (f.getClass().isAssignableFrom(Number.class)) { + if (Number.class.isAssignableFrom(f.getType())) { String name = f.getName().substring(11); Alert alert = new Alert(name, f.getInt(null)); out.writeObject(alert); diff --git a/server/src/main/java/com/cloud/api/doc/Argument.java b/server/src/main/java/com/cloud/api/doc/Argument.java index 141f7e6fa54..bfab730002a 100644 --- a/server/src/main/java/com/cloud/api/doc/Argument.java +++ b/server/src/main/java/com/cloud/api/doc/Argument.java @@ -19,7 +19,7 @@ package com.cloud.api.doc; import java.io.Serializable; import java.util.List; -public class Argument implements Comparable<Object>, Serializable { +public class Argument implements Comparable<Argument>, Serializable { private static final long serialVersionUID = 2L; private String name; private String description; @@ -101,11 +101,11 @@ public class Argument implements Comparable<Object>, Serializable { } @Override - public int compareTo(Object anotherAgrument) throws ClassCastException { - if (!(anotherAgrument instanceof Argument)) - throw new ClassCastException("An Argument object expected."); - Argument argument = (Argument)anotherAgrument; - return this.getName().compareToIgnoreCase(argument.getName()); + public int compareTo(Argument anotherArgument) { + if (anotherArgument == null) { + throw new NullPointerException("Cannot compare to null Argument"); + } + return this.getName().compareToIgnoreCase(anotherArgument.getName()); } public boolean hasArguments() { diff --git a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java index 05c024e8f9b..e7da4a2163b 100644 --- a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java @@ -39,6 +39,7 @@ import com.cloud.storage.VnfTemplateNicVO; import com.cloud.storage.dao.VnfTemplateDetailsDao; import com.cloud.storage.dao.VnfTemplateNicDao; import com.cloud.user.dao.UserDataDao; +import com.google.common.primitives.Ints; import org.apache.cloudstack.annotation.AnnotationService; import org.apache.cloudstack.annotation.dao.AnnotationDao; import org.apache.cloudstack.api.ApiConstants; @@ -340,7 +341,7 @@ public class TemplateJoinDaoImpl extends GenericDaoBaseWithTagInformation<Templa ChildTemplateResponse childTempl = new ChildTemplateResponse(); childTempl.setId(tmpl.getUuid()); childTempl.setName(tmpl.getName()); - childTempl.setSize(Math.round(tmpl.getSize() / (1024 * 1024 * 1024))); + childTempl.setSize(Ints.saturatedCast(tmpl.getSize() / (1024 * 1024 * 1024))); childTemplatesSet.add(childTempl); } } diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index 62b3c23d27e..e662d154f65 100644 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -5391,7 +5391,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati } final Boolean isRangeForSystemVM = checkIfVlanRangeIsForSystemVM(id); - if (forSystemVms != null && isRangeForSystemVM != forSystemVms) { + if (forSystemVms != null && !isRangeForSystemVM.equals(forSystemVms)) { if (VlanType.DirectAttached.equals(vlanRange.getVlanType())) { throw new InvalidParameterValueException("forSystemVms is not available for this IP range with vlan type: " + VlanType.DirectAttached); } diff --git a/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java index b0f3e6d8d69..daf1e0faa03 100644 --- a/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java +++ b/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java @@ -1041,7 +1041,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements Configur try { if (vm != null && !VmHaEnabled.valueIn(vm.getDataCenterId())) { if (logger.isDebugEnabled()) { - logger.debug(String.format("VM high availability manager is disabled, rescheduling the HA work %s, for the VM %s (id) to retry later in case VM high availability manager is enabled on retry attempt", work, vm.getName(), vm.getId())); + logger.debug("VM high availability manager is disabled, rescheduling the HA work {}, for the VM {} (id: {}) to retry later in case VM high availability manager is enabled on retry attempt", work, vm.getName(), vm.getId()); } long nextTime = getRescheduleTime(wt); rescheduleWork(work, nextTime); diff --git a/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java b/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java index fe555af9d50..3d99fb573c9 100644 --- a/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java +++ b/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java @@ -1311,7 +1311,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage try { _privateIPAddressDao.releasePodIpAddress(id); } catch (Exception e) { - new CloudRuntimeException(e.getMessage()); + throw new CloudRuntimeException(e.getMessage()); } } diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index caf94a1cc85..347b9b26ac4 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -1443,7 +1443,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe protected boolean zoneWideVolumeRequiresStorageMotion(PrimaryDataStore volumeDataStore, final Host sourceHost, final Host destinationHost) { - if (volumeDataStore.isManaged() && sourceHost.getClusterId() != destinationHost.getClusterId()) { + if (volumeDataStore.isManaged() && !sourceHost.getClusterId().equals(destinationHost.getClusterId())) { PrimaryDataStoreDriver driver = (PrimaryDataStoreDriver)volumeDataStore.getDriver(); // Depends on the storage driver. For some storages simply // changing volume access to host should work: grant access on destination diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java index 4f8b55d16fb..4780a896480 100644 --- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java @@ -3689,7 +3689,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic } else { result = CollectionUtils.isSubCollection(Arrays.asList(newDiskOfferingTagsAsStringArray), storageTagsList); } - logger.debug(String.format("Destination storage pool [{}] accepts tags [{}]? {}", destPool.getUuid(), diskOfferingTags, result)); + logger.debug("Destination storage pool [{}] accepts tags [{}]? {}", destPool.getUuid(), diskOfferingTags, result); return result; } diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index b00358caaa9..0e407d8b628 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -2140,7 +2140,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } protected void validateDiskOfferingChecks(ServiceOfferingVO currentServiceOffering, ServiceOfferingVO newServiceOffering) { - if (currentServiceOffering.getDiskOfferingStrictness() != newServiceOffering.getDiskOfferingStrictness()) { + if (!currentServiceOffering.getDiskOfferingStrictness().equals(newServiceOffering.getDiskOfferingStrictness())) { throw new InvalidParameterValueException("Unable to Scale VM, since disk offering strictness flag is not same for new service offering and old service offering"); } @@ -2391,7 +2391,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir _executor = Executors.newScheduledThreadPool(wrks, new NamedThreadFactory("UserVm-Scavenger")); - String vmIpWorkers = configs.get(VmIpFetchTaskWorkers.value()); + String vmIpWorkers = configs.get(VmIpFetchTaskWorkers.key()); int vmipwrks = NumbersUtil.parseInt(vmIpWorkers, 10); _vmIpFetchExecutor = Executors.newScheduledThreadPool(vmipwrks, new NamedThreadFactory("UserVm-ipfetch")); diff --git a/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java b/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java index 5174a5d7688..54693492dd7 100644 --- a/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java @@ -390,7 +390,7 @@ public class RoutedIpv4ManagerImpl extends ComponentLifecycleBase implements Rou DataCenterIpv4GuestSubnetVO subnetVO = dataCenterIpv4GuestSubnetDao.findById(id); if (subnetVO == null) { - throw new InvalidParameterValueException(String.format("Cannot find subnet with id: ", id)); + throw new InvalidParameterValueException(String.format("Cannot find subnet with id: %s", id)); } Long accountId = null; if (accountName != null || (projectId != null && projectId != -1L)) { @@ -430,7 +430,7 @@ public class RoutedIpv4ManagerImpl extends ComponentLifecycleBase implements Rou final Long id = cmd.getId(); DataCenterIpv4GuestSubnetVO subnetVO = dataCenterIpv4GuestSubnetDao.findById(id); if (subnetVO == null) { - throw new InvalidParameterValueException(String.format("Cannot find subnet with id: ", id)); + throw new InvalidParameterValueException(String.format("Cannot find subnet with id: %s", id)); } // update domain_id and account_id to null via dataCenterIpv4GuestSubnetDao, to release the dedication @@ -1278,7 +1278,7 @@ public class RoutedIpv4ManagerImpl extends ComponentLifecycleBase implements Rou BgpPeerVO bgpPeerVO = bgpPeerDao.findById(id); if (bgpPeerVO == null) { - throw new InvalidParameterValueException(String.format("Cannot find BGP peer with id: ", id)); + throw new InvalidParameterValueException(String.format("Cannot find BGP peer with id: %s", id)); } Long accountId = null; if (accountName != null || (projectId != null && projectId != -1L)) { @@ -1326,7 +1326,7 @@ public class RoutedIpv4ManagerImpl extends ComponentLifecycleBase implements Rou final Long id = releaseDedicatedBgpPeerCmd.getId(); BgpPeerVO bgpPeerVO = bgpPeerDao.findById(id); if (bgpPeerVO == null) { - throw new InvalidParameterValueException(String.format("Cannot find BGP peer with id: ", id)); + throw new InvalidParameterValueException(String.format("Cannot find BGP peer with id: %s", id)); } // update domain_id and account_id to null via bgpPeerDao, to release the dedication diff --git a/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java b/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java index a448c612ece..05a5215ee2b 100644 --- a/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java +++ b/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java @@ -673,7 +673,7 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR // set site as 'local' for the site in that zone for (Pair<Long, Long> innerLoopZoneId : gslbSiteIds) { SiteLoadBalancerConfig siteLb = zoneSiteLoadbalancerMap.get(innerLoopZoneId.first()); - siteLb.setLocal(zoneId.first() == innerLoopZoneId.first()); + siteLb.setLocal(zoneId.first().equals(innerLoopZoneId.first())); slbs.add(siteLb); } diff --git a/services/console-proxy/rdpconsole/src/main/java/rdpclient/ntlmssp/ServerNtlmsspChallenge.java b/services/console-proxy/rdpconsole/src/main/java/rdpclient/ntlmssp/ServerNtlmsspChallenge.java index d8cfb4c9594..dbc952be491 100644 --- a/services/console-proxy/rdpconsole/src/main/java/rdpclient/ntlmssp/ServerNtlmsspChallenge.java +++ b/services/console-proxy/rdpconsole/src/main/java/rdpclient/ntlmssp/ServerNtlmsspChallenge.java @@ -287,8 +287,9 @@ public class ServerNtlmsspChallenge extends OneTimeSwitch implements NtlmConstan if (state.serverChallenge == null) throw new RuntimeException("Challenge was not extracted from server NTLMSSP Challenge packet."); if (!Arrays.equals(challenge, state.serverChallenge)) - throw new RuntimeException("Challenge was extracted from server NTLMSSP Challenge packet is not equal to expected. Actual value: " - + state.serverChallenge + ", expected value: " + challenge + "."); + throw new RuntimeException(String.format("Challenge was extracted from server NTLMSSP Challenge packet is not" + + " equal to expected. Actual value: %s, expected value: %s.", + Arrays.toString(state.serverChallenge), Arrays.toString(challenge))); } diff --git a/services/console-proxy/rdpconsole/src/main/java/streamer/ByteBuffer.java b/services/console-proxy/rdpconsole/src/main/java/streamer/ByteBuffer.java index b3cde4bbe59..7d88b6ed970 100644 --- a/services/console-proxy/rdpconsole/src/main/java/streamer/ByteBuffer.java +++ b/services/console-proxy/rdpconsole/src/main/java/streamer/ByteBuffer.java @@ -215,7 +215,7 @@ public class ByteBuffer { public void extend(int newLength) { if (data.length < newLength) - Arrays.copyOf(data, newLength); + data = Arrays.copyOf(data, newLength); } public void ref() {
