@Override public void close() { rs.close(); }
/** * Returns all members of the given {@link FeatureInputStream} as a {@link FeatureCollection}. * <p> * NOTE: This method should not be called for very large result sets, as it introduces the overhead of keeping all * created feature instances in memory. The returned collection will contain all {@link Feature}s instances from the * current position in the iteration sequence. * </p> * * @return members as feature collection, never <code>null</code> */ public static FeatureCollection toCollection( FeatureInputStream is ) { List<Feature> members = new ArrayList<Feature>(); for ( Feature feature : is ) { members.add( feature ); } is.close(); return new GenericFeatureCollection( null, members ); }
currentResultSet.close(); currentResultSet = resultSetIter.next(); featureIter = currentResultSet.iterator();
@Override public void render( RenderContext context ) throws InterruptedException { FeatureInputStream features = null; try { // TODO Should this always be done on this level? What about queueSize value? features = featureStore.query( queries.toArray( new Query[queries.size()] ) ); features = new ThreadedFeatureInputStream( features, 100 ); FeatureStreamRenderer renderer = new FeatureStreamRenderer( context, maxFeatures, evaluator ); renderer.renderFeatureStream( features, style ); } catch ( InterruptedException e ) { throw e; } catch ( FilterEvaluationException e ) { LOG.warn( "A filter could not be evaluated. The error was '{}'.", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } catch ( Throwable e ) { LOG.warn( "Data could not be fetched from the feature store. The error was '{}'.", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } finally { if ( features != null ) { features.close(); } } }
featureInputStream.close();
private static FeatureCollection clearDuplicates( FeatureInputStream rs ) { FeatureCollection col = null; try { col = new GenericFeatureCollection(); for ( Feature f : rs ) { if ( !col.contains( f ) ) { col.add( f ); } } } finally { rs.close(); } return col; }
} finally { if ( features != null ) { features.close();
private IdFilter getIdFilter( QName ftName, OperatorFilter filter ) throws FeatureStoreException { Set<String> ids = new HashSet<String>(); Query query = new Query( ftName, filter, -1, -1, -1 ); FeatureInputStream rs = null; try { rs = fs.query( query ); for ( Feature feature : rs ) { ids.add( feature.getId() ); } } catch ( FilterEvaluationException e ) { throw new FeatureStoreException( e ); } finally { if ( rs != null ) { rs.close(); } } return new IdFilter( ids ); }
private GMLObject getObjectByIdRelational( String id ) throws FeatureStoreException { GMLObject result = null; IdAnalysis idAnalysis = getSchema().analyzeId( id ); if ( !idAnalysis.isFid() ) { String msg = "Fetching of geometries by id (relational mode) is not implemented yet."; throw new UnsupportedOperationException( msg ); } FeatureInputStream rs = queryByIdFilterRelational( null, new IdFilter( id ), null ); try { Iterator<Feature> iter = rs.iterator(); if ( iter.hasNext() ) { result = iter.next(); } } finally { rs.close(); } return result; }
} finally { LOG.debug( "Closing FeatureResultSet (cached)" ); rs.close();
rs.close(); } catch ( Throwable e ) {