DatabaseUtils.getDataSource() tries to look up a service with name 'dataSource' and type BasicDataSource. But the tomcat-dbcp BasicDataSource is not a descendant of
org.apache.commons.dbcp2.BasicDataSource so it doesn't match. SpringServiceManager.getServiceByName() returns null, DSpaceServicemanager passes the null up, and DatabaseUtils.updateDatabase() then chokes when it tries to dereference the return from getDataSource().
We could ask for type Object.class, which should match anything.
We could just autowire the datasource into DatabaseUtils instead of asking the ServiceManager. We would need to make DatabaseUtils into a bean so that it can be wired with the datasource bean.
In any case, updateDatabase should defend against a null pool reference.