Sto leggendo gli attributi da uno shapefile usando geotools 10.1. Non capisco perché genera un'eccezione dopo aver stampato l'attributo di tutte le funzioni.Perché questo codice come leggere uno shapefile utilizzando geotools genera questa eccezione?
Questo è il codice di esempio:
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFinder;
import org.geotools.data.FeatureSource;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.opengis.feature.simple.SimpleFeature;
public class LayerBusinessTest {
public static void main(String[] args) throws IOException {
File file = new File("../../setup/test/shp/sscc/SSCC2010_WGS84.shp");
Map<String, Serializable> map = new HashMap<>();
map.put("url", file.toURI().toURL());
DataStore dataStore = DataStoreFinder.getDataStore(map);
String typeName = dataStore.getTypeNames()[0];
FeatureSource source = dataStore.getFeatureSource(typeName);
FeatureCollection collection = source.getFeatures();
FeatureIterator<SimpleFeature> results = collection.features();
try {
while (results.hasNext()) {
SimpleFeature feature = (SimpleFeature) results.next();
String code = feature.getAttribute("Codigo_SSC").toString();
System.out.println(code);
}
} finally {
results.close();
}
}
}
Eccezione:
Exception in thread "main" java.lang.IllegalArgumentException: Expected requestor [email protected] to have locked the url but it does not hold the lock for the URL
at org.geotools.data.shapefile.files.ShpFiles.unlockRead(ShpFiles.java:429)
at org.geotools.data.shapefile.files.FileChannelDecorator.implCloseChannel(FileChannelDecorator.java:149)
at java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115)
at org.geotools.data.shapefile.dbf.DbaseFileReader.close(DbaseFileReader.java:279)
at org.geotools.data.shapefile.ShapefileFeatureReader.close(ShapefileFeatureReader.java:248)
at org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.close(ContentFeatureCollection.java:154)
at LayerBusinessTest.main(LayerBusinessTest.java:39)
Sto ricevendo lo stesso errore. come si risolve? ' – shorif2000
@sharif Leggi risposta contrassegnata come corretta. – angelcervera