java.lang.IllegalStateException: The final FOP Factory configuration has already been built

Apache's JIRA Issue Tracker | MH | 2 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    Because of bug FOP-2177 we couldn't upgrade form FOP 1.0 to FOP 1.1. FOP 2.0 has solved this bug (tested with standalone FOP scripts). Now we would like to upgrade our Java code from FOP 1.0 to FOP 2.0. The Upgrading page (https://xmlgraphics.apache.org/fop/2.0/upgrading.html) says "You should encounter very few issues in upgrading from FOP 1.0, except as noted in the following: ...". The truth is completely different: starting by replacing fop.jar, our code gets dozens of compiler errors! Many methods are simply gone: FopFactory.newInstance() FoUserAgent.setBaseURL(String); FopFactory.getFontManager().setFontBaseURL(String) FopFactory.setURIResolver(URIResolver); etc. The javadocs from 1.1 to 2.0 simple changed - no deprecated methods, no hints how to replace old methods. The FOP 2.0 embedding page (https://xmlgraphics.apache.org/fop/2.0/embedding.html) just shows simple examples to start from the ground. I can't find any migration help how to replace old code. E.g. how can I set the font base? FopFactory.getFontManager().setFontBaseURL(String) is gone and I can't find any equivalent code for FOP 2.0! This is a major bug in FOP 2.0 as API changes are not documented to upgrade from FOP 1.x Java API to FOP 2.0! Now I just can search and try and experiment if I get our old code somehow running with all those undocumented API changes. Can you please state a migration documentation for all methods (method signatures) that don't exist anymore? We can't start coding all over again from scratch. Thank you very much!

    Apache's JIRA Issue Tracker | 2 years ago | MH
    java.lang.IllegalStateException: The final FOP Factory configuration has already been built

    Root Cause Analysis

    1. java.lang.IllegalStateException

      The final FOP Factory configuration has already been built

      at org.apache.fop.apps.FopFactoryBuilder$CompletedFopFactoryConfigBuilder.throwIllegalStateException()
    2. Apache FOP
      FopFactoryBuilder.setBaseURI
      1. org.apache.fop.apps.FopFactoryBuilder$CompletedFopFactoryConfigBuilder.throwIllegalStateException(FopFactoryBuilder.java:515)
      2. org.apache.fop.apps.FopFactoryBuilder$CompletedFopFactoryConfigBuilder.setBaseURI(FopFactoryBuilder.java:528)
      3. org.apache.fop.apps.FopFactoryBuilder.setBaseURI(FopFactoryBuilder.java:182)
      3 frames