Skip to content

Commit 7573762

Browse files
authored
[JAVA_API] Replace deprecated .finalize() method usage in Wrapper (#1007)
Resolve these warnings: ``` openvino_contrib/modules/java_api/src/main/java/org/intel/openvino/Wrapper.java:27: warning: [removal] finalize() in Object has been deprecated and marked for removal protected void finalize() throws Throwable { ^ openvino_contrib/modules/java_api/src/main/java/org/intel/openvino/Wrapper.java:29: warning: [removal] finalize() in Object has been deprecated and marked for removal super.finalize(); ^ 2 warnings ```
1 parent c789481 commit 7573762

File tree

1 file changed

+7
-4
lines changed
  • modules/java_api/src/main/java/org/intel/openvino

1 file changed

+7
-4
lines changed

modules/java_api/src/main/java/org/intel/openvino/Wrapper.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33

44
package org.intel.openvino;
55

6-
public class Wrapper {
6+
import java.util.concurrent.atomic.AtomicBoolean;
77

8+
public class Wrapper implements AutoCloseable {
89
static {
910
try {
1011
Class.forName("org.intel.openvino.NativeLibrary");
@@ -14,6 +15,7 @@ public class Wrapper {
1415
}
1516

1617
protected final long nativeObj;
18+
private final AtomicBoolean closed = new AtomicBoolean(false);
1719

1820
protected Wrapper(long addr) {
1921
nativeObj = addr;
@@ -24,9 +26,10 @@ protected long getNativeObjAddr() {
2426
}
2527

2628
@Override
27-
protected void finalize() throws Throwable {
28-
delete(nativeObj);
29-
super.finalize();
29+
public void close() {
30+
if (!closed.compareAndSet(false, true)) {
31+
delete(nativeObj);
32+
}
3033
}
3134

3235
/*----------------------------------- native methods -----------------------------------*/

0 commit comments

Comments
 (0)