title: Spring Security SAML extension java.lang.AbstractMethodError
body: <p>Hi there all I am trying to integrate SAML extension to my project and I got the following exception when building it, I am using <strong>Spring 4.1.5</strong></p>
  
  <blockquote>
    <p>java.lang.AbstractMethodError:
    javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
      at
    org.opensaml.xml.parse.BasicParserPool.setFeatures(BasicParserPool.java:559)
    ~[xmltooling-1.4.1.jar:na]    at
    org.opensaml.xml.parse.BasicParserPool.initializePool(BasicParserPool.java:507)
    ~[xmltooling-1.4.1.jar:na]    at
    org.opensaml.xml.parse.BasicParserPool.(BasicParserPool.java:141)
    ~[xmltooling-1.4.1.jar:na]    at
    org.opensaml.xml.XMLConfigurator.(XMLConfigurator.java:88)
    ~[xmltooling-1.4.1.jar:1.4.1]     at
    org.opensaml.xml.XMLConfigurator.(XMLConfigurator.java:74)
    ~[xmltooling-1.4.1.jar:1.4.1]     at
    org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:199)
    ~[opensaml-2.6.1.jar:1.0.1.RELEASE]   at
    org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:186)
    ~[opensaml-2.6.1.jar:1.0.1.RELEASE]   at
    org.opensaml.DefaultBootstrap.bootstrap(DefaultBootstrap.java:92)
    ~[opensaml-2.6.1.jar:1.0.1.RELEASE]   at
    org.opensaml.PaosBootstrap.bootstrap(PaosBootstrap.java:27)
    ~[spring-security-saml2-core-1.0.1.RELEASE.jar:1.0.1.RELEASE]     at
    org.springframework.security.saml.SAMLBootstrap.postProcessBeanFactory(SAMLBootstrap.java:42)
    ~[spring-security-saml2-core-1.0.1.RELEASE.jar:1.0.1.RELEASE]     at
    org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265)
    ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:177)
    ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
    ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
    ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]    at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]    at
    org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:101)
    [spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]     at
    org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:68)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:86)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:72)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:170)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:110)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:200) [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]    at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:259)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    [junit-4.11.jar:na]   at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:261)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:219)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
    [junit-4.11.jar:na]   at
    org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
    [junit-4.11.jar:na]   at
    org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
    [junit-4.11.jar:na]   at
    org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
    [junit-4.11.jar:na]   at
    org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
    [junit-4.11.jar:na]   at
    org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    [junit-4.11.jar:na]   at
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
    [spring-test-4.1.5.RELEASE.jar:4.1.5.RELEASE]     at
    org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    [surefire-junit4-2.12.4.jar:2.12.4]   at
    org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    [surefire-junit4-2.12.4.jar:2.12.4]   at
    org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    [surefire-junit4-2.12.4.jar:2.12.4]   at
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ~[na:1.8.0_31]    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    ~[na:1.8.0_31]    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ~[na:1.8.0_31]    at java.lang.reflect.Method.invoke(Method.java:483)
    ~[na:1.8.0_31]    at
    org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    [surefire-api-2.12.4.jar:2.12.4]  at
    org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    [surefire-booter-2.12.4.jar:2.12.4]   at
    org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    [surefire-booter-2.12.4.jar:2.12.4]   at
    org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    [surefire-booter-2.12.4.jar:2.12.4]   at
    org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
    [surefire-booter-2.12.4.jar:2.12.4]</p>
  </blockquote>