{"record":{"id":"506ef5c08513370d","repo":"quarkusio/quarkus","slug":"not-implemented-yet","errorCode":null,"errorMessage":"Not implemented yet","messagePattern":"Not implemented yet","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/panache/rest-data-panache/runtime/src/main/java/io/quarkus/rest/data/panache/ReactiveRestDataResource.java","lineNumber":30,"sourceCode":" * <p>\n * User shouldn't use this interface directly but rather its sub-interfaces defined by the data store specific extensions.\n *\n * @param <Entity> Entity type that is handled by this resource.\n * @param <ID> ID type of the entity.\n */\npublic interface ReactiveRestDataResource<Entity, ID> {\n\n    /**\n     * Return entities as a JSON array.\n     * The response is paged by default, but that could be disabled with {@link ResourceProperties} annotation.\n     * Response content type: application/json.\n     *\n     * @param page Panache page instance that should be used in a query. Will be null if pagination is disabled.\n     * @param sort Panache sort instance that should be used in a query.\n     * @return A response with an entities JSON array.\n     */\n    default Uni<List<Entity>> list(Page page, Sort sort) {\n        throw new RuntimeException(\"Not implemented yet\");\n    }\n\n    /**\n     * @return the total number of entities.\n     */\n    default Uni<Long> count() {\n        throw new RuntimeException(\"Not implemented yet\");\n    }\n\n    /**\n     * Return an entity as a JSON object.\n     * Response content type: application/json.\n     *\n     * @param id Entity identifier.\n     * @return A response with a JSON object representing an entity.\n     */\n    default Uni<Entity> get(ID id) {\n        throw new RuntimeException(\"Not implemented yet\");","sourceCodeStart":12,"sourceCodeEnd":48,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/panache/rest-data-panache/runtime/src/main/java/io/quarkus/rest/data/panache/ReactiveRestDataResource.java#L12-L48","documentation":"ReactiveRestDataResource is a default interface whose methods are meant to be implemented by generated resource classes at build time (the generated subclass overrides list(Page, Sort) with real Hibernate Reactive/Panache code). If the raw default implementation is ever invoked, it throws 'Not implemented yet' — it exists only to define the REST contract, not to run.","triggerScenarios":"Runtime: a GET on the generated collection endpoint calls default list(Page, Sort) because the resource was NOT generated/overridden — e.g. using the interface directly in a custom resource, a generator regression that skipped method implementation, or calling the method on an anonymous/manual implementation.","commonSituations":"Developer implements ReactiveRestDataResource manually (or extends it partially) instead of using the generated resource; version change or build issue prevented method generation; a custom JAX-RS resource delegates to the interface defaults.","solutions":["Annotate your Panache entity/repository resource for generation (quarkus REST Data Panache setup) so the implementation is generated at build time, rather than implementing the interface yourself.","Override list(Page, Sort) in your resource with a real implementation (e.g. PanacheQuery.page(...).list()).","Rebuild the app (mvn clean package) to regenerate resources if generation was skipped."],"exampleFix":"// before\nclass MyResource implements ReactiveRestDataResource<Person, Long> { }\n// after\npublic class PersonResource implements ReactiveRestDataResource<Person, Long> {\n    @Override\n    public Uni<List<Person>> list(Page page, Sort sort) {\n        return Person.findAll(sort).page(page).list();\n    }\n}","handlingStrategy":"try-catch","validationCode":"// ensure the resource is generated (deployment-time), not hand-implemented\nif (getClass().getMethod(\"list\", Page.class, Sort.class)\n        .getDeclaringClass() == ReactiveRestDataResource.class) {\n    throw new IllegalStateException(\"list(Page, Sort) is not generated/overridden\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    return resource.list(page, sort);\n} catch (RuntimeException e) {\n    if (\"Not implemented yet\".equals(e.getMessage())) {\n        return fallbackList(page, sort); // custom Panache query\n    }\n    throw e;\n}","preventionTips":["Do not implement ReactiveRestDataResource directly; use build-time generation.","Override every default method you actually expose.","Rebuild after adding/removing REST Data Panache config so resources regenerate.","Write a boot-time smoke test hitting each endpoint (list/get/add/update/delete/count)."],"tags":["quarkus","runtime","rest-data-panache","reactive","unimplemented"],"backgroundTag":"method-not-implemented","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}