This couldn't be fixed in the webdav library, since there are related changes being made there already?

Cheers,
Brett

On 16/10/2007, at 8:52 AM, [EMAIL PROTECTED] wrote:

Author: joakime
Date: Mon Oct 15 17:52:42 2007
New Revision: 584986

URL: http://svn.apache.org/viewvc?rev=584986&view=rev
Log:
[MRM-468] incorrect URL reported from failures in WebDAV
Corrected locally the error message being reported by it.could.webdav


Modified:
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/ org/apache/maven/archiva/web/repository/ProxiedDavServer.java

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/ java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/ archiva-webapp/src/main/java/org/apache/maven/archiva/web/ repository/ProxiedDavServer.java? rev=584986&r1=584985&r2=584986&view=diff ====================================================================== ======== --- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/ org/apache/maven/archiva/web/repository/ProxiedDavServer.java (original) +++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/ org/apache/maven/archiva/web/repository/ProxiedDavServer.java Mon Oct 15 17:52:42 2007
@@ -46,6 +46,7 @@
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
+import java.io.PrintWriter;

 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
@@ -161,7 +162,64 @@

// TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots)

-        davServer.process( request, response );
+        if( resourceExists( request ) )
+        {
+            davServer.process( request, response );
+        }
+        else
+        {
+            respondResourceMissing( request, response );
+        }
+    }
+
+ private void respondResourceMissing( DavServerRequest request, HttpServletResponse response )
+    {
+        response.setStatus( HttpServletResponse.SC_NOT_FOUND );
+
+        try
+        {
+            StringBuffer missingUrl = new StringBuffer();
+ missingUrl.append( request.getRequest().getScheme () ).append( "://" ); + missingUrl.append( request.getRequest().getServerName () ).append( ":" ); + missingUrl.append( request.getRequest().getServerPort () ); + missingUrl.append( request.getRequest().getServletPath () ); + // missingUrl.append( request.getRequest().getPathInfo () );
+
+            String message = "Error 404 Not Found";
+
+ PrintWriter out = new PrintWriter ( response.getOutputStream() );
+
+ response.setContentType( "text/html; charset=\"UTF-8 \"" );
+
+            out.println( "<html>" );
+ out.println( "<head><title>" + message + "</title></ head>" );
+            out.println( "<body>" );
+
+            out.print( "<p><h1>" );
+            out.print( message );
+            out.println( "</h1></p>" );
+
+ out.print( "<p>The following resource does not exist: <a href=\"" );
+            out.print( missingUrl.toString() );
+            out.println( "\">" );
+            out.print( missingUrl.toString() );
+            out.println( "</a></p>" );
+
+            out.println( "</body></html>" );
+
+            out.flush();
+        }
+        catch ( IOException e )
+        {
+            e.printStackTrace();
+        }
+    }
+
+    private boolean resourceExists( DavServerRequest request )
+    {
+        String resource = request.getLogicalResource();
+ File resourceFile = new File( managedRepository.getRepoRoot (), resource );
+        return resourceFile.exists();
     }

     private void fetchContentFromProxies( DavServerRequest request )


--
Brett Porter - [EMAIL PROTECTED]
Blog: http://www.devzuz.org/blogs/bporter/

Reply via email to