diff --git a/liquibase-core/src/main/java/liquibase/change/custom/CustomChangeWrapper.java b/liquibase-core/src/main/java/liquibase/change/custom/CustomChangeWrapper.java index 8692d8bf721..196ede8d865 100644 --- a/liquibase-core/src/main/java/liquibase/change/custom/CustomChangeWrapper.java +++ b/liquibase-core/src/main/java/liquibase/change/custom/CustomChangeWrapper.java @@ -305,7 +305,11 @@ public String getSerializedObjectNamespace() { public void load(ParsedNode parsedNode, ResourceAccessor resourceAccessor) throws ParsedNodeException { setClassLoader(resourceAccessor.toClassLoader()); try { - setClass(parsedNode.getChildValue(null, "class", String.class)); + String classNameValue = parsedNode.getChildValue(null, "class", String.class); + if (classNameValue == null) { + throw new ParsedNodeException("Custom change node has no 'class' attribute!"); + } + setClass(classNameValue); } catch (CustomChangeException e) { throw new ParsedNodeException(e); }