[ 
https://issues.apache.org/jira/browse/CXF-1730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619808#action_12619808
 ] 

pussinboost edited comment on CXF-1730 at 8/6/08 6:11 AM:
--------------------------------------------------------------

Hello, yesterday I tried the latest trunk version and i couldn't checked if 
this bug was fixed or not. Because
the following Exception was thrown.

java.lang.NullPointerException
        at 
org.apache.cxf.jaxrs.utils.JAXRSUtils.intersectMimeTypes(JAXRSUtils.java:709)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.computeAvailableContentTypes(JAXRSOutInterceptor.java:200)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:113)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:61)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
        at 
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:283)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:128)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:174)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)


      was (Author: pussinboost):
    Hello, yesterday I tried the latest trunk version and i couldn't resolved 
if this bug was fixed or not. Because
the following Exception was thrown.

java.lang.NullPointerException
        at 
org.apache.cxf.jaxrs.utils.JAXRSUtils.intersectMimeTypes(JAXRSUtils.java:709)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.computeAvailableContentTypes(JAXRSOutInterceptor.java:200)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:113)
        at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:61)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
        at 
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:283)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:128)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:174)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

So that I can not really try if the bug was fixed or not. 
  
> The Exception handling if it is thrown from a RequestHandler is not correct i 
> guess.
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-1730
>                 URL: https://issues.apache.org/jira/browse/CXF-1730
>             Project: CXF
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 2.1.2
>         Environment: Windows XP,  jdk1.6, Apache Tomcat 6.0.16
>            Reporter: Frank Ittermann
>
> Hello again
> i' ve used an implementation of RequestHandler to perform authentication 
> stuff. So
> if the Authentication failed a RuntimeException is thrown.  I've also wrote a 
> ExceptionMapper implementation to transform occurred Exception into Http 
> Status codes. If the RuntimeException from the Authentication was thrown than 
> this is translated to an HTTP 403 status code.
> But this Http status code is not send as response. This sends a 200 status 
> code. After a time of debugging i found the code that is responsible for 
> that. The processResponse method of the 
> org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor work not correct is 
> guess. Because code with the following code block this methods ends.
> OperationResourceInfo operation = 
> (OperationResourceInfo)exchange.get(OperationResourceInfo.class
>             .getName());
>         if (operation == null) {
>             return;
>         }
> because the operation variable is null. The code after this is responsible to 
> but the Response from the ExceptionMapper class into the message object so 
> that i received a 403 http status code.
> I've searched the code again and i found the code block how put the 
> OperationResourceInfo into the Exchange object. That is done by the 
> processRequest method of the 
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor class. But before the 
> OperationResourceInfo object is putted in the registered ResourceHandler are 
> called see the code block below.
>  for (ProviderInfo<RequestHandler> sh : shs) {
>             Response response = sh.getProvider().handleRequest(message, 
> resource);
>             if (response != null) {
>                 message.getExchange().put(Response.class, response);
>                 return;
>             }
>         }
> I guess the code how put in the OperationresourceInfo object could be 
> performed before the RequestHandlers are called maybe? 
> Or it's forbidden to throw a Runtimeexception inside the RequestHandler ?
> I've also tried to return an Response object from the RequestHandler but the 
> effect was the same it never arrives the client. It received also the 
> Response object with http code 200.
> The CXF framework is great and very flexible good work. The opportunities to 
> register own code is very great.
> Good work.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to