diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java index 0aadb3c73..0472b7f68 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java @@ -183,14 +183,17 @@ public long getModificationTime() public void spool( OutputContext outputContext ) throws IOException { - if ( !isCollection() ) + if ( !isCollection()) + { + outputContext.setContentLength( localResource.length() ); + outputContext.setContentType( mimeTypes.getMimeType( localResource.getName() ) ); + } + + if ( !isCollection() && outputContext.hasStream() ) { FileInputStream is = null; try { - outputContext.setContentLength( localResource.length() ); - outputContext.setContentType( mimeTypes.getMimeType( localResource.getName() ) ); - // Write content to stream is = new FileInputStream( localResource ); IOUtils.copy( is, outputContext.getOutputStream() ); @@ -200,7 +203,7 @@ public void spool( OutputContext outputContext ) IOUtils.closeQuietly( is ); } } - else + else if (outputContext.hasStream()) { IndexWriter writer = new IndexWriter( this, localResource, logicalResource ); writer.write( outputContext ); diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java index af671f587..f5ada0b72 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java @@ -94,19 +94,22 @@ public ArchivaVirtualDavResource( List localResources, String logicalResou public void spool( OutputContext outputContext ) throws IOException { - Collections.sort( localResources ); - List localResourceFiles = new ArrayList(); - - for ( File resourceFile : localResources ) + if (outputContext.hasStream()) { - if ( resourceFile.exists() ) - { - localResourceFiles.add( resourceFile ); - } - } + Collections.sort( localResources ); + List localResourceFiles = new ArrayList(); - IndexWriter writer = new IndexWriter( this, localResourceFiles, logicalResource ); - writer.write( outputContext ); + for ( File resourceFile : localResources ) + { + if ( resourceFile.exists() ) + { + localResourceFiles.add( resourceFile ); + } + } + + IndexWriter writer = new IndexWriter( this, localResourceFiles, logicalResource ); + writer.write( outputContext ); + } } public void addLockManager( LockManager arg0 )