Package spock.lang

Annotation Type AutoCleanup


  • @Target(FIELD)
    @Retention(RUNTIME)
    public @interface AutoCleanup
    Automatically cleans up the object stored in the annotated field or property at the end of its life time. More precisely, auto-cleanup of an object has the same effect as, and serves as a convenient replacement for, calling the object's close method at the end of the spec's cleanup method. @Shared objects are cleaned up at the end of the spec's cleanupSpec method.

    Customizing how cleanup is performed

    By default, an object is cleaned up by invoking its parameterless close() method (which is assumed to exist); visibility and return type of this method are irrelevant. If some other method should be called instead, override the annotation's value attribute:
     @AutoCleanup("dispose") // invoke the object's "dispose" method
     

    Cleaning up multiple objects

    If multiple fields or properties are annotated with @AutoCleanup, their objects are cleaned up sequentially in reverse field/property declaration order, starting from the most derived class and walking up the inheritance chain.

    Handling of exceptions during cleanup

    If a cleanup operation fails with an exception, the exception is reported (just as if it had occurred in a cleanup or cleanupSpec method) and cleanup proceeds with the next annotated object. To prevent cleanup exceptions from being reported, override the annotation's quiet attribute:
     @AutoCleanup(quiet = true) // don't report exceptions
     
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean quiet  
      String value  
    • Element Detail

      • value

        String value
        Default:
        "close"
      • quiet

        boolean quiet
        Default:
        false