UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

58 lines (46 loc) • 1.31 kB
# Resources Closed # Detects resources that should be closed (pre-Java 7 style) id: resources-closed name: Resources Should Be Closed severity: error category: reliability defect_class: correctness inline_tier: blocking language: java message: "Resource '{{RESOURCE}}' should be closed in finally block" description: | Resources like streams, connections, and files must be closed to prevent leaks. Use try-with-resources (Java 7+) or close() in finally block. ✅ FIX: Use try-with-resources ```java try (InputStream in = new FileInputStream(file)) { // GOOD // use stream } // auto-closed ``` query: | (local_variable_declaration type: (type_identifier) @TYPE (#match? @TYPE "^(InputStream|OutputStream|Connection|Statement|ResultSet|Socket|Reader|Writer)$") (variable_declarator name: (identifier) @RESOURCE) @DECL) metavars: - TYPE - RESOURCE - DECL post_filter: not_closed_or_try_with_resources tags: - reliability - java - leak - cert examples: bad: | InputStream in = new FileInputStream(file); // BAD - not closed // use stream // missing in.close() or try-with-resources good: | try (InputStream in = new FileInputStream(file)) { // GOOD // use stream } has_fix: true fix_action: wrap_try_with_resources