43.6 SPTerm and Memory

Java and Prolog have quite different memory management policies. In Java, memory is reclaimed when the garbage collector can determine that no code will ever use the object occupying the memory. In Prolog, the garbage collector additionally reclaims memory upon failure (such as the failure implied in the use of SPQuery.close() and SPQuery::nextSolution()). This mismatch in the notion of memory lifetime can occasionally cause problems.