ofbiz-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adrian Crum <adrian.c...@sandglass-software.com>
Subject Re: svn commit: r1391037 - in /ofbiz/trunk/framework: common/config/ webapp/src/org/ofbiz/webapp/control/
Date Fri, 28 Sep 2012 07:12:23 GMT
Can we put the property in the webapp component? It seems to me it 
belongs in the same component as the code it is configuring.

-Adrian

On 9/28/2012 8:08 AM, Jacques Le Roux wrote:
> Indeed with this change you can't have that.
>
> If you used throwRequestHandlerExceptionOnMissingLocalRequest=Y
> You will have the "Going to external page: " + request.getPathInfo() 
> message in log and then a blank screen if you don't handle the request 
> with another specific servlet
>
> Of course if you use the default 
> throwRequestHandlerExceptionOnMissingLocalRequest=Y
>
> You will still get the same behaviour than before this change 
> (exception thrown)
>
> Jacques
>
> From: "Adrian Crum" <adrian.crum@sandglass-software.com>
>> I'm confused. I want to have external requests and I want to throw 
>> exceptions when I have missing controller entries. How does this 
>> change accommodate that?
>>
>> -Adrian
>>
>>
>> On 9/27/2012 3:49 PM, jleroux@apache.org wrote:
>>> Author: jleroux
>>> Date: Thu Sep 27 14:49:20 2012
>>> New Revision: 1391037
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1391037&view=rev
>>> Log:
>>> Closes "ControlServlet - Exception thrown for requests not defined 
>>> by controller.xml" https://issues.apache.org/jira/browse/OFBIZ-5037
>>>
>>> This has been tested in a custom project and work as expected it 
>>> does not add any functional features for OFBiz if you don't use 
>>> external requests in controllers. So should have any impacts OOTB
>>>
>>> Added:
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java

>>> (with props)
>>> Modified:
>>>      ofbiz/trunk/framework/common/config/general.properties
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
>>>
>>> Modified: ofbiz/trunk/framework/common/config/general.properties
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/general.properties?rev=1391037&r1=1391036&r2=1391037&view=diff
>>> ==============================================================================

>>>
>>> --- ofbiz/trunk/framework/common/config/general.properties (original)
>>> +++ ofbiz/trunk/framework/common/config/general.properties Thu Sep 
>>> 27 14:49:20 2012
>>> @@ -143,3 +143,6 @@ multitenant=N
>>>   # -- Y if you use a cluster. Most of the time this should not be 
>>> needed. Setting distributed-cache-clear-enabled="true" is enough
>>>   # -- to guarantee no sequenceIds duplicates. See OFBIZ-2353 for 
>>> details
>>>   cluster=N
>>> +
>>> +# -- N if you want to use external requests (not in available in 
>>> current controller), see OFBIZ-5037
>>> +throwRequestHandlerExceptionOnMissingLocalRequest=Y
>>> \ No newline at end of file
>>>
>>> Modified: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java?rev=1391037&r1=1391036&r2=1391037&view=diff
>>> ==============================================================================

>>>
>>> --- 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java

>>> (original)
>>> +++ 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java

>>> Thu Sep 27 14:49:20 2012
>>> @@ -225,6 +225,9 @@ public class ControlServlet extends Http
>>>                   request.setAttribute("_ERROR_MESSAGE_", 
>>> encoder.encode(throwable.toString()));
>>>                   errorPage = 
>>> requestHandler.getDefaultErrorPage(request);
>>>               }
>>> +         } catch (RequestHandlerExceptionAllowExternalRequests e) {
>>> +              errorPage = requestHandler.getDefaultErrorPage(request);
>>> +              Debug.logInfo("Going to external page: " + 
>>> request.getPathInfo(), module);
>>>           } catch (Exception e) {
>>>               Debug.logError(e, "Error in request handler: ", module);
>>>               StringUtil.HtmlEncoder encoder = new 
>>> StringUtil.HtmlEncoder();
>>>
>>> Modified: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1391037&r1=1391036&r2=1391037&view=diff
>>> ==============================================================================

>>>
>>> --- 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java

>>> (original)
>>> +++ 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java

>>> Thu Sep 27 14:49:20 2012
>>> @@ -65,6 +65,8 @@ import org.ofbiz.webapp.website.WebSiteW
>>>   public class RequestHandler {
>>>   public static final String module = RequestHandler.class.getName();
>>> +    private static final Boolean 
>>> THROW_REQUEST_HANDLER_EXCEPTION_ON_MISSING_LOCAL_REQUEST =
>>> + UtilProperties.propertyValueEqualsIgnoreCase("general.properties", 
>>> "throwRequestHandlerExceptionOnMissingLocalRequest", "Y");
>>>   public static RequestHandler getRequestHandler(ServletContext 
>>> servletContext) {
>>>           RequestHandler rh = (RequestHandler) 
>>> servletContext.getAttribute("_REQUEST_HANDLER_");
>>> @@ -96,7 +98,7 @@ public class RequestHandler {
>>>           return 
>>> ConfigXMLReader.getControllerConfig(this.controllerConfigURL);
>>>       }
>>>   -    public void doRequest(HttpServletRequest request, 
>>> HttpServletResponse response, String requestUri) throws 
>>> RequestHandlerException {
>>> +    public void doRequest(HttpServletRequest request, 
>>> HttpServletResponse response, String requestUri) throws 
>>> RequestHandlerException, RequestHandlerExceptionAllowExternalRequests {
>>>           HttpSession session = request.getSession();
>>>           Delegator delegator = (Delegator) 
>>> request.getAttribute("delegator");
>>>           GenericValue userLogin = (GenericValue) 
>>> session.getAttribute("userLogin");
>>> @@ -104,7 +106,7 @@ public class RequestHandler {
>>>       }
>>>   public void doRequest(HttpServletRequest request, 
>>> HttpServletResponse response, String chain,
>>> -            GenericValue userLogin, Delegator delegator) throws 
>>> RequestHandlerException {
>>> +            GenericValue userLogin, Delegator delegator) throws 
>>> RequestHandlerException, RequestHandlerExceptionAllowExternalRequests {
>>>   long startTime = System.currentTimeMillis();
>>>           HttpSession session = request.getSession();
>>> @@ -152,10 +154,13 @@ public class RequestHandler {
>>>               }
>>>           }
>>>   -        // still not found so stop
>>> +        // if no matching request is found in the controller, 
>>> depending on THROW_REQUEST_HANDLER_EXCEPTION_ON_MISSING_LOCAL_REQUEST
>>> +        //  we throw a RequestHandlerException or 
>>> RequestHandlerExceptionAllowExternalRequests
>>>           if (requestMap == null) {
>>> -            throw new 
>>> RequestHandlerException(requestMissingErrorMessage);
>>> -        }
>>> +            if 
>>> (THROW_REQUEST_HANDLER_EXCEPTION_ON_MISSING_LOCAL_REQUEST) throw new 
>>> RequestHandlerException(requestMissingErrorMessage);
>>> +            else throw new 
>>> RequestHandlerExceptionAllowExternalRequests();
>>> +         }
>>> +
>>>           String eventReturn = null;
>>>           if (requestMap.metrics != null && 
>>> requestMap.metrics.getThreshold() != 0.0 && 
>>> requestMap.metrics.getTotalEvents() > 3 && 
>>> requestMap.metrics.getThreshold() < 
>>> requestMap.metrics.getServiceRate()) {
>>>               eventReturn = "threshold-exceeded";
>>>
>>> Added: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java?rev=1391037&view=auto
>>> ==============================================================================

>>>
>>> --- 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java

>>> (added)
>>> +++ 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java

>>> Thu Sep 27 14:49:20 2012
>>> @@ -0,0 +1,39 @@
>>> +/*******************************************************************************

>>>
>>> + * Licensed to the Apache Software Foundation (ASF) under one
>>> + * or more contributor license agreements.  See the NOTICE file
>>> + * distributed with this work for additional information
>>> + * regarding copyright ownership.  The ASF licenses this file
>>> + * to you under the Apache License, Version 2.0 (the
>>> + * "License"); you may not use this file except in compliance
>>> + * with the License.  You may obtain a copy of the License at
>>> + *
>>> + * http://www.apache.org/licenses/LICENSE-2.0
>>> + *
>>> + * Unless required by applicable law or agreed to in writing,
>>> + * software distributed under the License is distributed on an
>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> + * KIND, either express or implied.  See the License for the
>>> + * specific language governing permissions and limitations
>>> + * under the License.
>>> + 
>>> *******************************************************************************/
>>> +package org.ofbiz.webapp.control;
>>> +
>>> +/**
>>> + * RequestHandlerExceptionAllowExternalRequests
>>> + */
>>> +@SuppressWarnings("serial")
>>> +public class RequestHandlerExceptionAllowExternalRequests extends 
>>> org.ofbiz.base.util.GeneralException {
>>> +
>>> +    public RequestHandlerExceptionAllowExternalRequests(String str, 
>>> Throwable t) {
>>> +        super(str, t);
>>> +    }
>>> +
>>> +    public RequestHandlerExceptionAllowExternalRequests(String str) {
>>> +        super(str);
>>> +    }
>>> +
>>> +    public RequestHandlerExceptionAllowExternalRequests() {
>>> +        super();
>>> +    }
>>> +}
>>> +
>>>
>>> Propchange: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java
>>> ------------------------------------------------------------------------------

>>>
>>>      svn:eol-style = native
>>>
>>> Propchange: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java
>>> ------------------------------------------------------------------------------

>>>
>>>      svn:keywords = Date Rev Author URL Id
>>>
>>> Propchange: 
>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandlerExceptionAllowExternalRequests.java
>>> ------------------------------------------------------------------------------

>>>
>>>      svn:mime-type = text/plain
>>>
>>>
>>


Mime
View raw message