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

ClientResponseFailure not thrown for 401 response

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.3-beta-1
    • 2.2.0.GA
    • jaxrs
    • None
    • Hide

      Create a method that returns a java object such as an ArrayList, with RolesAllowed annotation. Call the method from the client side with the proper role, and there is no error. Call the method from the client side as a user without a role, and the server sends a 401 response, while the client gets a StackOverflowError rather than ClientResponseFailure.

      Show
      Create a method that returns a java object such as an ArrayList, with RolesAllowed annotation. Call the method from the client side with the proper role, and there is no error. Call the method from the client side as a user without a role, and the server sends a 401 response, while the client gets a StackOverflowError rather than ClientResponseFailure.

    Description

      ClientResponseFailure not thrown at client for 401 response for a method that normally returns an ArrayList. The 401 response was caused by an improper user role. When the user has the proper role, the method returns the ArrayList with no error. Client side created with org.jboss.resteasy.client.ProxyFactory.

      It appears that BaseClientResponse gets into an infinite loop, as shown in the stack trace below.

      java.lang.StackOverflowError
      ...
      at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479)
      at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442)
      at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94)
      at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479)
      at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442)
      at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94)
      at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479)
      at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442)
      at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94)
      at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479)
      at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319)
      at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442)
      at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94)
      at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
      at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
      ....

      Attachments

        Activity

          Public project attachment banner

            context keys: [headless, issue, helper, isAsynchronousRequest, project, action, user]
            current Project key: RESTEASY

            People

              patriot1burke@gmail.com Bill Burke (Inactive)
              rieman_jira ron cook (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: