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