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]