Commit Graph

9 Commits

Author SHA1 Message Date
Don Anderson
29aaec0c9f Null out closed handles in Java, and detect nulled handles on use. refs #485.
As reported in #485, when a conn/session is closed, any subordinate
open cursors and sessions have dangling handles that refer to freed
memory.  But also, if a conn/session/cursor handle is closed, that
handle may still be referenced in Java though it references freed
memory.

This commit uses the event handler for close calls to capture the first
case, and makes explicit calls at the close site for the second case.
For each case, a close will set the Java side 'swigCPtr' for each associated
object being closed to 0.

For detection, typemaps effectively check an arg's swigCPtr to see
if the object has been previously closed.  Special cases, like when
a NULL handle is permitted in the API, are accounted for.

Some details:
  - WT_HANDLE_NULLABLE() and WT_HANDLE_CLOSED() mark points in the API
    (wiredtiger.in) where handles may be used as null and where
    handles are closed.  This are not exposed to doxygen.
  - lang_private fields have been added to WT_CONNECTION_IMPL,
    WT_SESSION_IMPL and WT_CURSOR to keep a handle to the
    associated java object, needed at the time of the close().
2013-11-18 13:29:15 -05:00
Alex Gorrod
b87a9ef104 Add file I forgot. 2013-10-29 08:45:40 +11:00
Alex Gorrod
1625a33985 Add a test case for Java auto close feature. 2013-10-25 15:41:30 +11:00
Alex Gorrod
ed3d9ff846 Add a test case for Java cursor issue refs #493 2013-03-26 12:54:39 +11:00
Alex Gorrod
12ea0e5961 Fix copyright notices in Java source code. 2013-02-19 18:40:27 +11:00
Alex Gorrod
39150c640e Update Java Cursor API naming to reflect ByteArray semantics.
Also update documentation, to use Doxygen and @copydoc where possible.
Not yet tied into s_docs.
2013-02-19 17:06:41 +11:00
Alex Gorrod
52d37a140b Update Java cursors to use packing code. Also enhance JUnit usage. 2013-02-13 19:14:40 +11:00
Alex Gorrod
19fed99760 Update Java structure packing implementation.
Add a first JUnit test case, and associated autoconf files.
2013-02-12 21:00:49 +11:00
Alex Gorrod
12c649b0f4 Add a Java implementation of packed formats.
Also add a test case and update the layout of the Java build.
2013-02-08 14:15:19 +11:00