/** {@inheritDoc} */ @Override public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException { for (int i = 0; i < getDataSourceResolvers().length; i++) { final DataSourceResolver dataSourceResolver = getDataSourceResolvers()[i]; final DataSource dataSource = dataSourceResolver.resolve(resourceLocation, isLenient); if (dataSource != null) { return dataSource; } } if (isLenient) { return null; } throw new IOException("The following resource was not found : " + resourceLocation); } }
/** {@inheritDoc} */ @Override public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException { for (int i = 0; i < getDataSourceResolvers().length; i++) { final DataSourceResolver dataSourceResolver = getDataSourceResolvers()[i]; final DataSource dataSource = dataSourceResolver.resolve(resourceLocation, isLenient); if (dataSource != null) { return dataSource; } } if (isLenient) { return null; } throw new IOException("The following resource was not found : " + resourceLocation); } }
@Test public void testExternalModification() throws Exception { final DataSourceCompositeResolver dataSourceResolver = new DataSourceCompositeResolver(dataSourceResolvers, true); final DataSourceResolver[] arr = dataSourceResolver.getDataSourceResolvers(); // modify an element in the returned array arr[0] = null; final DataSourceResolver[] arr2 = dataSourceResolver.getDataSourceResolvers(); // assert that the external modification is not propagated to the internal array assertNotNull(arr2[0]); }