You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/07/14 08:00:56 UTC
[cayenne] 01/03: Some more warnings cleanup
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 1debe62f23a29027c9de55c4cdcce4b9b7661dec
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Wed Jul 13 18:10:08 2022 +0300
Some more warnings cleanup
---
.../java/org/apache/cayenne/reflect/Converter.java | 4 +-
.../apache/cayenne/reflect/ConverterFactory.java | 310 +++++++++------------
.../org/apache/cayenne/reflect/EnumConverter.java | 4 +-
.../org/apache/cayenne/reflect/ToAnyConverter.java | 11 +-
.../cayenne/access/types/MockExtendedType.java | 4 +-
.../server/JNDIDataSourceFactoryIT.java | 1 +
.../reflect/LifecycleCallbackEventHandlerTest.java | 2 +-
.../apache/cayenne/reflect/PropertyUtilsTest.java | 29 +-
.../template/directive/BindDirectiveIT.java | 2 +-
.../java/org/apache/cayenne/unit/util/TstBean.java | 4 +-
.../apache/cayenne/velocity/ResultDirective.java | 5 +-
.../apache/cayenne/modeler/ProjectTreeView.java | 4 +-
.../modeler/action/ImportEOModelAction.java | 3 +-
13 files changed, 166 insertions(+), 217 deletions(-)
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/Converter.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/Converter.java
index 567b5d448..687c8b9e1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/Converter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/Converter.java
@@ -24,7 +24,7 @@ package org.apache.cayenne.reflect;
*
* @since 1.2
*/
-public abstract class Converter<T> {
+public interface Converter<T> {
/**
* Converts object to supported class without doing any type checking.
@@ -35,5 +35,5 @@ public abstract class Converter<T> {
* @return
* an object of type @code{type}. If the conversion fails an exception will be thrown. If value is null then the result will be null.
*/
- protected abstract T convert(Object value, Class<T> type);
+ T convert(Object value, Class<T> type);
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
index 248dcd765..03894217a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
@@ -36,222 +36,173 @@ public class ConverterFactory {
static final ConverterFactory factory = new ConverterFactory();
- private Map<Class<?>, Converter<?>> converters;
- private EnumConverter enumConveter = new EnumConverter();
- private Converter<Object> toAnyConverter = new ToAnyConverter<Object>();
-
+ private final Map<Class<?>, Converter<?>> converters;
+ private final EnumConverter<?> enumConverter = new EnumConverter<>();
+ private final Converter<Object> toAnyConverter = new ToAnyConverter<>();
+
+ // TODO: this methods uses deprecated Date.parse method that has no direct replacement,
+ // we need to determine date formats we should support and update code accordingly
+ @SuppressWarnings("deprecation")
private ConverterFactory() {
- Converter<String> toStringConverter = new Converter<String>() {
+ Converter<String> toStringConverter = (object, type) -> object != null ? object.toString() : null;
- @Override
- protected String convert(Object object, Class<String> type) {
- return object != null ? object.toString() : null;
+ Converter<Boolean> toBooleanConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? Boolean.FALSE : null;
}
- };
-
- Converter<Boolean> toBooleanConverter = new Converter<Boolean>() {
-
- @Override
- protected Boolean convert(Object object, Class<Boolean> type) {
- if (object == null) {
- return type.isPrimitive() ? Boolean.FALSE : null;
- }
- if (object instanceof Boolean) {
- return (Boolean)object;
- } else if (object instanceof Integer || object instanceof Long || object instanceof Short || object instanceof Byte) {
- if (((Number)object).longValue() == 0) {
- return Boolean.FALSE;
- } else if (((Number)object).longValue() == 1) {
- return Boolean.TRUE;
- }
+ if (object instanceof Boolean) {
+ return (Boolean) object;
+ } else if (object instanceof Integer || object instanceof Long || object instanceof Short || object instanceof Byte) {
+ if (((Number) object).longValue() == 0) {
+ return Boolean.FALSE;
+ } else if (((Number) object).longValue() == 1) {
+ return Boolean.TRUE;
}
-
- return "true".equalsIgnoreCase(object.toString())
- ? Boolean.TRUE
- : Boolean.FALSE;
}
- };
-
- Converter<Long> toLongConverter = new Converter<Long>() {
-
- @Override
- protected Long convert(Object object, Class<Long> type) {
- if (object == null) {
- return type.isPrimitive() ? Long.valueOf(0) : null;
- }
-
- if (object instanceof Long) {
- return (Long)object;
- }
- return Long.valueOf(object.toString());
- }
+ return "true".equalsIgnoreCase(object.toString())
+ ? Boolean.TRUE
+ : Boolean.FALSE;
};
-
- Converter<Integer> toIntConverter = new Converter<Integer>() {
-
- @Override
- protected Integer convert(Object object, Class<Integer> type) {
- if (object == null) {
- return type.isPrimitive() ? 0 : null;
- }
-
- if (object instanceof Integer) {
- return (Integer)object;
- }
- return Integer.valueOf(object.toString());
+ Converter<Long> toLongConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? 0L : null;
}
- };
- Converter<Byte> toByteConverter = new Converter<Byte>() {
+ if (object instanceof Long) {
+ return (Long) object;
+ }
- @Override
- protected Byte convert(Object object, Class<Byte> type) {
- if (object == null) {
- return type.isPrimitive() ? (byte) 0 : null;
- }
+ return Long.valueOf(object.toString());
+ };
- if (object instanceof Byte) {
- return (Byte)object;
- }
+ Converter<Integer> toIntConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? 0 : null;
+ }
- return Byte.valueOf(object.toString());
+ if (object instanceof Integer) {
+ return (Integer) object;
}
+
+ return Integer.valueOf(object.toString());
};
- Converter<Short> toShortConverter = new Converter<Short>() {
+ Converter<Byte> toByteConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? (byte) 0 : null;
+ }
- @Override
- protected Short convert(Object object, Class<Short> type) {
- if (object == null) {
- return type.isPrimitive() ? (short) 0 : null;
- }
+ if (object instanceof Byte) {
+ return (Byte) object;
+ }
- if (object instanceof Short) {
- return (Short)object;
- }
+ return Byte.valueOf(object.toString());
+ };
- return Short.valueOf(object.toString());
+ Converter<Short> toShortConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? (short) 0 : null;
}
- };
- Converter<Character> toCharConverter = new Converter<Character>() {
+ if (object instanceof Short) {
+ return (Short) object;
+ }
- @Override
- protected Character convert(Object object, Class<Character> type) {
- if (object == null) {
- return type.isPrimitive() ? (char) 0 : null;
- }
+ return Short.valueOf(object.toString());
+ };
- if (object instanceof Character) {
- return (Character)object;
- }
+ Converter<Character> toCharConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? (char) 0 : null;
+ }
- String string = object.toString();
- return Character.valueOf(string.length() > 0 ? string.charAt(0) : 0);
+ if (object instanceof Character) {
+ return (Character) object;
}
+
+ String string = object.toString();
+ return string.length() > 0 ? string.charAt(0) : 0;
};
- Converter<Double> toDoubleConverter = new Converter<Double>() {
+ Converter<Double> toDoubleConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? 0.0d : null;
+ }
- @Override
- protected Double convert(Object object, Class<Double> type) {
- if (object == null) {
- return type.isPrimitive() ? 0.0d : null;
- }
+ if (object instanceof Double) {
+ return (Double) object;
+ }
- if (object instanceof Double) {
- return (Double)object;
- }
+ return Double.valueOf(object.toString());
+ };
- return Double.valueOf(object.toString());
+ Converter<Float> toFloatConverter = (object, type) -> {
+ if (object == null) {
+ return type.isPrimitive() ? 0.0f : null;
}
- };
- Converter<Float> toFloatConverter = new Converter<Float>() {
+ if (object instanceof Float) {
+ return (Float) object;
+ }
- @Override
- protected Float convert(Object object, Class<Float> type) {
- if (object == null) {
- return type.isPrimitive() ? 0.0f : null;
- }
+ return Float.valueOf(object.toString());
+ };
- if (object instanceof Float) {
- return (Float)object;
- }
+ Converter<BigDecimal> toBigDecimalConverter = (object, type) -> {
+ if (object == null) {
+ return null;
+ }
- return Float.valueOf(object.toString());
+ if (object instanceof BigDecimal) {
+ return (BigDecimal) object;
}
+
+ return new BigDecimal(object.toString());
};
- Converter<BigDecimal> toBigDecimalConverter = new Converter<BigDecimal>() {
+ Converter<BigInteger> toBigIntegerConverter = (object, type) -> {
+ if (object == null) {
+ return null;
+ }
- @Override
- protected BigDecimal convert(Object object, Class<BigDecimal> type) {
- if (object == null) {
- return null;
- }
+ if (object instanceof BigInteger) {
+ return (BigInteger) object;
+ }
- if (object instanceof BigDecimal) {
- return (BigDecimal)object;
- }
+ return new BigInteger(object.toString());
+ };
- return new BigDecimal(object.toString());
+ Converter<Date> toDateConverter = (value, type) -> {
+ if (value == null) {
+ return null;
}
+ if (value instanceof Date) {
+ return (Date) value;
+ }
+ if (value instanceof Number) {
+ return new Date(((Number) value).longValue());
+ }
+ return new Date(value.toString());
};
- Converter<BigInteger> toBigIntegerConverter = new Converter<BigInteger>() {
-
- @Override
- protected BigInteger convert(Object object, Class<BigInteger> type) {
- if (object == null) {
- return null;
- }
-
- if (object instanceof BigInteger) {
- return (BigInteger)object;
- }
-
- return new BigInteger(object.toString());
+ Converter<Timestamp> toTimestampConverter = (value, type) -> {
+ if (value == null) {
+ return null;
+ }
+ if (value instanceof Timestamp) {
+ return (Timestamp) value;
+ }
+ if (value instanceof Number) {
+ return new Timestamp(((Number) value).longValue());
}
+ return new Timestamp(Date.parse(value.toString()));
};
- Converter<Date> toDateConverter = new Converter<Date>() {
- @Override
- protected Date convert(Object value, Class<Date> type) {
- if (value == null) {
- return null;
- }
- if (value instanceof Date) {
- return (Date) value;
- }
- if (value instanceof Number){
- return new Date(((Number)value).longValue());
- }
- return new Date(value.toString());
- }
- };
-
- Converter<Timestamp> toTimestampConverter = new Converter<Timestamp>() {
- @Override
- protected Timestamp convert(Object value, Class<Timestamp> type) {
- if (value == null) {
- return null;
- }
- if (value instanceof Timestamp) {
- return (Timestamp) value;
- }
- if (value instanceof Number){
- return new Timestamp(((Number)value).longValue());
- }
- return new Timestamp(Date.parse(value.toString()));
- }
- };
-
- // TODO: byte[] converter...
+ // TODO: byte[] converter...
converters = new HashMap<>();
@@ -283,28 +234,27 @@ public class ConverterFactory {
_addConverter(BigInteger.class, toBigIntegerConverter);
_addConverter(Number.class, toBigDecimalConverter);
_addConverter(String.class, toStringConverter);
- _addConverter(Date.class, toDateConverter);
- _addConverter(Timestamp.class, toTimestampConverter);
+ _addConverter(Date.class, toDateConverter);
+ _addConverter(Timestamp.class, toTimestampConverter);
}
/**
* Converters are used by {@link PropertyUtils#setProperty(Object, String, Object)} to coerce
* generic Object values into the specific type expected by the named setter.
- *
- * @param type
- * the Class to convert a value to; the destination type
- * @param converter
- * a converter used to convert the value from Object to T
+ *
+ * @param type the Class to convert a value to; the destination type
+ * @param converter a converter used to convert the value from Object to T
* @since 4.0
*/
public static <T> void addConverter(Class<? super T> type, Converter<T> converter) {
- factory._addConverter(type, converter);
+ factory._addConverter(type, converter);
}
-
+
private <T> void _addConverter(Class<? super T> type, Converter<T> converter) {
- converters.put(type, converter);
+ converters.put(type, converter);
}
-
+
+ @SuppressWarnings("unchecked")
<T> Converter<T> getConverter(Class<T> type) {
if (type == null) {
throw new IllegalArgumentException("Null type");
@@ -312,10 +262,10 @@ public class ConverterFactory {
// check for enum BEFORE super call, as it will return a noop converter
if (type.isEnum()) {
- return enumConveter;
+ return (Converter<T>) enumConverter;
}
Converter<T> c = (Converter<T>) converters.get(type);
- return c != null ? c : (Converter<T>)toAnyConverter;
+ return c != null ? c : (Converter<T>) toAnyConverter;
}
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/EnumConverter.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/EnumConverter.java
index 1c7536090..ebb419451 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/EnumConverter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/EnumConverter.java
@@ -26,11 +26,11 @@ import org.apache.cayenne.util.Util;
/**
* @since 1.2
*/
-class EnumConverter<T extends Enum & ExtendedEnumeration> extends Converter<T> {
+class EnumConverter<T extends Enum<T> & ExtendedEnumeration> implements Converter<T> {
@Override
@SuppressWarnings("unchecked")
- protected T convert(Object object, Class<T> type) {
+ public T convert(Object object, Class<T> type) {
if (ExtendedEnumeration.class.isAssignableFrom(type)) {
ExtendedEnumeration[] values;
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
index b69a765ba..257e0d9d4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
@@ -26,9 +26,10 @@ import org.apache.cayenne.CayenneRuntimeException;
* Can convert to any class that has a constructor that takes a
* single Object or a single String parameter.
*/
-public class ToAnyConverter<T> extends Converter<T> {
- @Override
- protected T convert(Object value, Class<T> type) {
+public class ToAnyConverter<T> implements Converter<T> {
+ @SuppressWarnings("unchecked")
+ @Override
+ public T convert(Object value, Class<T> type) {
if (value == null) {
return null;
}
@@ -37,14 +38,14 @@ public class ToAnyConverter<T> extends Converter<T> {
}
try {
- Constructor<?> constructor;
+ Constructor<T> constructor;
try {
constructor = type.getConstructor(Object.class);
} catch (NoSuchMethodException e) {
constructor = type.getConstructor(String.class);
value = value.toString();
}
- return (T) constructor.newInstance(value);
+ return constructor.newInstance(value);
} catch (Exception e) {
throw new CayenneRuntimeException(e);
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/types/MockExtendedType.java b/cayenne-server/src/test/java/org/apache/cayenne/access/types/MockExtendedType.java
index 4fe6f30cb..3152ac104 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/types/MockExtendedType.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/types/MockExtendedType.java
@@ -51,13 +51,13 @@ public class MockExtendedType implements ExtendedType<Object> {
@Override
public Object materializeObject(ResultSet rs, int index, int type) throws Exception {
- return objectClass.newInstance();
+ return objectClass.getDeclaredConstructor().newInstance();
}
@Override
public Object materializeObject(CallableStatement rs, int index, int type)
throws Exception {
- return objectClass.newInstance();
+ return objectClass.getDeclaredConstructor().newInstance();
}
@Override
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
index 7642926c2..fb03f1634 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
@@ -34,6 +34,7 @@ import javax.naming.NameNotFoundException;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
+@Deprecated
@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
public class JNDIDataSourceFactoryIT extends ServerCase {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandlerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandlerTest.java
index ed0f25e92..39ff19c83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandlerTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandlerTest.java
@@ -158,7 +158,7 @@ public class LifecycleCallbackEventHandlerTest {
protected List callbackTimes = new ArrayList();
void callback(Object entity) {
- callbackTimes.add(new Long(System.currentTimeMillis()));
+ callbackTimes.add(System.currentTimeMillis());
try {
Thread.sleep(100);
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
index 75ee53f87..51a58683a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
@@ -281,24 +281,21 @@ public class PropertyUtilsTest {
Converter<Date> oldConverter = ConverterFactory.factory.getConverter(Date.class);
try {
- ConverterFactory.addConverter(Date.class, new Converter<>() {
- @Override
- protected Date convert(Object value, Class<Date> type) {
- if (value == null)
- return null;
- if (value instanceof Date) {
- return (Date) value;
- }
- if (value instanceof String) {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- try {
- return format.parse((String) value);
- } catch (ParseException e) {
- throw new CayenneRuntimeException("Unable to convert '" + value + "' to a Date", e);
- }
+ ConverterFactory.addConverter(Date.class, (value, type) -> {
+ if (value == null)
+ return null;
+ if (value instanceof Date) {
+ return (Date) value;
+ }
+ if (value instanceof String) {
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ return format.parse((String) value);
+ } catch (ParseException e) {
+ throw new CayenneRuntimeException("Unable to convert '" + value + "' to a Date", e);
}
- throw new CayenneRuntimeException("Unable to convert '" + value + "' to a Date");
}
+ throw new CayenneRuntimeException("Unable to convert '" + value + "' to a Date");
});
TstJavaBean o1 = new TstJavaBean();
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
index 9e618a035..6d9ef6452 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
@@ -137,7 +137,7 @@ public class BindDirectiveIT extends ServerCase {
// insert 3 artists
for (int i = 1; i < 4; i++) {
- tArtist.insert(new Long(i), "Artist" + i);
+ tArtist.insert((long) i, "Artist" + i);
}
// now select only with names: Artist1 and Artist3
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/util/TstBean.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/util/TstBean.java
index 2bb9615e0..da4d07687 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/util/TstBean.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/util/TstBean.java
@@ -56,11 +56,11 @@ public class TstBean {
public TstBean(String string, int intValue) {
this.string = string;
- this.integer = new Integer(intValue);
+ this.integer = intValue;
}
public TstBean(int intValue) {
- integer = new Integer(intValue);
+ integer = intValue;
}
public Integer getInteger() {
diff --git a/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/ResultDirective.java b/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/ResultDirective.java
index 8d80f347b..676459b29 100644
--- a/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/ResultDirective.java
+++ b/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/ResultDirective.java
@@ -192,8 +192,9 @@ public class ResultDirective extends Directive {
*/
protected void bindResult(InternalContextAdapter context, ColumnDescriptor columnDescriptor) {
- Collection<Object> resultColumns = (Collection<Object>) context.getInternalUserContext().get(
- VelocitySQLTemplateProcessor.RESULT_COLUMNS_LIST_KEY);
+ @SuppressWarnings("unchecked")
+ Collection<Object> resultColumns = (Collection<Object>) context
+ .getInternalUserContext().get(VelocitySQLTemplateProcessor.RESULT_COLUMNS_LIST_KEY);
if (resultColumns != null) {
resultColumns.add(columnDescriptor);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
index 00d3fdd05..d17490a98 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
@@ -976,7 +976,7 @@ public class ProjectTreeView extends JTree implements DomainDisplayListener,
return list.toArray();
}
- private void positionNode(Object[] path, Comparator comparator) {
+ private void positionNode(Object[] path, Comparator<ConfigurationNode> comparator) {
if (path == null) {
return;
}
@@ -992,7 +992,7 @@ public class ProjectTreeView extends JTree implements DomainDisplayListener,
private void positionNode(
MutableTreeNode parent,
DefaultMutableTreeNode treeNode,
- Comparator comparator) {
+ Comparator<ConfigurationNode> comparator) {
removeTreeSelectionListener(treeSelectionListener);
try {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
index 67c04f110..1df3949a0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
@@ -142,8 +142,7 @@ public class ImportEOModelAction extends CayenneAction {
Map connection = (Map) eomodelIndex.get("connectionDictionary");
if (adapter != null && connection != null) {
- CreateNodeAction nodeBuilder = (CreateNodeAction) getApplication().getActionManager().getAction(
- CreateNodeAction.class);
+ CreateNodeAction nodeBuilder = getApplication().getActionManager().getAction(CreateNodeAction.class);
// this should make created node current, resulting in the new map being added
// to the node automatically once it is loaded