<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>I think we should take the discussion to either RESTEASY-1749.
      Also, I just found a related, ongoing discussion at
      <a class="moz-txt-link-freetext" href="https://developer.jboss.org/thread/276505">https://developer.jboss.org/thread/276505</a>.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 11/15/2017 10:10 PM, Ron Sigal
      wrote:<br>
    </div>
    <blockquote
      cite="mid:903afa5c-331e-685c-930d-2e8c6c344eea@redhat.com"
      type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      <p>Hi John,</p>
      <p>Looking a little deeper, I see a remaining problem. I've got a
        test with three invocations:</p>
      <p>  1. field and parameter violations</p>
      <p>  2. no violations</p>
      <p>  3. field and parameter violations</p>
      <p>On the third invocation, the parameter violation is found by
        Resteasy, and then the EJB subsystem finds it again and throws a
        ConstaintViolationException. I unwrap the exception, collect the
        two exceptions (as I mentioned below - it turns out that
org.hibernate.validator.internal.engine.ConstraintViolationImpl.hashCode()
        refers to the class in which the violation occurs, and I've got
        a plain class and a proxy class, so two essentially identical
        violations appear to not be equal), and send them back to the
        client. The problem is that, by throwing an exception, EJB is
        interrupting the normal flow and preventing
        org.jboss.resteasy.cdi.JaxrsInjectionTarget from finding
        field/property violations. That is, it's worse than just
        reporting duplicate violations - it's losing violations.</p>
      <p>I can probably do some contorted thing to ignore the fact that
        EJB is throwing an exception in order to continue with the
        normal flow, but I'm thinking it would be much better to be able
        to turn off the validation in EJB. You were going to look into
        the log level of EJB exceptions. Have you seen anything about
        turning off validation? Or, if not, do you know someone who
        might know?</p>
      <p>-Ron<br>
      </p>
      <br>
      <div class="moz-cite-prefix">On 11/14/2017 07:08 AM, John O'Hara
        wrote:<br>
      </div>
      <blockquote
cite="mid:CA+HD-p3_Bfy4jsJJCrf5qV3q7OeOQ-FuQMGUgFSJhnHWVSNJSw@mail.gmail.com"
        type="cite">
        <div dir="ltr">Ron,
          <div><br>
          </div>
          <div>I have checked the fix in the <a moz-do-not-send="true"
              href="https://github.com/ronsigal/Resteasy/tree/3.0_1749">https://github.com/ronsigal/Resteasy/tree/3.0_1749</a>
            branch and it does now pass the unit test and we see the
            correct response in the benchmark I am running. </div>
          <div><br>
          </div>
          <div>I still see the Exception being logged in the ejb3
            subsystem as an ERROR, but I will investigate whether this
            should be logged as an error there, or whether a different
            log level would be more appropriate.</div>
          <div><br>
          </div>
          <div>Thanks</div>
          <div><br>
          </div>
          <div>John</div>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Sat, Nov 4, 2017 at 10:31 PM, Ron
            Sigal <span dir="ltr">&lt;<a moz-do-not-send="true"
                href="mailto:rsigal@redhat.com" target="_blank">rsigal@redhat.com</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000">
                <p>Hi John,</p>
                <p>Well, I thought I would have wrapped this up by now.
                  I started by experimenting with @ApplicationScoped
                  resources, but I just wasn't seeing what I expected.
                  Then I started playing with @Stateless bean resources,
                  and I still didn't see what I expected. That was all
                  on the master branch. Today, I played with @Stateless
                  resources on branch 3.0, and I finally reproduced what
                  you've been seeing. It's vaguely familiar - EJB is
                  doing its own validation in an interceptor. Anyway,
                  I've updated GeneralValidatorImpl.<wbr>checkForConstraintViolations()<wbr>,
                  and I've gotten rid of the 500 status by unwinding
                  thrown Exceptions until I get a
                  ConstraintViolationException. One problem I still have
                  is that I'm getting two copies of the violations when
                  I combine a couple of sources, even though there is an
                  equals() method that I think should prevent that.</p>
                <p>Anyway, I'm telling you now about a not quite
                  complete solution because I'm going to take off next
                  week. The solution is on branch 3.0_1749 in my
                  personal github repository: <a moz-do-not-send="true"
                    class="m_9109101208054779067moz-txt-link-freetext"
                    href="https://github.com/ronsigal/Resteasy/tree/3.0_1749"
                    target="_blank">https://github.com/ronsigal/<wbr>Resteasy/tree/3.0_1749</a>.</p>
                <p>I'll clean things up when I get back. If you get a
                  chance, let me know if the updated version fixes your
                  problem.</p>
                <span class="HOEnZb"><font color="#888888">
                    <p>-Ron<br>
                    </p>
                  </font></span>
                <div>
                  <div class="h5"> <br>
                    <div class="m_9109101208054779067moz-cite-prefix">On
                      11/02/2017 03:21 AM, John O'Hara wrote:<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="ltr">
                        <div>Hi,</div>
                        <div><br>
                        </div>
                        <div>Does the test need to be in its own class,
                          or can I add it to an existing class?  Should
                          the test be in the integration testsuite, or
                          is there a better module to put it in?
                          org.jboss.resteasy.test.cdi.<wbr>validation.<wbr>ValidationWithCDITest
                          seems to me to be a logical place to put it.</div>
                        <div>
                          <div><br>
                          </div>
                          <div>Also, when I run the integration
                            testsuite, it is run against an existing WF
                            runtime, afaics the tests use the version of
                            resteasy jaxrs that is bundled with the
                            runtime, are there any tests that run with
                            the build artefacts?</div>
                          <div><br>
                          </div>
                          <div>Thanks</div>
                          <div><br>
                          </div>
                          <div>John</div>
                          <div><br>
                          </div>
                          <div class="gmail_extra"><br>
                            <div class="gmail_quote">On Tue, Oct 31,
                              2017 at 1:18 AM, Ron Sigal <span
                                dir="ltr">&lt;<a moz-do-not-send="true"
                                  href="mailto:rsigal@redhat.com"
                                  target="_blank">rsigal@redhat.com</a>&gt;</span>
                              wrote:<br>
                              <blockquote class="gmail_quote"
                                style="margin:0px 0px 0px
                                0.8ex;border-left:1px solid
                                rgb(204,204,204);padding-left:1ex">
                                <div bgcolor="#FFFFFF">
                                  <p>Hi John,</p>
                                  <p>Ok, I'll start playing with
                                    RESTEASY-1749. Thanks.</p>
                                  <p>Yes, master branch.</p>
                                  <span
                                    class="m_9109101208054779067gmail-HOEnZb"><font
                                      color="#888888">
                                      <p>-Ron<br>
                                      </p>
                                    </font></span>
                                  <div>
                                    <div
                                      class="m_9109101208054779067gmail-h5">
                                      <br>
                                      <div
                                        class="m_9109101208054779067gmail-m_1416477846483108254moz-cite-prefix">On
                                        10/30/2017 07:30 AM, John O'Hara
                                        wrote:<br>
                                      </div>
                                      <blockquote type="cite">
                                        <div dir="ltr">Ron,
                                          <div><br>
                                          </div>
                                          <div>I agree with your
                                            thinking. I think that we do
                                            need to check the parameters
                                            when the endpoint is called,
                                            and throw an appropriate
                                            exception.</div>
                                          <div><br>
                                          </div>
                                          <div>I have opened a jira : <a
                                              moz-do-not-send="true"
                                              href="https://issues.jboss.org/projects/RESTEASY/issues/RESTEASY-1749"
                                              target="_blank">https://issues.jboss.org/pro<wbr>jects/RESTEASY/issues/RESTEASY<wbr>-1749</a></div>
                                          <div><br>
                                          </div>
                                          <div>I can create a test in
                                            the testsuite, would this
                                            need to be in the current
                                            master branch?</div>
                                          <div><br>
                                          </div>
                                          <div><br>
                                          </div>
                                          <div>John</div>
                                        </div>
                                        <div class="gmail_extra"><br>
                                          <div class="gmail_quote">On
                                            Fri, Oct 27, 2017 at 5:21
                                            PM, Ron Sigal <span
                                              dir="ltr">&lt;<a
                                                moz-do-not-send="true"
                                                href="mailto:rsigal@redhat.com"
                                                target="_blank">rsigal@redhat.com</a>&gt;</span>
                                            wrote:<br>
                                            <blockquote
                                              class="gmail_quote"
                                              style="margin:0px 0px 0px
                                              0.8ex;border-left:1px
                                              solid
rgb(204,204,204);padding-left:1ex">
                                              <div bgcolor="#FFFFFF"><span>
                                                  On 10/27/2017 08:33
                                                  AM, John O'Hara wrote:<br>
                                                  <blockquote
                                                    type="cite">
                                                    <div dir="ltr">After
                                                      some more digging,
                                                      I have found that
                                                      this issue occurs
                                                      if the the rest
                                                      endpoint is also
                                                      defined as an ejb
                                                      managed bean. e.g.
                                                      <blockquote
                                                        class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid
                                                        rgb(204,204,204);padding-left:1ex">
                                                        <pre style="color:rgb(0,0,0);font-family:&quot;DejaVu Sans Mono&quot;;font-size:11.3pt"><span style="color:rgb(128,128,0)">@Stateless
</span><span style="color:rgb(128,128,0)">@Path</span>(<span style="color:rgb(0,128,0);font-weight:bold">"/policyholder"</span>)
<span style="color:rgb(128,128,0)">@Produces</span>(MediaType.<span style="color:rgb(102,14,122);font-weight:bold;font-style:italic">APPLICATIO<wbr>N_JSON</span>)
<span style="color:rgb(128,128,0)">@Consumes</span>(MediaType.<span style="color:rgb(102,14,122);font-weight:bold;font-style:italic">APPLICATIO<wbr>N_JSON</span>)
<span style="color:rgb(0,0,128);font-weight:bold">public class </span>PolicyHolderEndpoint {</pre>
        </blockquote>
        <div>In this case the JaxrsInjectionTarget.injec<wbr>t() is only
          called on the first endpoint invocation, and not on subsequent
          calls. 

        </div>
      </div>
    </blockquote>
    

    
</span>
    Hmmm. @Stateless, so it doesn't have @Request scope; i.e., it's
    created just once. I conjecture you wouldn't see this problem for a
    @Stateful session bean.<span>

    

    

    <blockquote type="cite">
      <div dir="ltr">
        <div>

        </div>
        <div>In the application the pusdo PolicyHolderEndpoint class is
          also a managed bean that is injected into other services as a
          single entry point for managing policyHolders.</div>
        <div>

        </div>
        <div>Is it reasonable to expect a rest endpoint can also be
          defined as an ejb managed bean?</div>
      </div>
    </blockquote>
    
</span>
    According to the JAX-RS spec:

    

    <blockquote>
      <blockquote type="cite">10.2.4 Enterprise Java Beans (EJBs)

      </blockquote>
      <blockquote type="cite">In a product that supports EJBs, an
        implementation MUST support the use of stateless and singleton
        ses-

        sion beans as root resource classes, providers and Application
        subclasses. JAX-RS annotations can be

        applied to methods in an EJB’s local interface or directly to
        methods in a no-interface EJB. Resource class

        annotations (like @Path ) MUST be applied to an EJB’s class
        directly following the annotation inheritance

        rules defined in Section 3.6.</blockquote>
      

    </blockquote><span>
    <blockquote type="cite">
      <div dir="ltr">
        <div>

        </div>
        <div><span style="color:rgb(0,0,0);font-size:12.8px">I need to
            look into why weld isn't injecting the </span><font color="#000000"><span style="font-size:12.8px">JaxrsInjectionTarget,
              but</span></font><span style="color:rgb(0,0,0);font-size:12.8px"> </span>I think
          that my original question still stands in this use case.  If
          we are running in a CDI context, we already ascertain in <span style="color:rgb(0,0,0);font-size:12.8px">MethodInjectorImpl.invoke()
            whether there are validation exceptions by calling [1]. Can
            we fail at this point, rather than delegating the validation
            to the CDI manager and waiting for a callback? 

          </span></div>
      </div>
    </blockquote>
    
</span>
    The CDI spec says we have to accumulate as many violations as
    possible before throwing an exception,so, in general, we still have
    to proceed to check field / property violations. 

    

    BUT ... I think the scope is the source of the problem. If an EJB
    session bean is created just once, then field / parameter injections
    should be checked only once. On subsequent calls, it does, as you
    say, make sense to stop and throw an exception after checking
    parameters.

    

    SO ... if my reasoning makes sense, this is something that should be
    handled in Resteasy. If you agree, do you want to create a JIRA and
    I'll work on it? What do you think?

    

    -Ron

    

    <blockquote type="cite"><div><div class="m_9109101208054779067gmail-m_1416477846483108254h5">
      <div dir="ltr">
        <div>

        </div>
        <div>Thanks</div>
        <div><span style="color:rgb(0,0,0);font-size:12.8px">

          </span></div>
        <div><span style="color:rgb(0,0,0);font-size:12.8px">[1] - </span><font color="#000000"><span style="font-size:12.8px"><a moz-do-not-send="true" href="https://github.com/resteasy/Resteasy/blob/master/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/MethodInjectorImpl.java#L119" target="_blank">https://github.com/resteasy/<wbr>Resteasy/blob/master/resteasy-<wbr>jaxrs/src/main/java/org/jboss/<wbr>resteasy/core/MethodInjectorIm<wbr>pl.java#L119</a></span></font></div>
        <div>

        </div>
      </div>
      <div class="gmail_extra">

        <div class="gmail_quote">On Fri, Oct 27, 2017 at 8:21 AM, John
          O'Hara <span dir="ltr">&lt;<a moz-do-not-send="true" href="mailto:johara@redhat.com" target="_blank">johara@redhat.com</a>&gt;</span>
          wrote:

          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div dir="ltr">Ron,
              <div>

              </div>
              <div>I re-read your email and double checked the call
                to GeneralValidatorImpl.checkV<wbr>iolationsfromCDI().</div>
              <div>

              </div>
              <div>I only see this being called once, on the first
                request.</div>
              <div>

              </div>
              <div>I will dig some more to see why it is not being
                called on all requests</div>
              <div>

              </div>
              <div>Thanks</div>
              <span class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556HOEnZb"><font color="#888888">
                  <div>

                  </div>
                  <div>John</div>
                  <div>

                  </div>
                  <div>

                  </div>
                </font></span></div>
            <div class="gmail_extra">
              <div>
                <div class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556h5">

                  <div class="gmail_quote">On Fri, Oct 27, 2017 at 8:03
                    AM, John O'Hara <span dir="ltr">&lt;<a moz-do-not-send="true" href="mailto:johara@redhat.com" target="_blank">johara@redhat.com</a>&gt;</span>
                    wrote:

                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div dir="ltr"><span id="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556m_-7538084200824039342m_7348204419328560668gmail-docs-internal-guid-6a371e78-5c9b-bfaf-8ff7-6739edd31b00">
                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Thank you for your responses. If I fill you in on a bit of background about what I have experienced, then it might help clarify the issue I see.  </span></p>
                          

                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">Background</span></p>
                          

                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I am running a JEE benchmark on EAP7.1 (using resteasy 3.0.24.Final). One of rest endpoints has a @Valid annotation on a method parameter for a complex object.  </span></p>
                          

                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:4pt"><span style="font-size:11pt;font-family:Arial;color:rgb(128,128,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">@POST</span></p>
                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:4pt"><span style="font-size:11pt;font-family:Arial;color:rgb(128,128,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">@Path</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(</span><span style="font-size:11pt;font-family:Arial;color:rgb(0,128,0);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">"/foo"</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">)</span></p>
                          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:4pt"><span style="font-size:11pt;font-family:Arial;color:rgb(128,128,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">@Consumes</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(MediaType.</span><span style="font-size:11pt;font-family:Arial;color:rgb(102,14,122);background-color:transparent;font-weight:700;font-style:italic;vertical-align:baseline;white-space:pre-wrap">APPLICATIO<wbr>N_JSON</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">)</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:4pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,128);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">public void </span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">addFoo(</span><span style="font-size:11pt;font-family:Arial;color:rgb(128,128,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">@Valid </span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Foo bar) </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,128);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">throws </span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Exception {</span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The Foo class contains different validation annotations, such as @NotNull, @Size, @Pattern and a custom validation annotation. </span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">One test determines how WF/EAP handles invalid requests. </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">When I invoke the endpoint above I see a non-deterministic response from the app server.  If I invoke the endpoint with an invalid json object I receive a HTTP 400 exception as expected, but if I invoke the endpoint with a valid object, and *then* invoke the endpoint </span><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">with an invalid object I receive a HTTP 500 error. </span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">This exception only occurs on some property validation annotations and not all (e.g. @NotNull works as expected)</span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The test is being run in the context of CDI, and the HTTP 500 error is coming from the ejb3 subsystem. The ejb3 subsystem is wrapping the ConstraintValidationException raised by hibernate-validator.</span></p>

<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">Observations</span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">In the call stack I capture [1], and WF thread dump [2] I can see;</span></p>
<ol style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The test is run in the context of CDI. The HTTP 500 response code message is caused by the ejb3 subsystem wrapping a ConstraintValidationException raised by hibernate-validator</span></p></li></ol>
<ol style="margin-top:0pt;margin-bottom:0pt" start="2"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The validator is not called in ResourceMethodInvoker.invokeOn<wbr>Target() [3] as isValidatable is false [4], a ResteasyViolationException is not thrown</span></p></li></ol>
<ol style="margin-top:0pt;margin-bottom:0pt" start="3"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The request is validated again here [5], the validation exceptions are not acted upon in this method call and the reflected method (which happens to be the Foo class constructor) is called here [6]</span></p></li></ol>

<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">Questions</span></p>
<ol style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Why is ResourceMethodInvoker.isValida<wbr>table false in WF/EAP?</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">If isValidatable is false, and validation occurs again at MethodInjectorImpl.invoke() can we not check for validation errors and raise the correct exception there as well?</span></p></li></ol>

<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I have a standalone test that I will clean up and push out. There are some aspects of the test that can not be published publicly, so I need to modify them first.</span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Thanks,</span></p>
<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">John</span></p>

<p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[1] - see failing_4.stack  </span></p><p style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[2] - see WF_stackTrace.out</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[3] - </span><a moz-do-not-send="true" href="https://github.com/resteasy/Resteasy/blob/master/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/ResourceMethodInvoker.java#L305" style="text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;background-color:transparent;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/resteasy/Re<wbr>steasy/blob/master/resteasy-ja<wbr>xrs/src/main/java/org/jboss/re<wbr>steasy/core/ResourceMethodInvo<wbr>ker.java#L305</span></a></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[4] - </span><a moz-do-not-send="true" href="https://github.com/resteasy/Resteasy/blob/master/providers/resteasy-validator-provider-11/src/main/java/org/jboss/resteasy/plugins/validation/GeneralValidatorImpl.java#L223" style="text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;background-color:transparent;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/resteasy/Re<wbr>steasy/blob/master/providers/r<wbr>esteasy-validator-provider-11/<wbr>src/main/java/org/jboss/restea<wbr>sy/plugins/validation/GeneralV<wbr>alidatorImpl.java#L223</span></a></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[5] - </span><a moz-do-not-send="true" href="https://github.com/resteasy/Resteasy/blob/master/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/MethodInjectorImpl.java#L119" style="text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;background-color:transparent;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/resteasy/Re<wbr>steasy/blob/master/resteasy-ja<wbr>xrs/src/main/java/org/jboss/re<wbr>steasy/core/MethodInjectorImpl<wbr>.java#L119</span></a></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">[6] - </span><span style="text-decoration-line:underline;font-size:11pt;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><a moz-do-not-send="true" href="https://github.com/resteasy/Resteasy/blob/master/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/MethodInjectorImpl.java#L140" style="text-decoration-line:none" target="_blank">https://github.com/resteasy/Re<wbr>steasy/blob/master/resteasy-ja<wbr>xrs/src/main/java/org/jboss/re<wbr>steasy/core/MethodInjectorImpl<wbr>.java#L140</a></span></p><div>
</div></span><div class="gmail_extra"><div class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556m_-7538084200824039342m_7348204419328560668gmail-m_3837250096923988484gmail-m_-5821345287519690629gmail_signature"><div dir="ltr"><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px">
</div></div></div>
</div></div>
</blockquote></div>

<div>
</div></div></div><span>-- 
<div class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556m_-7538084200824039342gmail_signature"><div dir="ltr"><div><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>JOHN</span> <span>O'HARA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>PRINCIPAL SOFTWARE ENGINEER</span><span style="color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat<span></span></a></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a moz-do-not-send="true" href="https://red.ht/sig" target="_blank"><img moz-do-not-send="true" src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a moz-do-not-send="true" href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px"><div style="color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://twitter.com/redhatway" title="twitter" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-twitter.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatway</a>   <a moz-do-not-send="true" href="https://instagram.com/redhatinc" title="instagram" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-instagram.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatinc</a>   <a moz-do-not-send="true" href="https://snapchat.com/add/redhatsnaps" title="snapchat" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-snapchat.png&quot;) 0px 50%/15px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@red<wbr>hatsnaps</a></div></div></div></div></div>
</span></div>
</blockquote></div>

<div>
</div>-- 
<div class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556gmail_signature"><div dir="ltr"><div><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>JOHN</span> <span>O'HARA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>PRINCIPAL SOFTWARE ENGINEER</span><span style="color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat<span></span></a></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a moz-do-not-send="true" href="https://red.ht/sig" target="_blank"><img moz-do-not-send="true" src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a moz-do-not-send="true" href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px"><div style="color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://twitter.com/redhatway" title="twitter" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-twitter.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatway</a>   <a moz-do-not-send="true" href="https://instagram.com/redhatinc" title="instagram" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-instagram.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatinc</a>   <a moz-do-not-send="true" href="https://snapchat.com/add/redhatsnaps" title="snapchat" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-snapchat.png&quot;) 0px 50%/15px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@red<wbr>hatsnaps</a></div></div></div></div></div>
</div>


<fieldset class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556mimeAttachmentHeader"></fieldset>
</div></div><pre>______________________________<wbr>_________________
resteasy-dev mailing list
<a moz-do-not-send="true" class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556moz-txt-link-abbreviated" href="mailto:resteasy-dev@lists.jboss.org" target="_blank">resteasy-dev@lists.jboss.org</a>
<a moz-do-not-send="true" class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" target="_blank">https://lists.jboss.org/mailma<wbr>n/listinfo/resteasy-dev</a>
</pre>

</blockquote><span>
<pre class="m_9109101208054779067gmail-m_1416477846483108254m_-1411488269600615556moz-signature" cols="72">-- 
My company's smarter than your company (unless you work for Red Hat)</pre></span></div>
______________________________<wbr>_________________

resteasy-dev mailing list

<a moz-do-not-send="true" href="mailto:resteasy-dev@lists.jboss.org" target="_blank">resteasy-dev@lists.jboss.org</a>

<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailma<wbr>n/listinfo/resteasy-dev</a>


</blockquote></div>

<div>
</div>-- 
<div class="m_9109101208054779067gmail-m_1416477846483108254gmail_signature"><div dir="ltr"><div><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>JOHN</span> <span>O'HARA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>PRINCIPAL SOFTWARE ENGINEER</span><span style="color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat<span></span></a></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a moz-do-not-send="true" href="https://red.ht/sig" target="_blank"><img moz-do-not-send="true" src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a moz-do-not-send="true" href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px"><div style="color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://twitter.com/redhatway" title="twitter" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-twitter.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatway</a>   <a moz-do-not-send="true" href="https://instagram.com/redhatinc" title="instagram" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-instagram.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatinc</a>   <a moz-do-not-send="true" href="https://snapchat.com/add/redhatsnaps" title="snapchat" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-snapchat.png&quot;) 0px 50%/15px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@red<wbr>hatsnaps</a></div></div></div></div></div>
</div>


<fieldset class="m_9109101208054779067gmail-m_1416477846483108254mimeAttachmentHeader"></fieldset>
<pre>______________________________<wbr>_________________
resteasy-dev mailing list
<a moz-do-not-send="true" class="m_9109101208054779067gmail-m_1416477846483108254moz-txt-link-abbreviated" href="mailto:resteasy-dev@lists.jboss.org" target="_blank">resteasy-dev@lists.jboss.org</a>
<a moz-do-not-send="true" class="m_9109101208054779067gmail-m_1416477846483108254moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" target="_blank">https://lists.jboss.org/mailma<wbr>n/listinfo/resteasy-dev</a>
</pre>

</blockquote>
<pre class="m_9109101208054779067gmail-m_1416477846483108254moz-signature" cols="72">-- 
My company's smarter than your company (unless you work for Red Hat)</pre></div></div></div>
______________________________<wbr>_________________

resteasy-dev mailing list

<a moz-do-not-send="true" href="mailto:resteasy-dev@lists.jboss.org" target="_blank">resteasy-dev@lists.jboss.org</a>

<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailma<wbr>n/listinfo/resteasy-dev</a>


</blockquote></div>

<div>
</div>-- 
<div class="m_9109101208054779067gmail_signature"><div dir="ltr"><div><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>JOHN</span> <span>O'HARA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>PRINCIPAL SOFTWARE ENGINEER</span><span style="color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat<span></span></a></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a moz-do-not-send="true" href="https://red.ht/sig" target="_blank"><img moz-do-not-send="true" src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a moz-do-not-send="true" href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px"><div style="color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://twitter.com/redhatway" title="twitter" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-twitter.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatway</a>   <a moz-do-not-send="true" href="https://instagram.com/redhatinc" title="instagram" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-instagram.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatinc</a>   <a moz-do-not-send="true" href="https://snapchat.com/add/redhatsnaps" title="snapchat" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-snapchat.png&quot;) 0px 50%/15px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@<wbr>redhatsnaps</a></div></div></div></div></div>
</div></div></div>


<fieldset class="m_9109101208054779067mimeAttachmentHeader"></fieldset>
<pre>______________________________<wbr>_________________
resteasy-dev mailing list
<a moz-do-not-send="true" class="m_9109101208054779067moz-txt-link-abbreviated" href="mailto:resteasy-dev@lists.jboss.org" target="_blank">resteasy-dev@lists.jboss.org</a>
<a moz-do-not-send="true" class="m_9109101208054779067moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/resteasy-dev</a>
</pre>

</blockquote>
<pre class="m_9109101208054779067moz-signature" cols="72">-- 
My company's smarter than your company (unless you work for Red Hat)</pre></div></div></div>
______________________________<wbr>_________________

resteasy-dev mailing list

<a moz-do-not-send="true" href="mailto:resteasy-dev@lists.jboss.org">resteasy-dev@lists.jboss.org</a>

<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/resteasy-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/resteasy-dev</a>


</blockquote></div>

<div>
</div>-- 
<div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>JOHN</span> <span>O'HARA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>PRINCIPAL SOFTWARE ENGINEER</span><span style="color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat<span></span></a></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a moz-do-not-send="true" href="https://red.ht/sig" target="_blank"><img moz-do-not-send="true" src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a moz-do-not-send="true" href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><div style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px"><div style="color:rgb(153,153,153)"><a moz-do-not-send="true" href="https://twitter.com/redhatway" title="twitter" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-twitter.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatway</a>   <a moz-do-not-send="true" href="https://instagram.com/redhatinc" title="instagram" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-instagram.png&quot;) 0px 50%/16px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatinc</a>   <a moz-do-not-send="true" href="https://snapchat.com/add/redhatsnaps" title="snapchat" style="background:url(&quot;https://www.redhat.com/files/brand/email/sm-snapchat.png&quot;) 0px 50%/15px no-repeat transparent;height:20px;color:rgb(119,119,119);display:inline-block;line-height:20px;padding-left:16px" target="_blank">@redhatsnaps</a></div></div></div></div></div>
</div>



</blockquote>
<pre class="moz-signature" cols="72">-- 
My company's smarter than your company (unless you work for Red Hat)</pre>

</blockquote>
<pre class="moz-signature" cols="72">-- 
My company's smarter than your company (unless you work for Red Hat)</pre></body></html>