archiva-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joak...@apache.org
Subject svn commit: r584986 - /maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
Date Tue, 16 Oct 2007 00:52:44 GMT
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 )



Mime
View raw message