private void convertTypeTest(String convertType, Class resultClass) throws Throwable { JdbcDataSource dataSource = new JdbcDataSource(); Properties p = new Properties(); p.put("driver", "org.apache.derby.jdbc.EmbeddedDriver"); p.put("url", "jdbc:derby:memory:tempDB;create=true;territory=en_US"); p.put("convertType", convertType); List<Map<String, String>> flds = new ArrayList<>(); Map<String, String> f = new HashMap<>(); f.put("column", "some_i"); f.put("type", "long"); flds.add(f); Context c = getContext(null, null, dataSource, Context.FULL_DUMP, flds, null); dataSource.init(c, p); Iterator<Map<String, Object>> i = dataSource.getData( "select 1 as id, CAST(9999 AS DECIMAL) as \"some_i\" from sysibm.sysdummy1"); assertTrue(i.hasNext()); Map<String, Object> map = i.next(); Object val = map.get("some_i"); assertEquals(resultClass, val.getClass()); dataSource.close(); }
@Override protected void finalize() throws Throwable { try { if (!isClosed) { LOG.error( "JdbcDataSource was not closed prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!!"); close(); } } finally { super.finalize(); } }