Author: skitching
Date: Mon Mar 13 17:49:09 2006
New Revision: 385707

URL: http://svn.apache.org/viewcvs?rev=385707&view=rev
Log:
Fix incorrect detection of Xerces library. Checking the classpath is not enough,
as multiple XML parsers may be present.

Modified:
    
jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ParserFeatureSetterFactory.java

Modified: 
jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ParserFeatureSetterFactory.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ParserFeatureSetterFactory.java?rev=385707&r1=385706&r2=385707&view=diff
==============================================================================
--- 
jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ParserFeatureSetterFactory.java
 (original)
+++ 
jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ParserFeatureSetterFactory.java
 Mon Mar 13 17:49:09 2006
@@ -37,7 +37,7 @@
  *
  * @since 1.6
  */
-public class ParserFeatureSetterFactory{
+public class ParserFeatureSetterFactory {
 
     /**
      * <code>true</code> is Xerces is used.
@@ -47,10 +47,14 @@
     static {
         try{
             // Use reflection to avoid a build dependency with Xerces.
-            Class versionClass = 
-                            Class.forName("org.apache.xerces.impl.Version");
-            isXercesUsed = true;
-        } catch (Exception ex){
+           //
+           // Note that this does not detect Sun's repackaging of 
+           // Xerces as com.sun.org.apache.xerces; perhaps it should?
+           SAXParserFactory factory = SAXParserFactory.newInstance();
+           if (factory.getClass().getName().startsWith("org.apache.xerces")) {
+                isXercesUsed = true;
+           }
+        } catch (Exception ex) {
             isXercesUsed = false;
         }
     }
@@ -74,4 +78,4 @@
         }
     }
 
-}
\ No newline at end of file
+}



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

Reply via email to