mrglavas    2004/09/29 15:08:46

  Modified:    java/src/org/apache/xerces/xinclude XIncludeTextReader.java
               java/src/org/apache/xerces/impl XMLEntityManager.java
  Log:
  Call setInstanceFollowRedirects by reflection since this

  method doesn't exist in some earlier JDKs.
  
  Revision  Changes    Path
  1.13      +5 -2      
xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeTextReader.java
  
  Index: XIncludeTextReader.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeTextReader.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XIncludeTextReader.java   29 Sep 2004 20:23:58 -0000      1.12
  +++ XIncludeTextReader.java   29 Sep 2004 22:08:45 -0000      1.13
  @@ -135,7 +135,10 @@
                       }
                       
                       // set preference for redirection
  -                    
urlConnection.setInstanceFollowRedirects(httpInputSource.getFollowHTTPRedirects());
  +                    boolean followRedirects = 
httpInputSource.getFollowHTTPRedirects();
  +                    if (!followRedirects) {
  +                        XMLEntityManager.setInstanceFollowRedirects(urlConnection, 
followRedirects);
  +                    }
                   }
                   
                   // Wrap the InputStream so that it is possible to rewind it.
  
  
  
  1.88      +18 -2     xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java
  
  Index: XMLEntityManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- XMLEntityManager.java     29 Sep 2004 20:23:58 -0000      1.87
  +++ XMLEntityManager.java     29 Sep 2004 22:08:45 -0000      1.88
  @@ -16,6 +16,7 @@
   
   package org.apache.xerces.impl;
   
  +import java.lang.reflect.Method;
   import java.io.IOException;
   import java.io.InputStream;
   import java.io.InputStreamReader;
  @@ -946,7 +947,9 @@
                           
                           // set preference for redirection
                           followRedirects = httpInputSource.getFollowHTTPRedirects();
  -                        urlConnection.setInstanceFollowRedirects(followRedirects);
  +                        if (!followRedirects) {
  +                            setInstanceFollowRedirects(urlConnection, 
followRedirects);
  +                        }
                       }
                       
                       stream = connect.getInputStream();
  @@ -1722,6 +1725,19 @@
           // if any exception is thrown, it'll get thrown to the caller.
           
       } // expandSystemId0(String,String):String
  +    
  +    /**
  +     * Attempt to set whether redirects will be followed for an 
<code>HttpURLConnection</code>.
  +     * This may fail on earlier JDKs which do not support setting this preference.
  +     */
  +    public static void setInstanceFollowRedirects(HttpURLConnection urlCon, boolean 
followRedirects) {
  +        try {
  +            Method method = 
HttpURLConnection.class.getMethod("setInstanceFollowRedirects", new Class[] 
{Boolean.TYPE});
  +            method.invoke(urlCon, new Object[] {followRedirects ? Boolean.TRUE : 
Boolean.FALSE});
  +        }
  +        // setInstanceFollowRedirects doesn't exist.
  +        catch (Exception exc) {}
  +    }
   
       //
       // Protected methods
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to