diff --git a/build.gradle b/build.gradle index e2ae0170..bb3aba05 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { } group 'io.tiledb' -version '0.19.3-SNAPSHOT' +version '0.19.4-SNAPSHOT' repositories { jcenter() diff --git a/src/main/java/io/tiledb/java/api/Context.java b/src/main/java/io/tiledb/java/api/Context.java index 7d3ab103..a66910fc 100644 --- a/src/main/java/io/tiledb/java/api/Context.java +++ b/src/main/java/io/tiledb/java/api/Context.java @@ -59,6 +59,7 @@ public class Context implements AutoCloseable { private SWIGTYPE_p_p_tiledb_ctx_t ctxpp; private SWIGTYPE_p_tiledb_ctx_t ctxp; private ContextCallback errorHandler; + private Config config; /** * Constructor. Creates a TileDB Context with default configuration. @@ -181,6 +182,7 @@ private void createContext(Config config) throws TileDBError { tiledb.delete_tiledb_ctx_tpp(_ctxpp); throw new TileDBError("[TileDB::JavaAPI] Error: Failed to create context"); } + this.config = config; this.ctxpp = _ctxpp; this.ctxp = tiledb.tiledb_ctx_tpp_value(_ctxpp); this.errorHandler = new ContextCallback(); @@ -258,8 +260,8 @@ public String getStats() throws TileDBError { /** * Close the context and delete all native objects. Should be called always to cleanup the context */ - public void close() throws TileDBError { - this.getConfig().close(); + public void close() { + config.close(); if (ctxp != null) { tiledb.tiledb_ctx_free(ctxpp); tiledb.delete_tiledb_ctx_tpp(ctxpp); diff --git a/src/main/java/io/tiledb/java/api/Domain.java b/src/main/java/io/tiledb/java/api/Domain.java index 09e62c32..a7ba3f6f 100644 --- a/src/main/java/io/tiledb/java/api/Domain.java +++ b/src/main/java/io/tiledb/java/api/Domain.java @@ -297,6 +297,8 @@ public void close() { if (domainp != null) { tiledb.tiledb_domain_free(domainpp); tiledb.delete_tiledb_domain_tpp(domainpp); + domainpp = null; + domainp = null; } } }