如何抑制FindBugs警告(对绝对路径名的硬编码引用)



我只是测试一些东西的开源软件Geonetwork,现在我想从我的postGIS数据库导出一个形状文件到我的电脑,但我不能测试它,因为我总是得到一个findbugs警告:在org.fao.geonet.services.resources.Download中对绝对路径名的硬编码引用。exec(元素,ServiceContext)

有人知道如何抑制或避免这个警告吗?或者另一种解决方案,如何测试导出是否有效?

代码如下:

  ` Map parameter1= new HashMap();
    parameter1.put("dbtype", "postgis");        
    parameter1.put("host", "localhost");        
    parameter1.put("port", "5433");  
    parameter1.put("database", "geonetwork");
    parameter1.put("schema", "mydata");
    parameter1.put("user", "postgres");        
    parameter1.put("passwd", "dominik1");
    parameter1.put("Expose primary keys", false);
    parameter1.put(PostgisNGDataStoreFactory.VALIDATECONN, true);
    parameter1.put(PostgisNGDataStoreFactory.MAX_OPEN_PREPARED_STATEMENTS, 100);
    parameter1.put(PostgisNGDataStoreFactory.LOOSEBBOX, true);
    parameter1.put(PostgisNGDataStoreFactory.PREPARED_STATEMENTS, true); 
    System.out.println("parameter1: " + parameter1);
    DataStore pds = new PostgisNGDataStoreFactory().createDataStore(parameter1);
    FeatureSource fs = pds.getFeatureSource("dano");
    SimpleFeatureCollection fc = (SimpleFeatureCollection) fs.getFeatures();
    SimpleFeature f = (SimpleFeature) fc.toArray()[0];
    // create shapefile
    File sfile = new File("C:/Users/Tinis/Downloads/dano.zip");            
    parameter1 = new HashMap();
    parameter1.put("url", sfile.toURI().toURL());
    parameter1.put("create spatial index", Boolean.FALSE);

    DirectoryDataStore dds = new DirectoryDataStore(new File(sfile.getAbsolutePath()), (FileStoreFactory) new ShapefileDataStoreFactory.ShpFileStoreFactory(new ShapefileDataStoreFactory(), parameter1));    
    dds.createSchema(fc.getSchema());
    String typeName = dds.getTypeNames()[0];
    SimpleFeatureSource featureSource = dds.getFeatureSource(typeName);
    SimpleFeatureStore featureStore = (SimpleFeatureStore) featureSource;
    // write data to shapefile
    Transaction t = new DefaultTransaction("addTransaction");
    featureStore.setTransaction(t);
    featureStore.addFeatures(fc);
    t.commit();
    t.close(); `

给出findbugs警告的那行就在//create shapefile注释

之后我希望有人能帮我解决这个问题。谢谢你!

制作xxx。带有条目的属性文件(ResourceBundle):

danoZip = C:/Users/Tinis/Downloads/dano.zip

并且是间接的:

ResourceBundle bundle = ResourceBundle.getBundle("xxx");
String danoZipPath = bundle.getString("danoZip");
File sfile = new File(danoZipPath);            

通过这种方式,您可以将硬编码文件的配置放入可配置的属性文件中

您可以使用一个过滤器文件来描述要忽略的bug。

http://findbugs.sourceforge.net/manual/filter.html

最新更新