Uploaded image for project: 'RESTEasy'
  1. RESTEasy
  2. RESTEASY-923

Only the root method of an overridden method in an inheritance hierarchy may be annotated with parameter constraints

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 3.0.9.Final
    • 3.0.2.Final
    • jaxrs

    Description

      If my resource is EJB with JAX-RS annotations on it's interface then I get ConstraintDeclarationException.

      If I specify @ValidateRequest on Impl then there is no validation at all.

      This might be related to https://hibernate.atlassian.net/browse/HV-448

      @Stateless
      public class UserResourceImpl implements UserResource {
      @Override
      public User register(@Nonnull String email, @Nonnull String password) throws EmailAleadyRegisteredException
      {}
      }

      @RolesAllowed(Roles.USER)
      @Path("/user")
      public interface UserResource {
      @ValidateRequest
      @Consumes(

      {MediaType.TEXT_PLAIN}

      )
      @PermitAll
      @POST
      @Path("/")
      User register(@NotNull @FormParam("email") String email, @NotNull @FormParam("password") String password) throws EmailAleadyRegisteredException;
      }

      Call to such method results in:

      javax.validation.ConstraintDeclarationException: Only the root method of an overridden method in an inheritance hierarchy may be annotated with parameter constraints, but there are parameter constraints defined at all of the following overridden methods: [MethodMetaData [method=public abstract example.server.rest.domain.User example.server.rest.UserResource.register(java.lang.String,java.lang.String) throws example.server.business.EmailAleadyRegisteredException, parameterMetaData=[ParameterMetaData [type=class java.lang.String], [index=0], name=arg0], constraints=[NotNull], isCascading=false], ParameterMetaData [type=class java.lang.String], [index=1], name=arg1], constraints=[NotNull], isCascading=false]], constraints=[], isCascading=false, hasParameterConstraints=true], MethodMetaData [method=public example.server.rest.domain.User example.server.rest.UserResource$$$view306.register(java.lang.String,java.lang.String) throws example.server.business.EmailAleadyRegisteredException, parameterMetaData=[ParameterMetaData [type=class java.lang.String], [index=0], name=arg0], constraints=[NotNull], isCascading=false], ParameterMetaData [type=class java.lang.String], [index=1], name=arg1], constraints=[NotNull], isCascading=false]], constraints=[], isCascading=false, hasParameterConstraints=true]]

      Attachments

        1. resteasy-923.zip
          15 kB
        2. RESTEASY-923-AS7.jar
          13 kB
        3. RESTEASY-923-AS7-B.zip
          145 kB

        Issue Links

          Activity

            People

              rsigal@redhat.com Ronald Sigal
              blabno Bernard Labno (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: