Uploaded image for project: 'PicketLink'
  1. PicketLink
  2. PLINK-67

JAXP Factories should be cached to increase performance

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • PLINK_2.7.0.Beta2
    • None
    • SAML
    • 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
      

            psilva@redhat.com Pedro Igor Craveiro
            rh-ee-klape Kyle Lape
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: