{"record":{"id":"598adbb76ed960e2","repo":"quarkusio/quarkus","slug":"not-implemented-yet-598adb","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/RestDataResource.java","lineNumber":29,"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 RestDataResource<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 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 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 Entity get(ID id) {\n        throw new RuntimeException(\"Not implemented yet\");","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/panache/rest-data-panache/runtime/src/main/java/io/quarkus/rest/data/panache/RestDataResource.java#L11-L47","documentation":"RestDataResource is an interface whose default methods throw RuntimeException(\"Not implemented yet\") as placeholders. Quarkus REST Data Panache generates an implementing resource at build time; if code reaches the default body it means the method was invoked on a resource instance that was never intercepted/generated (e.g. called directly on the interface or CDI could not apply the generated implementation).","triggerScenarios":"Calling list(Page, Sort) on a RestDataResource instance that was not the generated resource — e.g. injecting the raw interface without proper Panache entity/repository setup, or invoking the method manually on an anonymous/manual implementation that forgot to override list().","commonSituations":"Manually implementing RestDataResource and overriding some methods but not list(); injecting RestDataResource without annotating the entity/resource correctly so the generated resource is not used; customizing a generated resource by re-declaring methods but leaving list to the default.","solutions":["Override the list(Page page, Sort sort) method in your resource implementation/customization with real logic","Ensure the resource is generated: put @Path-less RestDataResource implementation in place and confirm the REST Data Panache extension processed it (check build logs for the generated resource)","Do not call the default interface methods directly; use the generated JAX-RS resource endpoint instead"],"exampleFix":"// before\npublic class PeopleResource implements RestDataResource<Person> {\n    // list not overridden -> default throws\n}\n// after\npublic class PeopleResource implements RestDataResource<Person> {\n    @Override\n    public List<Person> list(Page page, Sort sort) {\n        return Person.listAll(page, sort);\n    }\n}","handlingStrategy":"validation","validationCode":"if (this.getClass().isAssignableFrom(RestDataResource.class) && this.getClass().isInterface()) {\n    throw new IllegalStateException(\"list() must be overridden or generated; default throws\");\n}","typeGuard":"static boolean isImplemented(RestDataResource<?> r) {\n    try {\n        r.getClass().getDeclaredMethod(\"list\", Object.class);\n        return true;\n    } catch (NoSuchMethodException e) {\n        return false;\n    }\n}","tryCatchPattern":"try {\n    List<Person> people = resource.list(page, sort);\n} catch (RuntimeException e) {\n    if (\"Not implemented yet\".equals(e.getMessage())) {\n        throw new IllegalStateException(\"Resource not generated/overridden: implement list(Page, Sort)\", e);\n    }\n    throw e;\n}","preventionTips":["Override every RestDataResource method you intend to use when hand-implementing the interface","Verify build logs that REST Data Panache generated the resource","Smoke-test each REST verb endpoint in tests","Never call the interface default methods directly"],"tags":["panache","rest-data","unimplemented-method","runtime"],"backgroundTag":"unimplemented-default-method","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"}