int index = (Integer) key;
int length = Array.getLength(array);
if (length <= index) {
Object newArray = copyOf(array, index, length);
OgnlContext ctx = (OgnlContext) context;
if (array == ctx.getRoot()) {
ctx.setRoot(newArray);
} else {
String fieldName = ctx.getCurrentEvaluation().getPrevious().getNode().toString();
Object origin = ctx.getCurrentEvaluation().getPrevious().getSource();
Method setter = ReflectionBasedNullHandler.findMethod(origin.getClass(),
"set" + Info.capitalize(fieldName), origin.getClass(), null);
EmptyElementsRemoval removal = (EmptyElementsRemoval) context.get("removal");
removal.add(newArray, setter, origin);