diff --git a/java/google/registry/flows/ResourceFlowUtils.java b/java/google/registry/flows/ResourceFlowUtils.java index 6ff99745d..4cbe67e38 100644 --- a/java/google/registry/flows/ResourceFlowUtils.java +++ b/java/google/registry/flows/ResourceFlowUtils.java @@ -31,14 +31,13 @@ import com.googlecode.objectify.Key; import com.googlecode.objectify.Work; import google.registry.flows.EppException.AuthorizationErrorException; import google.registry.flows.EppException.InvalidAuthorizationInformationErrorException; +import google.registry.flows.EppException.ObjectDoesNotExistException; import google.registry.flows.exceptions.MissingTransferRequestAuthInfoException; import google.registry.flows.exceptions.NotPendingTransferException; import google.registry.flows.exceptions.NotTransferInitiatorException; import google.registry.flows.exceptions.ResourceAlreadyExistsException; import google.registry.flows.exceptions.ResourceStatusProhibitsOperationException; import google.registry.flows.exceptions.ResourceToDeleteIsReferencedException; -import google.registry.flows.exceptions.ResourceToMutateDoesNotExistException; -import google.registry.flows.exceptions.ResourceToQueryDoesNotExistException; import google.registry.flows.exceptions.TooManyResourceChecksException; import google.registry.model.EppResource; import google.registry.model.EppResource.Builder; @@ -201,7 +200,7 @@ public class ResourceFlowUtils { public EppException run() { final ForeignKeyIndex fki = ForeignKeyIndex.load(resourceClass, targetId, now); if (fki == null) { - return new ResourceToMutateDoesNotExistException(resourceClass, targetId); + return new ResourceDoesNotExistException(resourceClass, targetId); } // Query for the first few linked domains, and if found, actually load them. The query is // eventually consistent and so might be very stale, but the direct load will not be stale, @@ -285,20 +284,16 @@ public class ResourceFlowUtils { } } - public static R loadResourceForQuery( - Class clazz, String targetId, DateTime now) throws ResourceToQueryDoesNotExistException { - R resource = loadByForeignKey(clazz, targetId, now); - if (resource == null) { - throw new ResourceToQueryDoesNotExistException(clazz, targetId); - } - return resource; + public static R loadAndVerifyExistence( + Class clazz, String targetId, DateTime now) + throws ResourceDoesNotExistException { + return verifyExistence(clazz, targetId, loadByForeignKey(clazz, targetId, now)); } - public static R loadResourceToMutate( - Class clazz, String targetId, DateTime now) throws ResourceToMutateDoesNotExistException { - R resource = loadByForeignKey(clazz, targetId, now); + public static R verifyExistence( + Class clazz, String targetId, R resource) throws ResourceDoesNotExistException { if (resource == null) { - throw new ResourceToMutateDoesNotExistException(clazz, targetId); + throw new ResourceDoesNotExistException(clazz, targetId); } return resource; } @@ -361,6 +356,13 @@ public class ResourceFlowUtils { } } + /** Resource with this id does not exist. */ + public static class ResourceDoesNotExistException extends ObjectDoesNotExistException { + public ResourceDoesNotExistException(Class type, String targetId) { + super(type, targetId); + } + } + /** The specified resource belongs to another client. */ public static class ResourceNotOwnedException extends AuthorizationErrorException { public ResourceNotOwnedException() { diff --git a/java/google/registry/flows/ResourceMutateFlow.java b/java/google/registry/flows/ResourceMutateFlow.java index 8988ddbdf..cc4a9bdfc 100644 --- a/java/google/registry/flows/ResourceMutateFlow.java +++ b/java/google/registry/flows/ResourceMutateFlow.java @@ -42,7 +42,7 @@ public abstract class ResourceMutateFlow(getClass()){}.getExactType(), targetId); } if (command.getAuthInfo() != null) { @@ -56,8 +56,8 @@ public abstract class ResourceMutateFlow type, String targetId) { + public static class ResourceDoesNotExistException extends ObjectDoesNotExistException { + public ResourceDoesNotExistException(Class type, String targetId) { super(type, targetId); } } diff --git a/java/google/registry/flows/ResourceQueryFlow.java b/java/google/registry/flows/ResourceQueryFlow.java index 7bd69cc29..8747823e5 100644 --- a/java/google/registry/flows/ResourceQueryFlow.java +++ b/java/google/registry/flows/ResourceQueryFlow.java @@ -33,7 +33,7 @@ public abstract class ResourceQueryFlow(getClass()){}.getExactType(), targetId); } if (command.getAuthInfo() != null) { @@ -47,8 +47,8 @@ public abstract class ResourceQueryFlow type, String targetId) { + public static class ResourceDoesNotExistException extends ObjectDoesNotExistException { + public ResourceDoesNotExistException(Class type, String targetId) { super(type, targetId); } } diff --git a/java/google/registry/flows/contact/ContactDeleteFlow.java b/java/google/registry/flows/contact/ContactDeleteFlow.java index be6da8644..b6c39c5db 100644 --- a/java/google/registry/flows/contact/ContactDeleteFlow.java +++ b/java/google/registry/flows/contact/ContactDeleteFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.contact; import static google.registry.flows.ResourceFlowUtils.failfastForAsyncDelete; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -53,10 +53,10 @@ import org.joda.time.Duration; * references to the host before the deletion is allowed to proceed. A poll message will be written * with the success or failure message when the process is complete. * + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} * @error {@link google.registry.flows.exceptions.ResourceToDeleteIsReferencedException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} */ public final class ContactDeleteFlow extends LoggedInFlow implements TransactionalFlow { @@ -89,7 +89,7 @@ public final class ContactDeleteFlow extends LoggedInFlow implements Transaction @Override public final EppOutput run() throws EppException { failfastForAsyncDelete(targetId, now, ContactResource.class, GET_REFERENCED_CONTACTS); - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyNoDisallowedStatuses(existingContact, DISALLOWED_STATUSES); verifyOptionalAuthInfoForResource(authInfo, existingContact); if (!isSuperuser) { diff --git a/java/google/registry/flows/contact/ContactInfoFlow.java b/java/google/registry/flows/contact/ContactInfoFlow.java index 4e15f1870..42cb78d5f 100644 --- a/java/google/registry/flows/contact/ContactInfoFlow.java +++ b/java/google/registry/flows/contact/ContactInfoFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.contact; -import static google.registry.flows.ResourceFlowUtils.loadResourceForQuery; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.model.EppResourceUtils.cloneResourceWithLinkedStatus; import static google.registry.model.eppoutput.Result.Code.SUCCESS; @@ -37,7 +37,7 @@ import javax.inject.Inject; * ever been transferred. Any registrar can see any contact's information, but the authInfo is only * visible to the registrar that owns the contact or to a registrar that already supplied it. * - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} */ public final class ContactInfoFlow extends LoggedInFlow { @@ -48,7 +48,7 @@ public final class ContactInfoFlow extends LoggedInFlow { @Override public final EppOutput run() throws EppException { - ContactResource contact = loadResourceForQuery(ContactResource.class, targetId, now); + ContactResource contact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, contact); if (!clientId.equals(contact.getCurrentSponsorClientId()) && !authInfo.isPresent()) { contact = contact.asBuilder().setAuthInfo(null).build(); diff --git a/java/google/registry/flows/contact/ContactTransferApproveFlow.java b/java/google/registry/flows/contact/ContactTransferApproveFlow.java index 5c35100ec..a43c84124 100644 --- a/java/google/registry/flows/contact/ContactTransferApproveFlow.java +++ b/java/google/registry/flows/contact/ContactTransferApproveFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.contact; import static google.registry.flows.ResourceFlowUtils.approvePendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; import static google.registry.flows.contact.ContactFlowUtils.createGainingTransferPollMessage; @@ -53,8 +53,8 @@ import javax.inject.Inject; * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} */ public final class ContactTransferApproveFlow extends LoggedInFlow implements TransactionalFlow { @@ -76,7 +76,7 @@ public final class ContactTransferApproveFlow extends LoggedInFlow implements Tr */ @Override public final EppOutput run() throws EppException { - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingContact); TransferData transferData = existingContact.getTransferData(); if (transferData.getTransferStatus() != TransferStatus.PENDING) { diff --git a/java/google/registry/flows/contact/ContactTransferCancelFlow.java b/java/google/registry/flows/contact/ContactTransferCancelFlow.java index 8c761f7a7..9c21cf5fc 100644 --- a/java/google/registry/flows/contact/ContactTransferCancelFlow.java +++ b/java/google/registry/flows/contact/ContactTransferCancelFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.contact; import static google.registry.flows.ResourceFlowUtils.denyPendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.contact.ContactFlowUtils.createLosingTransferPollMessage; import static google.registry.flows.contact.ContactFlowUtils.createTransferResponse; @@ -52,9 +52,9 @@ import javax.inject.Inject; * withdraw the transfer request. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} * @error {@link google.registry.flows.exceptions.NotTransferInitiatorException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} */ public final class ContactTransferCancelFlow extends LoggedInFlow implements TransactionalFlow { @@ -72,7 +72,7 @@ public final class ContactTransferCancelFlow extends LoggedInFlow implements Tra @Override protected final EppOutput run() throws EppException { - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingContact); TransferData transferData = existingContact.getTransferData(); if (transferData.getTransferStatus() != TransferStatus.PENDING) { diff --git a/java/google/registry/flows/contact/ContactTransferQueryFlow.java b/java/google/registry/flows/contact/ContactTransferQueryFlow.java index 7bcc9ee0e..e309421ae 100644 --- a/java/google/registry/flows/contact/ContactTransferQueryFlow.java +++ b/java/google/registry/flows/contact/ContactTransferQueryFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.contact; -import static google.registry.flows.ResourceFlowUtils.loadResourceForQuery; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.contact.ContactFlowUtils.createTransferResponse; import static google.registry.model.eppoutput.Result.Code.SUCCESS; @@ -42,9 +42,9 @@ import javax.inject.Inject; * period expiring. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.NoTransferHistoryToQueryException} * @error {@link google.registry.flows.exceptions.NotAuthorizedToViewTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} */ public final class ContactTransferQueryFlow extends LoggedInFlow { @@ -55,7 +55,7 @@ public final class ContactTransferQueryFlow extends LoggedInFlow { @Override public final EppOutput run() throws EppException { - ContactResource contact = loadResourceForQuery(ContactResource.class, targetId, now); + ContactResource contact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, contact); // Most of the fields on the transfer response are required, so there's no way to return valid // XML if the object has never been transferred (and hence the fields aren't populated). diff --git a/java/google/registry/flows/contact/ContactTransferRejectFlow.java b/java/google/registry/flows/contact/ContactTransferRejectFlow.java index 85cf45ca0..8a3f1a448 100644 --- a/java/google/registry/flows/contact/ContactTransferRejectFlow.java +++ b/java/google/registry/flows/contact/ContactTransferRejectFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.contact; import static google.registry.flows.ResourceFlowUtils.denyPendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; import static google.registry.flows.contact.ContactFlowUtils.createGainingTransferPollMessage; @@ -50,9 +50,9 @@ import javax.inject.Inject; * reject the transfer request. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} */ public final class ContactTransferRejectFlow extends LoggedInFlow implements TransactionalFlow { @@ -69,7 +69,7 @@ public final class ContactTransferRejectFlow extends LoggedInFlow implements Tra @Override protected final EppOutput run() throws EppException { - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingContact); TransferData transferData = existingContact.getTransferData(); if (transferData.getTransferStatus() != TransferStatus.PENDING) { diff --git a/java/google/registry/flows/contact/ContactTransferRequestFlow.java b/java/google/registry/flows/contact/ContactTransferRequestFlow.java index 739825f6a..e6e48cd36 100644 --- a/java/google/registry/flows/contact/ContactTransferRequestFlow.java +++ b/java/google/registry/flows/contact/ContactTransferRequestFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.contact; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyRequiredAuthInfoForResourceTransfer; import static google.registry.flows.contact.ContactFlowUtils.createGainingTransferPollMessage; @@ -58,7 +58,7 @@ import org.joda.time.Duration; * request. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.AlreadyPendingTransferException} * @error {@link google.registry.flows.exceptions.MissingTransferRequestAuthInfoException} * @error {@link google.registry.flows.exceptions.ObjectAlreadySponsoredException} @@ -84,7 +84,7 @@ public final class ContactTransferRequestFlow extends LoggedInFlow implements Tr @Override protected final EppOutput run() throws EppException { - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyRequiredAuthInfoForResourceTransfer(authInfo, existingContact); // Verify that the resource does not already have a pending transfer. if (TransferStatus.PENDING.equals(existingContact.getTransferData().getTransferStatus())) { diff --git a/java/google/registry/flows/contact/ContactUpdateFlow.java b/java/google/registry/flows/contact/ContactUpdateFlow.java index c6a0a19e5..cae34c403 100644 --- a/java/google/registry/flows/contact/ContactUpdateFlow.java +++ b/java/google/registry/flows/contact/ContactUpdateFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.contact; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -50,11 +50,11 @@ import javax.inject.Inject; /** * An EPP flow that updates a contact. * + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.AddRemoveSameValueEppException} * @error {@link google.registry.flows.exceptions.ResourceHasClientUpdateProhibitedException} * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link google.registry.flows.exceptions.StatusNotClientSettableException} * @error {@link ContactFlowUtils.BadInternationalizedPostalInfoException} * @error {@link ContactFlowUtils.DeclineContactDisclosureFieldDisallowedPolicyException} @@ -85,7 +85,7 @@ public final class ContactUpdateFlow extends LoggedInFlow implements Transaction @Override public final EppOutput run() throws EppException { Update command = (Update) resourceCommand; - ContactResource existingContact = loadResourceToMutate(ContactResource.class, targetId, now); + ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingContact); if (!isSuperuser) { verifyResourceOwnership(clientId, existingContact); diff --git a/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java b/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java index eda983605..ef285aeb4 100644 --- a/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java +++ b/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java @@ -42,7 +42,7 @@ import javax.inject.Inject; * @error {@link google.registry.flows.ResourceFlow.BadCommandForRegistryPhaseException} * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link DomainApplicationDeleteFlow.SunriseApplicationCannotBeDeletedInLandrushException} * @error {@link DomainFlowUtils.ApplicationDomainNameMismatchException} * @error {@link DomainFlowUtils.LaunchPhaseMismatchException} diff --git a/java/google/registry/flows/domain/DomainApplicationInfoFlow.java b/java/google/registry/flows/domain/DomainApplicationInfoFlow.java index de90ec5dd..aefdac11a 100644 --- a/java/google/registry/flows/domain/DomainApplicationInfoFlow.java +++ b/java/google/registry/flows/domain/DomainApplicationInfoFlow.java @@ -15,6 +15,7 @@ package google.registry.flows.domain; import static google.registry.flows.EppXmlTransformer.unmarshal; +import static google.registry.flows.ResourceFlowUtils.verifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; import static google.registry.flows.domain.DomainFlowUtils.addSecDnsExtensionIfPresent; @@ -31,7 +32,6 @@ import google.registry.flows.FlowModule.ApplicationId; import google.registry.flows.FlowModule.ClientId; import google.registry.flows.FlowModule.TargetId; import google.registry.flows.LoggedInFlow; -import google.registry.flows.exceptions.ResourceToQueryDoesNotExistException; import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainCommand.Info; import google.registry.model.domain.launch.LaunchInfoExtension; @@ -51,8 +51,8 @@ import javax.inject.Inject; *

Only the registrar that owns the application can see its info. The flow can optionally include * delegated hosts in its response. * + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} * @error {@link DomainFlowUtils.ApplicationDomainNameMismatchException} * @error {@link DomainApplicationInfoFlow.ApplicationLaunchPhaseMismatchException} * @error {@link MissingApplicationIdException} @@ -76,10 +76,8 @@ public final class DomainApplicationInfoFlow extends LoggedInFlow { if (applicationId.isEmpty()) { throw new MissingApplicationIdException(); } - DomainApplication application = loadDomainApplication(applicationId, now); - if (application == null) { - throw new ResourceToQueryDoesNotExistException(DomainApplication.class, applicationId); - } + DomainApplication application = verifyExistence( + DomainApplication.class, applicationId, loadDomainApplication(applicationId, now)); verifyApplicationDomainMatchesTargetId(application, targetId); verifyOptionalAuthInfoForResource(authInfo, application); LaunchInfoExtension launchInfo = eppInput.getSingleExtension(LaunchInfoExtension.class); diff --git a/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java b/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java index 1cdc822e3..8727b6762 100644 --- a/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java +++ b/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java @@ -36,7 +36,7 @@ import javax.inject.Inject; * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceUpdateFlow.AddRemoveSameValueEppException} * @error {@link google.registry.flows.ResourceUpdateFlow.ResourceHasClientUpdateProhibitedException} * @error {@link google.registry.flows.ResourceUpdateFlow.StatusNotClientSettableException} diff --git a/java/google/registry/flows/domain/DomainDeleteFlow.java b/java/google/registry/flows/domain/DomainDeleteFlow.java index 5e3dc8b4b..c508316df 100644 --- a/java/google/registry/flows/domain/DomainDeleteFlow.java +++ b/java/google/registry/flows/domain/DomainDeleteFlow.java @@ -66,7 +66,7 @@ import org.joda.time.DateTime; * @error {@link google.registry.flows.ResourceCreateOrMutateFlow.OnlyToolCanPassMetadataException} * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link google.registry.flows.SingleResourceFlow.ResourceStatusProhibitsOperationException} * @error {@link DomainDeleteFlow.DomainToDeleteHasHostsException} */ diff --git a/java/google/registry/flows/domain/DomainInfoFlow.java b/java/google/registry/flows/domain/DomainInfoFlow.java index 7e81a4379..cd7e8264a 100644 --- a/java/google/registry/flows/domain/DomainInfoFlow.java +++ b/java/google/registry/flows/domain/DomainInfoFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.domain; -import static google.registry.flows.ResourceFlowUtils.loadResourceForQuery; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.domain.DomainFlowUtils.addSecDnsExtensionIfPresent; import static google.registry.flows.domain.DomainFlowUtils.handleFeeRequest; @@ -53,7 +53,7 @@ import javax.inject.Inject; * answered with a minimal result containing only basic information about the domain. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link DomainFlowUtils.BadPeriodUnitException} * @error {@link DomainFlowUtils.CurrencyUnitMismatchException} * @error {@link DomainFlowUtils.FeeChecksDontSupportPhasesException} @@ -74,7 +74,7 @@ public final class DomainInfoFlow extends LoggedInFlow { @Override public final EppOutput run() throws EppException { - DomainResource domain = loadResourceForQuery(DomainResource.class, targetId, now); + DomainResource domain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, domain); return createOutput( SUCCESS, diff --git a/java/google/registry/flows/domain/DomainRenewFlow.java b/java/google/registry/flows/domain/DomainRenewFlow.java index e5d8483bb..67bab50aa 100644 --- a/java/google/registry/flows/domain/DomainRenewFlow.java +++ b/java/google/registry/flows/domain/DomainRenewFlow.java @@ -63,7 +63,7 @@ import org.joda.time.DateTime; * * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link google.registry.flows.SingleResourceFlow.ResourceStatusProhibitsOperationException} * @error {@link DomainFlowUtils.BadPeriodUnitException} * @error {@link DomainFlowUtils.CurrencyUnitMismatchException} diff --git a/java/google/registry/flows/domain/DomainRestoreRequestFlow.java b/java/google/registry/flows/domain/DomainRestoreRequestFlow.java index c070071fd..cc78e6e5f 100644 --- a/java/google/registry/flows/domain/DomainRestoreRequestFlow.java +++ b/java/google/registry/flows/domain/DomainRestoreRequestFlow.java @@ -60,7 +60,7 @@ import org.joda.time.DateTime; * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link DomainFlowUtils.CurrencyUnitMismatchException} * @error {@link DomainFlowUtils.CurrencyValueScaleException} * @error {@link DomainFlowUtils.DomainReservedException} diff --git a/java/google/registry/flows/domain/DomainTransferApproveFlow.java b/java/google/registry/flows/domain/DomainTransferApproveFlow.java index 123bae4a7..32d1830f5 100644 --- a/java/google/registry/flows/domain/DomainTransferApproveFlow.java +++ b/java/google/registry/flows/domain/DomainTransferApproveFlow.java @@ -17,7 +17,7 @@ package google.registry.flows.domain; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.getOnlyElement; import static google.registry.flows.ResourceFlowUtils.approvePendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyHasPendingTransfer; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -71,9 +71,9 @@ import org.joda.time.DateTime; * those speculative objects are deleted and replaced with new ones with the correct approval time. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link DomainFlowUtils.NotAuthorizedForTldException} */ public final class DomainTransferApproveFlow extends LoggedInFlow implements TransactionalFlow { @@ -95,7 +95,7 @@ public final class DomainTransferApproveFlow extends LoggedInFlow implements Tra */ @Override public final EppOutput run() throws EppException { - DomainResource existingDomain = loadResourceToMutate(DomainResource.class, targetId, now); + DomainResource existingDomain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingDomain); verifyHasPendingTransfer(existingDomain); verifyResourceOwnership(clientId, existingDomain); diff --git a/java/google/registry/flows/domain/DomainTransferCancelFlow.java b/java/google/registry/flows/domain/DomainTransferCancelFlow.java index 11c6c2b3e..2284cfb5e 100644 --- a/java/google/registry/flows/domain/DomainTransferCancelFlow.java +++ b/java/google/registry/flows/domain/DomainTransferCancelFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.domain; import static google.registry.flows.ResourceFlowUtils.denyPendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyHasPendingTransfer; import static google.registry.flows.ResourceFlowUtils.verifyIsGainingRegistrar; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; @@ -56,9 +56,9 @@ import javax.inject.Inject; * those speculative objects are deleted. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} * @error {@link google.registry.flows.exceptions.NotTransferInitiatorException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link DomainFlowUtils.NotAuthorizedForTldException} */ public final class DomainTransferCancelFlow extends LoggedInFlow implements TransactionalFlow { @@ -76,7 +76,7 @@ public final class DomainTransferCancelFlow extends LoggedInFlow implements Tran @Override public final EppOutput run() throws EppException { - DomainResource existingDomain = loadResourceToMutate(DomainResource.class, targetId, now); + DomainResource existingDomain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, existingDomain); verifyHasPendingTransfer(existingDomain); verifyIsGainingRegistrar(existingDomain, clientId); diff --git a/java/google/registry/flows/domain/DomainTransferQueryFlow.java b/java/google/registry/flows/domain/DomainTransferQueryFlow.java index 854058f8f..a29fa99b5 100644 --- a/java/google/registry/flows/domain/DomainTransferQueryFlow.java +++ b/java/google/registry/flows/domain/DomainTransferQueryFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.domain; -import static google.registry.flows.ResourceFlowUtils.loadResourceForQuery; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.domain.DomainFlowUtils.createTransferResponse; import static google.registry.model.domain.DomainResource.extendRegistrationWithCap; @@ -46,9 +46,9 @@ import org.joda.time.DateTime; * period expiring. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.NoTransferHistoryToQueryException} * @error {@link google.registry.flows.exceptions.NotAuthorizedToViewTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} */ public final class DomainTransferQueryFlow extends LoggedInFlow { @@ -59,7 +59,7 @@ public final class DomainTransferQueryFlow extends LoggedInFlow { @Override public final EppOutput run() throws EppException { - DomainResource domain = loadResourceForQuery(DomainResource.class, targetId, now); + DomainResource domain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, domain); // Most of the fields on the transfer response are required, so there's no way to return valid // XML if the object has never been transferred (and hence the fields aren't populated). diff --git a/java/google/registry/flows/domain/DomainTransferRejectFlow.java b/java/google/registry/flows/domain/DomainTransferRejectFlow.java index b792e13c5..189905357 100644 --- a/java/google/registry/flows/domain/DomainTransferRejectFlow.java +++ b/java/google/registry/flows/domain/DomainTransferRejectFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.domain; import static google.registry.flows.ResourceFlowUtils.denyPendingTransfer; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyHasPendingTransfer; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -56,9 +56,9 @@ import javax.inject.Inject; * those speculative objects are deleted. * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.NotPendingTransferException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link DomainFlowUtils.NotAuthorizedForTldException} */ public final class DomainTransferRejectFlow extends LoggedInFlow implements TransactionalFlow { @@ -76,7 +76,7 @@ public final class DomainTransferRejectFlow extends LoggedInFlow implements Tran @Override public final EppOutput run() throws EppException { - DomainResource existingDomain = loadResourceToMutate(DomainResource.class, targetId, now); + DomainResource existingDomain = loadAndVerifyExistence(DomainResource.class, targetId, now); HistoryEntry historyEntry = historyBuilder .setType(HistoryEntry.Type.DOMAIN_TRANSFER_REJECT) .setModificationTime(now) diff --git a/java/google/registry/flows/domain/DomainTransferRequestFlow.java b/java/google/registry/flows/domain/DomainTransferRequestFlow.java index 2d7545ee6..99aa6b340 100644 --- a/java/google/registry/flows/domain/DomainTransferRequestFlow.java +++ b/java/google/registry/flows/domain/DomainTransferRequestFlow.java @@ -17,7 +17,7 @@ package google.registry.flows.domain; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.getOnlyElement; import static com.google.common.collect.Sets.union; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyRequiredAuthInfoForResourceTransfer; import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld; @@ -91,11 +91,11 @@ import org.joda.time.DateTime; * replaced with new ones with the correct approval time). * * @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.exceptions.AlreadyPendingTransferException} * @error {@link google.registry.flows.exceptions.MissingTransferRequestAuthInfoException} * @error {@link google.registry.flows.exceptions.ObjectAlreadySponsoredException} * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link DomainFlowUtils.BadPeriodUnitException} * @error {@link DomainFlowUtils.CurrencyUnitMismatchException} * @error {@link DomainFlowUtils.CurrencyValueScaleException} @@ -129,7 +129,7 @@ public final class DomainTransferRequestFlow extends LoggedInFlow implements Tra public final EppOutput run() throws EppException { Period period = ((Transfer) resourceCommand).getPeriod(); int years = period.getValue(); - DomainResource existingDomain = loadResourceToMutate(DomainResource.class, targetId, now); + DomainResource existingDomain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyTransferAllowed(existingDomain, period); String tld = existingDomain.getTld(); Registry registry = Registry.get(tld); diff --git a/java/google/registry/flows/domain/DomainUpdateFlow.java b/java/google/registry/flows/domain/DomainUpdateFlow.java index 30d84fcca..c2588c173 100644 --- a/java/google/registry/flows/domain/DomainUpdateFlow.java +++ b/java/google/registry/flows/domain/DomainUpdateFlow.java @@ -48,7 +48,7 @@ import org.joda.time.DateTime; * @error {@link google.registry.flows.ResourceCreateOrMutateFlow.OnlyToolCanPassMetadataException} * @error {@link google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException} + * @error {@link google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceUpdateFlow.AddRemoveSameValueEppException} * @error {@link google.registry.flows.ResourceUpdateFlow.ResourceHasClientUpdateProhibitedException} * @error {@link google.registry.flows.ResourceUpdateFlow.StatusNotClientSettableException} diff --git a/java/google/registry/flows/domain/TldSpecificLogicProxy.java b/java/google/registry/flows/domain/TldSpecificLogicProxy.java index 6ade914e4..fd1aaf184 100644 --- a/java/google/registry/flows/domain/TldSpecificLogicProxy.java +++ b/java/google/registry/flows/domain/TldSpecificLogicProxy.java @@ -25,7 +25,7 @@ import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.googlecode.objectify.Key; import google.registry.flows.EppException; -import google.registry.flows.ResourceMutateFlow.ResourceToMutateDoesNotExistException; +import google.registry.flows.ResourceMutateFlow.ResourceDoesNotExistException; import google.registry.model.ImmutableObject; import google.registry.model.domain.DomainCommand.Create; import google.registry.model.domain.DomainResource; @@ -183,7 +183,7 @@ public final class TldSpecificLogicProxy { // TODO: Consider changing the method definition to have the domain passed in to begin with. DomainResource domain = loadByForeignKey(DomainResource.class, domainName, date); if (domain == null) { - throw new ResourceToMutateDoesNotExistException(DomainResource.class, domainName); + throw new ResourceDoesNotExistException(DomainResource.class, domainName); } return extraFlowLogic.get().getRenewFeeOrCredit(domain, clientId, date, years, eppInput); @@ -249,7 +249,7 @@ public final class TldSpecificLogicProxy { // TODO: Consider changing the method definition to have the domain passed in to begin with. DomainResource domain = loadByForeignKey(DomainResource.class, domainName, date); if (domain == null) { - throw new ResourceToMutateDoesNotExistException(DomainResource.class, domainName); + throw new ResourceDoesNotExistException(DomainResource.class, domainName); } feeOrCredit = extraFlowLogic.get().getUpdateFeeOrCredit(domain, clientId, date, eppInput); diff --git a/java/google/registry/flows/exceptions/ResourceToMutateDoesNotExistException.java b/java/google/registry/flows/exceptions/ResourceToMutateDoesNotExistException.java deleted file mode 100644 index f4df5ada8..000000000 --- a/java/google/registry/flows/exceptions/ResourceToMutateDoesNotExistException.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2016 The Domain Registry Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.exceptions; - -import google.registry.flows.EppException.ObjectDoesNotExistException; - -/** Resource with this id does not exist. */ -public class ResourceToMutateDoesNotExistException extends ObjectDoesNotExistException { - public ResourceToMutateDoesNotExistException(Class type, String targetId) { - super(type, targetId); - } -} diff --git a/java/google/registry/flows/exceptions/ResourceToQueryDoesNotExistException.java b/java/google/registry/flows/exceptions/ResourceToQueryDoesNotExistException.java deleted file mode 100644 index 4aad6c2cb..000000000 --- a/java/google/registry/flows/exceptions/ResourceToQueryDoesNotExistException.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2016 The Domain Registry Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.exceptions; - -import google.registry.flows.EppException.ObjectDoesNotExistException; - -/** Resource with this id does not exist. */ -public class ResourceToQueryDoesNotExistException extends ObjectDoesNotExistException { - public ResourceToQueryDoesNotExistException(Class type, String targetId) { - super(type, targetId); - } -} diff --git a/java/google/registry/flows/host/HostDeleteFlow.java b/java/google/registry/flows/host/HostDeleteFlow.java index 7ce15e35c..674df692d 100644 --- a/java/google/registry/flows/host/HostDeleteFlow.java +++ b/java/google/registry/flows/host/HostDeleteFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.host; import static google.registry.flows.ResourceFlowUtils.failfastForAsyncDelete; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -50,9 +50,9 @@ import javax.inject.Inject; * references to the host before the deletion is allowed to proceed. A poll message will be written * with the success or failure message when the process is complete. * + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link google.registry.flows.exceptions.ResourceToDeleteIsReferencedException} */ public final class HostDeleteFlow extends LoggedInFlow implements TransactionalFlow { @@ -85,7 +85,7 @@ public final class HostDeleteFlow extends LoggedInFlow implements TransactionalF @Override public final EppOutput run() throws EppException { failfastForAsyncDelete(targetId, now, HostResource.class, GET_NAMESERVERS); - HostResource existingHost = loadResourceToMutate(HostResource.class, targetId, now); + HostResource existingHost = loadAndVerifyExistence(HostResource.class, targetId, now); verifyNoDisallowedStatuses(existingHost, DISALLOWED_STATUSES); verifyOptionalAuthInfoForResource(authInfo, existingHost); if (!isSuperuser) { diff --git a/java/google/registry/flows/host/HostInfoFlow.java b/java/google/registry/flows/host/HostInfoFlow.java index 34e15cccd..a6b15edd4 100644 --- a/java/google/registry/flows/host/HostInfoFlow.java +++ b/java/google/registry/flows/host/HostInfoFlow.java @@ -14,7 +14,7 @@ package google.registry.flows.host; -import static google.registry.flows.ResourceFlowUtils.loadResourceForQuery; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.model.EppResourceUtils.cloneResourceWithLinkedStatus; import static google.registry.model.eppoutput.Result.Code.SUCCESS; @@ -34,7 +34,7 @@ import javax.inject.Inject; *

The returned information included IP addresses, if any, and details of the host's most recent * transfer if it has ever been transferred. Any registrar can see the information for any host. * - * @error {@link google.registry.flows.exceptions.ResourceToQueryDoesNotExistException} + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} */ public final class HostInfoFlow extends LoggedInFlow { @@ -44,7 +44,7 @@ public final class HostInfoFlow extends LoggedInFlow { @Override public EppOutput run() throws EppException { - HostResource host = loadResourceForQuery(HostResource.class, targetId, now); + HostResource host = loadAndVerifyExistence(HostResource.class, targetId, now); verifyOptionalAuthInfoForResource(authInfo, host); return createOutput(SUCCESS, cloneResourceWithLinkedStatus(host, now)); } diff --git a/java/google/registry/flows/host/HostUpdateFlow.java b/java/google/registry/flows/host/HostUpdateFlow.java index a222980c7..276aff0e9 100644 --- a/java/google/registry/flows/host/HostUpdateFlow.java +++ b/java/google/registry/flows/host/HostUpdateFlow.java @@ -15,7 +15,7 @@ package google.registry.flows.host; import static com.google.common.base.MoreObjects.firstNonNull; -import static google.registry.flows.ResourceFlowUtils.loadResourceToMutate; +import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence; import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfoForResource; import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; @@ -74,10 +74,10 @@ import javax.inject.Inject; * when it is renamed from external to internal at least one must be added. If the host is renamed * or IP addresses are added, tasks are enqueued to update DNS accordingly. * + * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} * @error {@link google.registry.flows.exceptions.ResourceHasClientUpdateProhibitedException} * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} - * @error {@link google.registry.flows.exceptions.ResourceToMutateDoesNotExistException} * @error {@link google.registry.flows.exceptions.StatusNotClientSettableException} * @error {@link HostFlowUtils.HostNameTooShallowException} * @error {@link HostFlowUtils.InvalidHostNameException} @@ -116,7 +116,7 @@ public final class HostUpdateFlow extends LoggedInFlow implements TransactionalF public final EppOutput run() throws EppException { Update command = (Update) resourceCommand; String suppliedNewHostName = command.getInnerChange().getFullyQualifiedHostName(); - HostResource existingHost = loadResourceToMutate(HostResource.class, targetId, now); + HostResource existingHost = loadAndVerifyExistence(HostResource.class, targetId, now); boolean isHostRename = suppliedNewHostName != null; String oldHostName = targetId; String newHostName = firstNonNull(suppliedNewHostName, oldHostName); diff --git a/javatests/google/registry/flows/contact/ContactDeleteFlowTest.java b/javatests/google/registry/flows/contact/ContactDeleteFlowTest.java index c121a54fd..8f5822caa 100644 --- a/javatests/google/registry/flows/contact/ContactDeleteFlowTest.java +++ b/javatests/google/registry/flows/contact/ContactDeleteFlowTest.java @@ -25,10 +25,10 @@ import static google.registry.testing.DatastoreHelper.persistResource; import com.google.common.collect.ImmutableSet; import google.registry.flows.ResourceFlowTestCase; +import google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException; import google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException; import google.registry.flows.exceptions.ResourceStatusProhibitsOperationException; import google.registry.flows.exceptions.ResourceToDeleteIsReferencedException; -import google.registry.flows.exceptions.ResourceToMutateDoesNotExistException; import google.registry.model.contact.ContactResource; import google.registry.model.eppcommon.StatusValue; import google.registry.model.reporting.HistoryEntry; @@ -78,7 +78,7 @@ public class ContactDeleteFlowTest @Test public void testFailure_neverExisted() throws Exception { thrown.expect( - ResourceToMutateDoesNotExistException.class, + ResourceDoesNotExistException.class, String.format("(%s)", getUniqueIdFromCommand())); runFlow(); } @@ -86,7 +86,7 @@ public class ContactDeleteFlowTest @Test public void testFailure_existedButWasDeleted() throws Exception { thrown.expect( - ResourceToMutateDoesNotExistException.class, + ResourceDoesNotExistException.class, String.format("(%s)", getUniqueIdFromCommand())); persistDeletedContact(getUniqueIdFromCommand(), clock.nowUtc()); runFlow(); diff --git a/javatests/google/registry/flows/contact/ContactInfoFlowTest.java b/javatests/google/registry/flows/contact/ContactInfoFlowTest.java index 0236f74b2..1ec2dd9f4 100644 --- a/javatests/google/registry/flows/contact/ContactInfoFlowTest.java +++ b/javatests/google/registry/flows/contact/ContactInfoFlowTest.java @@ -24,7 +24,7 @@ import static google.registry.testing.DatastoreHelper.persistResource; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.exceptions.ResourceToQueryDoesNotExistException; +import google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException; import google.registry.model.contact.ContactAddress; import google.registry.model.contact.ContactAuthInfo; import google.registry.model.contact.ContactPhoneNumber; @@ -164,7 +164,7 @@ public class ContactInfoFlowTest extends ResourceFlowTestCase