J'ai écrit la méthode suivante en tant que gestionnaire onClick. Premier et deuxième clic, j'ai obtenu le résultat de DB. Par la troisième fois, le code s'est arrêté dans la ligne "getFeatures (trgtFilter)" et n'est pas revenu. En mode débogage, j'ai vu qu'il attend une connexion DB. Quelqu'un peut-il me dire ce que j'ai mal fait? J'utilise GeoTools 15 et Oracle 12.GeoTools getFeatures prend une éternité
private Geometry getNewGeometry(String refID) throws Exception {
if (trgLayer != null) {
Connection con = null;
OracleConnection oraCon=null;
FeatureIterator<SimpleFeature> itr = null;
try {
con = ((JDBCDataStore) srcLayer.getFeatureSource().getDataStore()).getConnection(Transaction.AUTO_COMMIT);
oraCon = (OracleConnection) new DelegatingConnection(con).getInnermostDelegate();
Filter trgtFilter = editTask.getConfiguration().getReferenceFilter(trgLayer, refID);
FeatureCollection fc = trgLayer.getFeatureSource().getFeatures(trgtFilter);
itr = fc.features();
if (!itr.hasNext())
return null;
...
} catch (Exception e) {
throw e;
} finally {
if (itr != null)
itr.close();
if (oraCon != null) {
try {
oraCon.close();
if (con != null && !con.isClosed())
con.close();
} catch (SQLException e) {
LOGGER.error("", e);
}
}
}
}
}