HttpException deploying to webdav --------------------------------- Key: WAGON-108 URL: http://jira.codehaus.org/browse/WAGON-108 Project: wagon Issue Type: Bug Components: wagon-webdav Affects Versions: 1.0-beta-2 Environment: Maven version: 2.0.9 Java version: 1.5.0_12 OS name: "linux" version: "2.6.22" arch: "i386" Family: "unix" Reporter: Steffen Werner
When trying to deploy to our webdav maven-repository the following exception occurs: [...] [INFO] [install:install] [INFO] Installing /home/sw/my-project/target/my-project.jar to /opt/maven/repository/my-project/1.0-SNAPSHOT/my-project-1.0-SNAPSHOT.jar [INFO] [deploy:deploy] altDeploymentRepository = null [INFO] Retrieving previous build number from maven-host Uploading: http://maven-host/maven/my-project/1.0-SNAPSHOT/my-project-1.0-20080416.104050-26.jar org.apache.commons.httpclient.HttpException: Unbuffered entity enclosing request can not be repeated. at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:436) at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2316) at org.apache.commons.httpclient.HttpMethodBase.processRequest(HttpMethodBase.java:2651) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1087) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:643) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:497) at org.apache.maven.wagon.providers.webdav.CorrectedWebdavResource.putMethod(CorrectedWebdavResource.java:156) at org.apache.maven.wagon.providers.webdav.WebDavWagon.put(WebDavWagon.java:287) at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:244) at org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:160) at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:80) at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:162) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: PUT request for: my-project/1.0-SNAPSHOT/my-project-1.0-20080416.104050-26.jar to my-project.jar failed Unbuffered entity enclosing request can not be repeated. [...] The access.log of our maven-repository show the following: [...] maven-host - [16/Apr/2008:12:44:00 +0200] "MKCOL /maven/my-project/1.0-SNAPSHOT/ HTTP/1.1" 401 401 "-" "Jakarta Commons-HttpClient/2.0.2" "-" "-" "-" "-" "-" "-" "112" maven-host devbuild [16/Apr/2008:12:44:00 +0200] "MKCOL /maven/my-project/1.0-SNAPSHOT/ HTTP/1.1" 405 236 "-" "Jakarta Commons-HttpClient/2.0.2" "-" "-" "-" "-" "-" "-" "123" maven-host - [16/Apr/2008:12:44:00 +0200] "PUT /maven/my-project/1.0-SNAPSHOT/my-project-1.0-20080416.104050-26.jar HTTP/1.1" 401 401 "-" "Jakarta Commons-HttpClient/2.0.2" "-" "-" "-" "-" "-" "-" "15853" maven-host devbuild [16/Apr/2008:12:44:00 +0200] "PUT /maven/my-project/1.0-SNAPSHOT/my-project-1.0-20080416.104050-26.jar HTTP/1.1" 201 262 "-" "Jakarta Commons-HttpClient/2.0.2" "-" "-" "-" "-" "-" "-" "9090" [...] This shows that every request without auth-info ist retried with auth-info automatically, but the payload of the PUT request is missing the JAR-content. In some forum I found the hint that the buffering of the content within http-client can be forced via setting the ContentLength to AUTO. So I changed the following: {{ // method.setRequestContentLength( contentLength ); method.setRequestContentLength( PutMethod.CONTENT_LENGTH_AUTO ); }} This resolves the problem, but I don't know if there are some unwanted side-effects. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira