From 2d2d9138fbe5c9c43f070be59a2d10f18fbf4c3b Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 23 十一月 2022 09:05:06 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/helper/GdbHelper.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/GdbHelper.java b/src/main/java/com/lf/server/helper/GdbHelper.java
index bfabbcd..48d1d14 100644
--- a/src/main/java/com/lf/server/helper/GdbHelper.java
+++ b/src/main/java/com/lf/server/helper/GdbHelper.java
@@ -35,11 +35,15 @@
         List<String> list = new ArrayList<>();
         try {
             org.gdal.ogr.Driver driver = ogr.GetDriverByName("OpenFileGDB");
-            if (driver == null) {
+            if (null == driver) {
                 return list;
             }
 
             DataSource dataSource = driver.Open(filePath, 0);
+            if (null == dataSource) {
+                return list;
+            }
+
             for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) {
                 Layer layer = dataSource.GetLayer(i);
                 list.add(layer.GetName());
@@ -47,6 +51,7 @@
                 layer.delete();
             }
 
+            dataSource.delete();
             driver.delete();
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
@@ -62,11 +67,15 @@
         List<T> list = new ArrayList<>();
         try {
             org.gdal.ogr.Driver driver = ogr.GetDriverByName("OpenFileGDB");
-            if (driver == null) {
+            if (null == driver) {
                 return list;
             }
 
             DataSource dataSource = driver.Open(filePath, 0);
+            if (null == dataSource) {
+                return list;
+            }
+
             for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) {
                 Layer layer = dataSource.GetLayer(i);
 
@@ -78,6 +87,7 @@
                 layer.delete();
             }
 
+            dataSource.delete();
             driver.delete();
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
@@ -96,6 +106,9 @@
             if (map.size() == 0) {
                 return;
             }
+            if (1 > layer.GetFeatureCount()) {
+                return;
+            }
 
             do {
                 Feature f = layer.GetNextFeature();

--
Gitblit v1.9.3