-
Bug
-
Resolution: Done
-
Major
-
None
-
None
Under load, Picketlink spends most of its time loading JAXP factories. Here's an example of PL code loading a new factory:
at java.lang.ClassLoader.loadClass(ClassLoader.java) - waiting to lock <0x00000000add00de8> (a org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at javax.xml.parsers.FactoryFinder.getProviderClass(FactoryFinder.java:111) at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:146) at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:187) at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:123) at org.picketlink.identity.federation.core.saml.v2.util.DocumentUtil.getDocumentBuilderFactory(DocumentUtil.java:525)
Adding these system properties helps, but doesn't completely solve the issue:
-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl -Djavax.xml.datatype.DatatypeFactory=org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl