mirror of
https://github.com/google/nomulus
synced 2026-09-13 11:34:31 +00:00
Fix NullPointerException in StaticPremiumPricingEngine (#1164)
* Fix NullPointerException in StaticPremiumPricingEngine * Make getPremiumList return optional * add isPresent checks
This commit is contained in:
@@ -113,7 +113,7 @@ public class ExportPremiumTermsAction implements Runnable {
|
||||
"Skipping premium terms export for TLD %s because Drive folder isn't specified", tld);
|
||||
return Optional.of("Skipping export because no Drive folder is associated with this TLD");
|
||||
}
|
||||
if (registry.getPremiumList() == null) {
|
||||
if (!registry.getPremiumList().isPresent()) {
|
||||
logger.atInfo().log("No premium terms to export for TLD %s", tld);
|
||||
return Optional.of("No premium lists configured");
|
||||
}
|
||||
@@ -137,7 +137,8 @@ public class ExportPremiumTermsAction implements Runnable {
|
||||
}
|
||||
|
||||
private String getFormattedPremiumTerms(Registry registry) {
|
||||
String premiumListName = registry.getPremiumList().getName();
|
||||
checkState(registry.getPremiumList().isPresent(), "%s does not have a premium list", tld);
|
||||
String premiumListName = registry.getPremiumList().get().getName();
|
||||
checkState(
|
||||
PremiumListDao.getLatestRevision(premiumListName).isPresent(),
|
||||
"Could not load premium list for " + tld);
|
||||
|
||||
+5
-2
@@ -38,8 +38,11 @@ public final class StaticPremiumListPricingEngine implements PremiumPricingEngin
|
||||
String tld = getTldFromDomainName(fullyQualifiedDomainName);
|
||||
String label = InternetDomainName.from(fullyQualifiedDomainName).parts().get(0);
|
||||
Registry registry = Registry.get(checkNotNull(tld, "tld"));
|
||||
Optional<Money> premiumPrice =
|
||||
PremiumListDao.getPremiumPrice(registry.getPremiumList().getName(), label);
|
||||
Optional<Money> premiumPrice = Optional.empty();
|
||||
if (registry.getPremiumList().isPresent()) {
|
||||
premiumPrice =
|
||||
PremiumListDao.getPremiumPrice(registry.getPremiumList().get().getName(), label);
|
||||
}
|
||||
return DomainPrices.create(
|
||||
premiumPrice.isPresent(),
|
||||
premiumPrice.orElse(registry.getStandardCreateCost()),
|
||||
|
||||
@@ -607,8 +607,8 @@ public class Registry extends ImmutableObject implements Buildable, DatastoreAnd
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Key<PremiumList> getPremiumList() {
|
||||
return premiumList;
|
||||
public Optional<Key<PremiumList>> getPremiumList() {
|
||||
return Optional.ofNullable(premiumList);
|
||||
}
|
||||
|
||||
public CurrencyUnit getCurrency() {
|
||||
|
||||
@@ -263,7 +263,7 @@ public final class PremiumList extends BaseDomainLabelList<Money, PremiumList.Pr
|
||||
|
||||
@Override
|
||||
public boolean refersToKey(Registry registry, Key<? extends BaseDomainLabelList<?, ?>> key) {
|
||||
return Objects.equals(registry.getPremiumList(), key);
|
||||
return Objects.equals(registry.getPremiumList().orElse(null), key);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user