This is related to issue# BEANUTILS-278
Digester uses 3 classes (ArrayStack, Buffer and BufferUnderflowException) from commons BeanUtils which were copied from Commons Collections and BEANUTILS-278 proposes removing them.
Remove copied Collections classes
Fixed in trunk in r729242:
This is a breaking change, hence scheduled for v2.0. However, the positives seem to make the breakage worthwhile (making [digester] free of [collections] classes and allowing usage of generics for code clarity).
Moving to fix version v2.0, where we can fix this by using Stack instead and thus eliminating collections classes dependencies altogether.
But a "tighter" ArrayStack wouldn't work (given fix version is 1.8.1). In the longer run, I agree, we should wean [digester] off of the [collections] version of ArrayStack (doing what you suggest or just using java.util.Stack or some such so we will have one less class to maintain).
Note, it only directly depends on ArrayStack. Buffer and BufferUnderflowException are depended on via ArrayStack.
A tighter ArrayStack could definitely be made (remove the unnecessary bits) and used within Digester.