Fixed NPE relying on existing ConversionContext. Signed-off-by: Anatole Tresch <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/c509a8f1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/c509a8f1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/c509a8f1 Branch: refs/heads/configjsr Commit: c509a8f1591b0e17001ca3ef76c7ce0d471323f9 Parents: 00233a7 Author: Anatole Tresch <[email protected]> Authored: Mon Jan 1 23:55:45 2018 +0100 Committer: Anatole Tresch <[email protected]> Committed: Mon Jan 1 23:55:45 2018 +0100 ---------------------------------------------------------------------- .../org/apache/tamaya/base/DefaultConfig.java | 2 +- .../base/configsource/SimpleConfigSource.java | 8 +-- .../tamaya/base/convert/ConversionContext.java | 4 +- .../tamaya/base/convert/ConverterManager.java | 76 +++++++++++++------- .../tamaya/base/convert/EnumConverter.java | 5 +- .../core/converters/BigIntegerConverter.java | 4 +- .../core/converters/BooleanConverter.java | 4 +- .../tamaya/core/converters/ByteConverter.java | 4 +- .../tamaya/core/converters/CharConverter.java | 4 +- .../tamaya/core/converters/ClassConverter.java | 4 +- .../core/converters/CurrencyConverter.java | 4 +- .../tamaya/core/converters/DoubleConverter.java | 4 +- .../core/converters/DurationConverter.java | 6 +- .../tamaya/core/converters/FileConverter.java | 4 +- .../tamaya/core/converters/FloatConverter.java | 4 +- .../core/converters/InstantConverter.java | 4 +- .../core/converters/IntegerConverter.java | 4 +- .../core/converters/LocalDateConverter.java | 4 +- .../core/converters/LocalDateTimeConverter.java | 4 +- .../core/converters/LocalTimeConverter.java | 4 +- .../tamaya/core/converters/LongConverter.java | 4 +- .../tamaya/core/converters/NumberConverter.java | 6 +- .../converters/OffsetDateTimeConverter.java | 4 +- .../core/converters/OffsetTimeConverter.java | 4 +- .../tamaya/core/converters/PathConverter.java | 4 +- .../tamaya/core/converters/ShortConverter.java | 4 +- .../tamaya/core/converters/URIConverter.java | 4 +- .../tamaya/core/converters/URLConverter.java | 4 +- 28 files changed, 131 insertions(+), 60 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java ---------------------------------------------------------------------- diff --git a/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java b/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java index a3762f1..7607199 100644 --- a/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java +++ b/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java @@ -91,7 +91,7 @@ public class DefaultConfig implements Config, ConfigContextSupplier { } value = filterManager.filterValue(value, this); if(value!=null){ - return (T)converterManager.convertValue(key, value.getValue(), targetType, this); + return (T)converterManager.convertValue(value.getValue(), targetType); } return null; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java ---------------------------------------------------------------------- diff --git a/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java b/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java index 8d59c4c..a95bb73 100644 --- a/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java +++ b/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java @@ -114,8 +114,8 @@ public class SimpleConfigSource extends BaseConfigSource { setName(builder.name); } - public static Builder newBuilder() { - return new Builder(); + public static Builder builder(String name) { + return new Builder().withName(name); } @Override @@ -186,10 +186,10 @@ public class SimpleConfigSource extends BaseConfigSource { * Sets the {@code name} and returns a reference to this Builder so that the methods * can be chained together. * - * @param val the {@code name} to set, not null. + * @param name the {@code name} to set, not null. * @return a reference to this Builder */ - public Builder withName(String val) { + public Builder withName(String name) { this.name = Objects.requireNonNull(name); return this; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java ---------------------------------------------------------------------- diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java b/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java index 6f88211..df16eda 100644 --- a/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java +++ b/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java @@ -58,7 +58,7 @@ public class ConversionContext { * @param builder the builder, not {@code null}. */ protected ConversionContext(Builder builder){ - this.key = Objects.requireNonNull(builder.key); + this.key = builder.key; this.annotatedElement = builder.annotatedElement; this.targetType = Objects.requireNonNull(builder.targetType, "Target type required."); this.supportedFormats.addAll(builder.supportedFormats); @@ -168,7 +168,7 @@ public class ConversionContext { * @param targetType the target type */ public Builder(Config configuration, String key, Type targetType){ - this.key = Objects.requireNonNull(key, "Key required"); + this.key = key; this.configuration = configuration; this.targetType = Objects.requireNonNull(targetType, "Target type required."); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java ---------------------------------------------------------------------- diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java index a4855b7..f22f0ca 100644 --- a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java +++ b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java @@ -20,6 +20,8 @@ package org.apache.tamaya.base.convert; import org.apache.tamaya.base.FormatUtils; import org.apache.tamaya.base.PriorityServiceComparator; +import org.apache.tamaya.spi.ConfigContext; +import org.apache.tamaya.spi.ConfigContextSupplier; import org.apache.tamaya.spi.ServiceContext; import org.apache.tamaya.spi.ServiceContextManager; @@ -42,6 +44,7 @@ public class ConverterManager { * The logger used. */ private static final Logger LOG = Logger.getLogger(ConverterManager.class.getName()); + /** * The registered converters. */ @@ -68,6 +71,20 @@ public class ConverterManager { } }; + private static final ConverterManager INSTANCE = new ConverterManager() + .addCoreConverters() + .addDiscoveredConverters(); + + + /** + * Access the shared common default instance, that can be used for conversion if the current {@link Config} + * does not implement the {@link ConfigContextSupplier} interface. + * @return the shared instance, not null. + */ + public static ConverterManager defaultInstance(){ + return INSTANCE; + } + /** * Get the classloader used for instance creation. * @return the classloader, never null. @@ -118,7 +135,7 @@ public class ConverterManager { * @param converters the converters to add for this type * @return this builder, for chaining, never null. */ - public <T> ConverterManager addConverter(Type typeToConvert, Converter<T>... converters) { + public ConverterManager addConverter(Type typeToConvert, Converter... converters) { return addConverter(typeToConvert, Arrays.asList(converters)); } @@ -132,7 +149,7 @@ public class ConverterManager { * @param converters the converters to add for this type * @return this builder, for chaining, never null. */ - public <T> ConverterManager addConverter(Type typeToConvert, Collection<Converter<T>> converters) { + public ConverterManager addConverter(Type typeToConvert, Collection<Converter> converters) { Objects.requireNonNull(converters); List<Converter> converterList = List.class.cast(this.converters.get(typeToConvert)); if(converterList==null){ @@ -374,31 +391,8 @@ public class ConverterManager { return converterList; } - public Object convertValue(String key, String value, Type type, Config config) { - if (value != null) { - List<Converter> converters = getConverters(type); - org.apache.tamaya.base.convert.ConversionContext context = new org.apache.tamaya.base.convert.ConversionContext.Builder(config, key, type) - .build(); - ConversionContext.setContext(context); - for (Converter converter : converters) { - try { - Object t = converter.convert(value); - if (t != null) { - return t; - } - } catch (Exception e) { - LOG.log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert value: " + value, e); - } - } - // if the target type is a String, we can return the value, no conversion required. - if(type.equals(String.class)){ - return value; - } - // unsupported type, throw an exception - throw new IllegalStateException("Unparseable config value for type: " + type.getTypeName() + ": " + key + - ", supported formats: " + context.getSupportedFormats()); - } - return null; + public <T> T convertValue(String value, Type type){ + return convertValue(value, type, this.getConverters(type)); } private <T> void addConvertersToList(Collection<Converter> converters, List<Converter> converterList) { @@ -565,6 +559,34 @@ public class ConverterManager { } /** + * Converts a given text input using the given config. + * @param textValue the text value. + * @param type the target type. + * @param converters the converters to be used. + * @param <T> the type + * @return the converted type, or null. + */ + public <T> T convertValue(String textValue, Type type, Iterable<Converter> converters) { + if(textValue==null){ + return null; + } + for(Converter<T> converter:converters){ + try{ + T t = converter.convert(textValue); + if(t!=null){ + return t; + } + }catch(Exception e){ + LOG.log(Level.FINE, e, () -> "Could not parse config value: " + textValue); + } + } + if(String.class.equals(type) || CharSequence.class.equals(type)){ + return (T)textValue; + } + throw new IllegalArgumentException("Uncovertible config value: '" + textValue + "', target type: " + type.getTypeName()); + } + + /** * Default converters imüöementation perfoming several lookups for String converion * option. * @param <T> http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java ---------------------------------------------------------------------- diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java b/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java index c0f727b..47e53c7 100644 --- a/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java +++ b/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java @@ -52,7 +52,10 @@ public class EnumConverter<T> implements Converter<T> { @Override public T convert(String value) { - ConversionContext.getContext().addSupportedFormats(getClass(),"<enumValue>"); + ConversionContext context = ConversionContext.getContext(); + if(context!=null){ + context.addSupportedFormats(getClass(),"<enumValue>"); + } try { return (T) factory.invoke(null, value); } catch (InvocationTargetException | IllegalAccessException e) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java index 1e73b19..9dc6f8a 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java @@ -49,7 +49,9 @@ public class BigIntegerConverter implements Converter<BigInteger> { @Override public BigInteger convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)"); + if(context!=null) { + context.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)"); + } String trimmed = Objects.requireNonNull(value).trim(); if(trimmed.startsWith("0x") || trimmed.startsWith("0X")){ LOG.finest("Parsing Hex value to BigInteger: " + value); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java index df322b1..4fdcc0a 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java @@ -37,7 +37,9 @@ public class BooleanConverter implements Converter<Boolean> { @Override public Boolean convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)", "0"); + if(context!=null) { + context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)", "0"); + } String ignoreCaseValue = Objects.requireNonNull(value) .trim() .toLowerCase(Locale.ENGLISH); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java index 7b72cc5..8d5c450 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java @@ -52,7 +52,9 @@ public class ByteConverter implements Converter<Byte> { @Override public Byte convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); + if(context!=null) { + context.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); + } String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java index 9fa4e69..1c3c678 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java @@ -43,7 +43,9 @@ public class CharConverter implements Converter<Character> { @Override public Character convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>"); + if(context!=null) { + context.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>"); + } String trimmed = Objects.requireNonNull(value).trim(); if(trimmed.isEmpty()){ return null; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java index c998065..40b17c9 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java @@ -44,7 +44,9 @@ public class ClassConverter implements Converter<Class<?>> { if(value==null){ return null; } - context.addSupportedFormats(getClass(),"<fullyQualifiedClassName>"); + if(context!=null) { + context.addSupportedFormats(getClass(),"<fullyQualifiedClassName>"); + } String trimmed = Objects.requireNonNull(value).trim(); try{ return Class.forName(trimmed, false, Thread.currentThread().getContextClassLoader()); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java index 502e05c..f2068ef 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java @@ -46,7 +46,9 @@ public class CurrencyConverter implements Converter<Currency> { @Override public Currency convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", "<locale>"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", "<locale>"); + } String trimmed = Objects.requireNonNull(value).trim(); try { return Currency.getInstance(trimmed.toUpperCase(Locale.ENGLISH)); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java index eb5b717..c3dc9b3 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java @@ -50,7 +50,9 @@ public class DoubleConverter implements Converter<Double> { @Override public Double convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); + } String trimmed = Objects.requireNonNull(value).trim(); switch (trimmed.toUpperCase(Locale.ENGLISH)) { case "POSITIVE_INFINITY": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java index eb05097..227deda 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java @@ -38,8 +38,10 @@ public class DurationConverter implements Converter<Duration> { @Override public Duration convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), - Duration.of(1234, ChronoUnit.SECONDS).toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), + Duration.of(1234, ChronoUnit.SECONDS).toString()); + } try { return Duration.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java index 38badd4..a9796f8 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java @@ -41,7 +41,9 @@ public class FileConverter implements Converter<File> { if(value==null || value.isEmpty()){ return null; } - context.addSupportedFormats(getClass(),"<File>"); + if(context!=null) { + context.addSupportedFormats(getClass(),"<File>"); + } String trimmed = Objects.requireNonNull(value).trim(); try { return new File(trimmed); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java index b66a8e1..3184a8e 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java @@ -50,7 +50,9 @@ public class FloatConverter implements Converter<Float> { @Override public Float convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); + } String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "POSITIVE_INFINITY": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java index b6d485f..04433b0 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java @@ -37,7 +37,9 @@ public class InstantConverter implements Converter<Instant> { @Override public Instant convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), Instant.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), Instant.now().toString()); + } try{ return Instant.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java index 5a62a23..6cd49e0 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java @@ -54,7 +54,9 @@ public class IntegerConverter implements Converter<Integer> { @Override public Integer convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); + } String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java index edfaa3a..d5ec019 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java @@ -37,7 +37,9 @@ public class LocalDateConverter implements Converter<LocalDate> { @Override public LocalDate convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), LocalDate.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), LocalDate.now().toString()); + } try{ return LocalDate.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java index 9450e30..3ea635a 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java @@ -37,7 +37,9 @@ public class LocalDateTimeConverter implements Converter<LocalDateTime> { @Override public LocalDateTime convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), LocalDateTime.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), LocalDateTime.now().toString()); + } try{ return LocalDateTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java index dde2214..129e5a0 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java @@ -37,7 +37,9 @@ public class LocalTimeConverter implements Converter<LocalTime> { @Override public LocalTime convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), LocalTime.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), LocalTime.now().toString()); + } try{ return LocalTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java index 8861c09..11b0a18 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java @@ -51,7 +51,9 @@ public class LongConverter implements Converter<Long> { @Override public Long convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); + } String trimmed = Objects.requireNonNull(value).trim(); switch (trimmed.toUpperCase(Locale.ENGLISH)) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java index 2f2893d..a1d41b1 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java @@ -47,8 +47,10 @@ public class NumberConverter implements Converter<Number> { @Override public Number convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY", - "NEGATIVE_INFINITY", "NAN"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY", + "NEGATIVE_INFINITY", "NAN"); + } String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java index 8b78814..3254155 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java @@ -37,7 +37,9 @@ public class OffsetDateTimeConverter implements Converter<OffsetDateTime> { @Override public OffsetDateTime convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), OffsetDateTime.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), OffsetDateTime.now().toString()); + } try{ return OffsetDateTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java index 8186ac0..62d1530 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java @@ -37,7 +37,9 @@ public class OffsetTimeConverter implements Converter<OffsetTime> { @Override public OffsetTime convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), OffsetTime.now().toString()); + if(context!=null) { + context.addSupportedFormats(getClass(), OffsetTime.now().toString()); + } try{ return OffsetTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java index 6bc9fc3..8d21f3d 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java @@ -42,7 +42,9 @@ public class PathConverter implements Converter<Path> { if(value==null || value.isEmpty()){ return null; } - context.addSupportedFormats(getClass(),"<File>"); + if(context!=null) { + context.addSupportedFormats(getClass(),"<File>"); + } String trimmed = Objects.requireNonNull(value).trim(); try { return FileSystems.getDefault().getPath(value); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java index 19c5f77..1735453 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java @@ -52,7 +52,9 @@ public class ShortConverter implements Converter<Short> { @Override public Short convert(String value) { ConversionContext context = ConversionContext.getContext(); - context.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); + if(context!=null) { + context.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); + } String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java index d63103a..97778bb 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java @@ -41,7 +41,9 @@ public class URIConverter implements Converter<URI> { if(value==null || value.isEmpty()){ return null; } - context.addSupportedFormats(getClass(), "<uri> -> new URI(uri)"); + if(context!=null) { + context.addSupportedFormats(getClass(), "<uri> -> new URI(uri)"); + } String trimmed = Objects.requireNonNull(value).trim(); try { return new URI(trimmed); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java index 27c69b1..d677b96 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java @@ -41,7 +41,9 @@ public class URLConverter implements Converter<URL> { if(value==null || value.isEmpty()){ return null; } - context.addSupportedFormats(getClass(),"<URL>"); + if(context!=null) { + context.addSupportedFormats(getClass(),"<URL>"); + } String trimmed = Objects.requireNonNull(value).trim(); try { return new URL(trimmed);
