Author: ivaynberg
Date: Tue Aug 17 23:48:42 2010
New Revision: 986529

URL: http://svn.apache.org/viewvc?rev=986529&view=rev
Log:
AbstractResource should give access to the error message for http errors
Issue: WICKET-2997

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/SharedResourceReference.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java?rev=986529&r1=986528&r2=986529&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 Tue Aug 17 23:48:42 2010
@@ -65,6 +65,7 @@ public abstract class AbstractResource i
        public static class ResourceResponse
        {
                private Integer errorCode;
+               private String errorMessage;
                private String fileName = null;
                private ContentDisposition contentDisposition = 
ContentDisposition.INLINE;
                private String contentType = null;
@@ -89,11 +90,26 @@ public abstract class AbstractResource i
                 * 
                 * @param errorCode
                 */
-               public void setErrorCode(Integer errorCode)
+               public void setError(Integer errorCode)
+               {
+                       setError(errorCode, null);
+               }
+
+               /**
+                * Sets the error code and message for resource. If there is an 
error code set the data will
+                * not be rendered and the code and message will be sent to 
client.
+                * 
+                * @param errorCode
+                * @param errorMessage
+                *            error message
+                */
+               public void setError(Integer errorCode, String errorMessage)
                {
                        this.errorCode = errorCode;
+                       this.errorMessage = errorMessage;
                }
 
+
                /**
                 * @return error code or <code>null</code>
                 */
@@ -103,6 +119,14 @@ public abstract class AbstractResource i
                }
 
                /**
+                * @return error message or <code>null</code>
+                */
+               public String getErrorMessage()
+               {
+                       return errorMessage;
+               }
+
+               /**
                 * Sets the file name of the resource.
                 * 
                 * @param fileName
@@ -297,7 +321,7 @@ public abstract class AbstractResource i
                 * <p>
                 * It is necessary to set the {...@link WriteCallback} if
                 * {...@link 
#dataNeedsToBeWritten(org.apache.wicket.ng.resource.IResource.Attributes)} 
returns
-                * <code>true</code> and {...@link #setErrorCode(Integer)} has 
not been called.
+                * <code>true</code> and {...@link #setError(Integer)} has not 
been called.
                 * 
                 * @param writeCallback
                 */
@@ -314,7 +338,7 @@ public abstract class AbstractResource i
                {
                        return writeCallback;
                }
-       };
+       }
 
        protected void configureCache(WebRequest request, WebResponse response, 
ResourceResponse data,
                Attributes attributes)
@@ -358,7 +382,7 @@ public abstract class AbstractResource i
                }
                else if (data.getErrorCode() != null)
                {
-                       response.sendError(data.getErrorCode(), null);
+                       response.sendError(data.getErrorCode(), 
data.getErrorMessage());
                }
                else
                {
@@ -486,5 +510,5 @@ public abstract class AbstractResource i
                                throw new WicketRuntimeException(e);
                        }
                }
-       };
-}
+       }
+}
\ No newline at end of file

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java?rev=986529&r1=986528&r2=986529&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
 Tue Aug 17 23:48:42 2010
@@ -81,7 +81,7 @@ public class ResourceStreamResource exte
                                }
                                catch (ResourceStreamNotFoundException e)
                                {
-                                       
data.setErrorCode(HttpServletResponse.SC_NOT_FOUND);
+                                       
data.setError(HttpServletResponse.SC_NOT_FOUND);
                                        close();
                                }
                        }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/SharedResourceReference.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/SharedResourceReference.java?rev=986529&r1=986528&r2=986529&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/SharedResourceReference.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/SharedResourceReference.java
 Tue Aug 17 23:48:42 2010
@@ -60,7 +60,7 @@ public class SharedResourceReference ext
                                protected ResourceResponse 
newResourceResponse(Attributes attributes)
                                {
                                        ResourceResponse res = new 
ResourceResponse();
-                                       
res.setErrorCode(HttpServletResponse.SC_NOT_FOUND);
+                                       
res.setError(HttpServletResponse.SC_NOT_FOUND);
                                        return res;
                                }
                        };


Reply via email to