diff --git a/Examples/test-suite/director_basic.i b/Examples/test-suite/director_basic.i index dad178b97..a76f1ce4b 100644 --- a/Examples/test-suite/director_basic.i +++ b/Examples/test-suite/director_basic.i @@ -28,6 +28,15 @@ public: %} %feature("director"); +#ifdef SWIGJAVA +%typemap(directordisconnect_derived, methodname="disconnect_director") hi::A1 { + // Uncomment to see if the call actually happens (it does... :-) + // System.out.println("A1 Java object disconnecting from director."); + swigCMemOwn = false; + $jnicall; + } +#endif + // basic renaming %rename(rg) A::gg; %feature("nodirector") hi::A1::gg; diff --git a/Examples/test-suite/java/director_basic_runme.java b/Examples/test-suite/java/director_basic_runme.java index 6ff5005d9..e07d4e169 100644 --- a/Examples/test-suite/java/director_basic_runme.java +++ b/Examples/test-suite/java/director_basic_runme.java @@ -33,6 +33,11 @@ public class director_basic_runme { if (!b.pong().equals("Foo::pong();Foo::ping()")) { throw new RuntimeException ( "b.pong()" ); } + + /* Test A1's directordisconnect method rename */ + A1 a1 = new A1(1, false); + + a1.delete(); } }