diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 459dfb15..0eece38b 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -3014,7 +3014,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { return Currency.getInstance("USD"); if (currencyStr.equals("Dirham")) return Currency.getInstance("AED"); - return Currency.getInstance(currencyStr); + return ParserUtils.getCurrency(currencyStr); } private static final Pattern P_POSITION = Pattern.compile( diff --git a/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java b/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java index 3dc6d8f7..4ba5b0d4 100644 --- a/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java +++ b/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java @@ -785,7 +785,7 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas } else if (type.equals("F")) { // fare final String currencyStr = jsonFare.optString("cur"); if (currencyStr != null) { - final Currency currency = Currency.getInstance(currencyStr); + final Currency currency = ParserUtils.getCurrency(currencyStr); final float price = jsonFare.getInt("prc") / 100f; fare = new Fare(normalizeFareName(fareName), normalizeFareType(fareName), currency, price, null, null); diff --git a/src/de/schildbach/pte/util/ParserUtils.java b/src/de/schildbach/pte/util/ParserUtils.java index 1dca916b..caa064c9 100644 --- a/src/de/schildbach/pte/util/ParserUtils.java +++ b/src/de/schildbach/pte/util/ParserUtils.java @@ -303,4 +303,12 @@ public final class ParserUtils { return null; } + + public static Currency getCurrency(final String code) { + try { + return Currency.getInstance(code); + } catch (final IllegalArgumentException x) { + throw new RuntimeException("unknown ISO 4217 code: " + code); + } + } }