فهرست منبع

Attempting to fix some possible memory leaks. Son't know if I'm actually
helping anything though.

gmcferrin 12 سال پیش
والد
کامیت
2b6b7b899e
2فایلهای تغییر یافته به همراه13 افزوده شده و 3 حذف شده
  1. 12 2
      src/main/java/com/gmail/nossr50/spout/SpoutStuff.java
  2. 1 1
      src/main/java/com/gmail/nossr50/util/Database.java

+ 12 - 2
src/main/java/com/gmail/nossr50/spout/SpoutStuff.java

@@ -48,6 +48,7 @@ public class SpoutStuff {
      * @param theFilePath The name of the file path
      */
     private static void writeFile(String theFileName, String theFilePath) {
+        InputStream is = null;
         OutputStream os = null;
         JarFile jar = null;
 
@@ -56,7 +57,7 @@ public class SpoutStuff {
 
             jar = new JarFile(mcMMO.mcmmo);
             JarEntry entry = jar.getJarEntry("resources/" + theFileName);
-            InputStream is = jar.getInputStream(entry);
+            is = jar.getInputStream(entry);
 
             byte[] buf = new byte[2048];
             int nbRead;
@@ -66,6 +67,8 @@ public class SpoutStuff {
             while ((nbRead = is.read(buf)) != -1) {
                 os.write(buf, 0, nbRead);
             }
+
+            os.flush();
         }
         catch (FileNotFoundException e) {
             e.printStackTrace();
@@ -74,9 +77,16 @@ public class SpoutStuff {
             e.printStackTrace();
         }
         finally {
+            if (is != null) {
+                try {
+                    is.close();
+                }
+                catch (IOException ex) {
+                    ex.printStackTrace();
+                }
+            }
             if (os != null) {
                 try {
-                    os.flush();
                     os.close();
                 }
                 catch (IOException ex) {

+ 1 - 1
src/main/java/com/gmail/nossr50/util/Database.java

@@ -155,7 +155,7 @@ public class Database {
 
         PreparedStatement statement = null;
         try {
-        	if(!checkConnected()) return;
+            if(!checkConnected()) return;
             statement = connection.prepareStatement(sql);
             resultSet = statement.executeQuery();