Back to Error Prone

MustBeClosedChecker

docs/bugpattern/MustBeClosedChecker.md

2.49.0682 B
Original Source

Methods or constructors annotated with @MustBeClosed require that the returned resource is closed. This is enforced by checking that invocations occur within the resource variable initializer of a try-with-resources statement:

java
try (AutoCloseable resource = createTheResource()) {
  doSomething(resource);
}

or the return statement of another method annotated with @MustBeClosed:

java
@MustBeClosed
AutoCloseable createMyResource() {
  return createTheResource();
}

To support legacy code, the following pattern is also supported:

java
AutoCloseable resource = createTheResource();
try {
  doSomething(resource);
} finally {
  resource.close();
}