You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Simon Kitching (JIRA)" <ji...@apache.org> on 2008/02/03 21:33:08 UTC
[jira] Reopened: (VFS-194) Redirect of HTTP url using the header
location
[ https://issues.apache.org/jira/browse/VFS-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Kitching reopened VFS-194:
--------------------------------
Yves, the "fixed" and "resolved" status for an issue is only meant to be set by developers after they have actually changed the code in svn.
When you attach a patch to an issue, you just leave it as "open".
> Redirect of HTTP url using the header location
> ----------------------------------------------
>
> Key: VFS-194
> URL: https://issues.apache.org/jira/browse/VFS-194
> Project: Commons VFS
> Issue Type: Wish
> Environment: Windows XP/Linux/FreeBSD
> Reporter: Yves Zoundi
> Attachments: svn.diff
>
>
> The http provider classes don't test the header location before resolving a file. If the redirection is reported as invalid by commons-httpclient, then the HttpFileObject is not resolved. Here is how to fix it in all the http provider implementation classes.
> int status = 0;//client.executeMethod(method);
> try{
> status = client.executeMethod(method);
> System.out.println("method executed");
> }
> catch(Exception e){
> System.out.println("Exception co");
> try{
> HostConfiguration config = client.getHostConfiguration();
> Header header = method.getResponseHeader("Location");
> System.out.println("Checking header");
> if (header != null) {
>
> String redirectUrl = header.getValue();
> config.setHost(new java.net.URL(redirectUrl).getHost(), config.getPort(), config.getProtocol());
> client.setHostConfiguration(config);
> status = client.executeMethod(method);
>
> }
> }
> catch(Exception err){
> throw new Exception(err);
> }
>
> }
> if ((status >= 300) && (status < 400)) {
> try{
> HostConfiguration config = client.getHostConfiguration();
> Header header = method.getResponseHeader("Location");
> if (header != null) {
>
> String redirectUrl = header.getValue();
> method = new HeadMethod();
> setupMethod(method);
> config.setHost(new java.net.URL(redirectUrl).getHost(), config.getPort(), config.getProtocol());
> client.setHostConfiguration(config);
> status = client.executeMethod(method);
>
> }
> }
> catch(Exception err){
> throw new Exception(err);
> }
> }
> method.releaseConnection();
> if (status == HttpURLConnection.HTTP_OK)
> {
> return FileType.FILE;
> }
> else if (status == HttpURLConnection.HTTP_NOT_FOUND
> || status == HttpURLConnection.HTTP_GONE)
> {
> return FileType.IMAGINARY;
> }
> else
> {
> throw new FileSystemException("vfs.provider.http/head.error", getName());
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.