{"record":{"id":"fe68b8075ba0ca52","repo":"apache/maven","slug":"phase-interrupted","errorCode":null,"errorMessage":"Phase interrupted","messagePattern":"Phase interrupted","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"impl/maven-impl/src/main/java/org/apache/maven/impl/util/PhasingExecutor.java","lineNumber":122,"sourceCode":"        log(\"[{}][phase] Entering phase {}. Active tasks: {}\", phaseNumber, activeTaskCount.get());\n        return () -> {\n            try {\n                int tasksAtPhaseStart = completedTaskCount.get();\n                log(\"[{}][phase] Closing phase {}. Waiting for all tasks to complete.\", phaseNumber);\n                lock.lock();\n                try {\n                    while (activeTaskCount.get() > 0\n                            && completedTaskCount.get() - tasksAtPhaseStart < activeTaskCount.get()) {\n                        taskCompletionCondition.await(100, TimeUnit.MILLISECONDS);\n                    }\n                } finally {\n                    lock.unlock();\n                }\n                log(\"[{}][phase] Phase {} completed. Total completed tasks: {}\", phaseNumber, completedTaskCount.get());\n            } catch (InterruptedException e) {\n                log(\"[{}][phase] Phase {} was interrupted.\", phaseNumber);\n                Thread.currentThread().interrupt();\n                throw new RuntimeException(\"Phase interrupted\", e);\n            } finally {\n                inPhase.set(false);\n            }\n        };\n    }\n\n    @Override\n    public void close() {\n        log(\"[{}][close] Closing PhasingExecutor. Active tasks: {}\", activeTaskCount.get());\n        if (shutdownInitiated.getAndSet(true)) {\n            log(\"[{}][close] Shutdown already initiated. Returning.\");\n            return;\n        }\n\n        lock.lock();\n        try {\n            while (activeTaskCount.get() > 0) {\n                log(\"[{}][close] Waiting for {} active tasks to complete.\", activeTaskCount.get());","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-impl/src/main/java/org/apache/maven/impl/util/PhasingExecutor.java#L104-L140","documentation":"Error \"Phase interrupted\" thrown in apache/maven.","triggerScenarios":"Thrown at impl/maven-impl/src/main/java/org/apache/maven/impl/util/PhasingExecutor.java:122 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}