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]