1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
package vtk.test;
import vtk.vtkDoubleArray;
import vtk.vtkJavaTesting;
import vtk.vtkObject;
import vtk.vtkQuadric;
import vtk.vtkSampleFunction;
/**
* This test should go on forever without crashing.
*/
public class JavaDelete {
public static void main(String[] args) {
try {
vtkJavaTesting.Initialize(args, true);
// Start working code
long timeout = System.currentTimeMillis() + 60000; // +1 minute
while (System.currentTimeMillis() < timeout) {
vtkDoubleArray arr = new vtkDoubleArray();
arr.Delete();
vtkQuadric quadric = new vtkQuadric();
vtkSampleFunction sample = new vtkSampleFunction();
sample.SetSampleDimensions(30, 30, 30);
sample.SetImplicitFunction(quadric);
sample.GetImplicitFunction();
sample.Delete();
quadric.Delete();
// Make sure the Java VTK object map is empty
if (vtkObject.JAVA_OBJECT_MANAGER.getSize() > 1) { // vtkTesting
System.out.println(vtkObject.JAVA_OBJECT_MANAGER.gc(true).listKeptReferenceToString());
throw new RuntimeException("There shouldn't have any VTK object inside the map as we are using Delete().");
}
}
vtkJavaTesting.Exit(vtkJavaTesting.PASSED);
} catch (Throwable e) {
e.printStackTrace();
vtkJavaTesting.Exit(vtkJavaTesting.FAILED);
}
}
}
|