java: add close() method to avoid some unknown crash caused by finallize() on Ubuntu 14.04. FIXME
diff --git a/bindings/java/Test.java b/bindings/java/Test.java
index b1950ec..768ac74 100644
--- a/bindings/java/Test.java
+++ b/bindings/java/Test.java
@@ -170,6 +170,9 @@
               all_insn[i].mnemonic, all_insn[i].opStr));
       }
       System.out.printf("0x%x:\n\n", all_insn[all_insn.length-1].address + all_insn[all_insn.length-1].size);
+
+      // Close when done
+      cs.close();
     }
   }
 }
diff --git a/bindings/java/TestArm.java b/bindings/java/TestArm.java
index dc53d50..5be7028 100644
--- a/bindings/java/TestArm.java
+++ b/bindings/java/TestArm.java
@@ -131,6 +131,9 @@
         System.out.println();
       }
       System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size));
+
+      // Close when done
+	  cs.close();
     }
   }
 
diff --git a/bindings/java/TestArm64.java b/bindings/java/TestArm64.java
index be9eb87..acc72f5 100644
--- a/bindings/java/TestArm64.java
+++ b/bindings/java/TestArm64.java
@@ -117,6 +117,9 @@
       }
 
       System.out.printf("0x%x: \n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size);
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestMips.java b/bindings/java/TestMips.java
index bb76258..9df8326 100644
--- a/bindings/java/TestMips.java
+++ b/bindings/java/TestMips.java
@@ -82,6 +82,9 @@
       }
 
       System.out.printf("0x%x:\n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size);
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestPpc.java b/bindings/java/TestPpc.java
index 2bec2dc..88ae3f2 100644
--- a/bindings/java/TestPpc.java
+++ b/bindings/java/TestPpc.java
@@ -87,6 +87,9 @@
         System.out.println();
       }
       System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size));
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestSparc.java b/bindings/java/TestSparc.java
index 059f557..8b53000 100644
--- a/bindings/java/TestSparc.java
+++ b/bindings/java/TestSparc.java
@@ -88,6 +88,9 @@
         System.out.println();
       }
       System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size));
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestSystemz.java b/bindings/java/TestSystemz.java
index ccadc68..209c3e7 100644
--- a/bindings/java/TestSystemz.java
+++ b/bindings/java/TestSystemz.java
@@ -87,6 +87,9 @@
         System.out.println();
       }
       System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size));
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestX86.java b/bindings/java/TestX86.java
index 15ff819..d9480ef 100644
--- a/bindings/java/TestX86.java
+++ b/bindings/java/TestX86.java
@@ -163,6 +163,9 @@
       }
 
       System.out.printf("0x%x:\n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size);
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/TestXcore.java b/bindings/java/TestXcore.java
index e736bb2..b5b53c1 100644
--- a/bindings/java/TestXcore.java
+++ b/bindings/java/TestXcore.java
@@ -80,6 +80,9 @@
         System.out.println();
       }
       System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size));
+
+      // Close when done
+      cs.close();
     }
   }
 
diff --git a/bindings/java/capstone/Capstone.java b/bindings/java/capstone/Capstone.java
index 26b5f43..8493143 100644
--- a/bindings/java/capstone/Capstone.java
+++ b/bindings/java/capstone/Capstone.java
@@ -419,7 +419,13 @@
 
   // destructor automatically caled at destroyed time.
   protected void finalize() {
-    cs.cs_close(ns.handleRef);
+    // FIXME: crashed on Ubuntu 14.04 64bit, OpenJDK java 1.6.0_33
+    // cs.cs_close(ns.handleRef);
+  }
+
+  // destructor automatically caled at destroyed time.
+  public int close() {
+    return cs.cs_close(ns.handleRef);
   }
 
   // disassemble until either no more code, or encounter broken insn.