[ 
https://issues.apache.org/jira/browse/FOP-2189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13557141#comment-13557141
 ] 

Joey Ezekiel commented on FOP-2189:
-----------------------------------

I've checked in the FOP source code. There is a class named FontFileReader that 
is used to read true type fonts.
This class has two constructors as below:

    /**
     * Constructor
     *
     * @param fileName filename to read
     * @throws IOException In case of an I/O problem
     */

    public FontFileReader(String fileName) throws IOException {
        final File f = new File(fileName);
        InputStream in = new java.io.FileInputStream(f);
        try {
            init(in);
        } finally {
            in.close();
        }
    }
 
    /**
    * Constructor
    *
    * @param in InputStream to read from
    * @throws IOException In case of an I/O problem
    */
    public FontFileReader(InputStream in) throws IOException {
        init(in);
    }

As you can see in the second constructor above, the input stream is not 
closed., but in the constructor above that it is explicitly closed.

There is another class called TTFFontLoader that loads the ttf fonts into 
memory, this class uses the second constructor (highlighted) to read the font 
files, so I think that is why the streams are remaining open and must be 
reaching the process wide limit of open file handles and is giving the “Too 
many open files” error.

Can you please look into this?

                
> Apache FOP 1.0 Multithreading Problems - Too many open files err24
> ------------------------------------------------------------------
>
>                 Key: FOP-2189
>                 URL: https://issues.apache.org/jira/browse/FOP-2189
>             Project: Fop
>          Issue Type: Bug
>          Components: pdf
>    Affects Versions: 1.0
>         Environment: HP Unix 
>            Reporter: Joey Ezekiel
>              Labels: Exception, Font", IOException, PDF, error
>
> We use Apache FOP to convert a whole lot of XML's to AFP's and PDF's. Our 
> current load would be around 25k files per run on a HP-UX system. We have 12 
> threads in total that are used to initialize and trigger the FOP conversion 
> in a producer-consumer fashion. Recently there have been multiple failures 
> during conversion and when looked up, we've received generic FOP errors like:
> **ERROR,2460364,FOToPDF_Thread_11,FOP Exception, something.pdf,Failed to 
> resolve font with embed-url './Fonts/arial.ttf'**
> or its an error failing to load the font metrics file although the files are 
> intact with the right permissions. Many other PDF's are generated so this 
> can't be the problem.
> We also wind up with:
> **java.io.FileNotFoundException: /PDF/20130111130002/something.pdf (Too many 
> open files (errno:24))**
> judging by the logs and volume being processed, this looks like an FOP 
> problem. I've read that FOP has had this issue in the past with the font 
> files. There have been instances where Apache has opened each font file 
> multiple times and not closed the handles resulting in a large number of open 
> files. This was supposed to be fixed, but if it still persists, what would be 
> a good and quick solution to this?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to