Maciej Zerkowski created FOP-2561:
-------------------------------------

             Summary: Multithreaded FOP conserve memory failure
                 Key: FOP-2561
                 URL: https://issues.apache.org/jira/browse/FOP-2561
             Project: FOP
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Maciej Zerkowski
            Priority: Critical


Hi Guys,

I'm dealing with really large data so using conserve memory flag as below 
{code}
foUserAgent.setConserveMemoryPolicy(true);
{code}

But it seems that in multithreaded mode all of the threads use the same default 
location set by the resolver:
{code}
CachedRenderPagesModel.class:  tempBaseURI = TEMP_URI_GENERATOR.generate();

So I can see in the logs:
...
Delegating to default resolver for uri: tmp:/fop-page-873.ser
...
{code}

But in multithreaded configuration I'm getting the below exception:

{code}
13:59:53.334 [task-scheduler-4] ERROR org.apache.fop.apps.FOUserAgent- Error 
while serializing page 4. Reason: java.io.IOException: 
/tmp/fop-page-3.ser2704106194054979958.fop.tmp has been already created for 
/fop-page-3.ser
java.io.IOException: /tmp/fop-page-3.ser2704106194054979958.fop.tmp has been 
already created for /fop-page-3.ser
        at 
org.apache.fop.apps.io.ResourceResolverFactory$DefaultTempResourceResolver.createTempFile(ResourceResolverFactory.java:187)
 ~[fop-2.0.jar!/:na]
        at 
org.apache.fop.apps.io.ResourceResolverFactory$DefaultTempResourceResolver.getOutputStream(ResourceResolverFactory.java:199)
 ~[fop-2.0.jar!/:na]
        at 
org.apache.fop.apps.io.ResourceResolverFactory$TempAwareResourceResolver.getOutputStream(ResourceResolverFactory.java:159)
 ~[fop-2.0.jar!/:na]
        at 
org.apache.fop.apps.io.ResourceResolverFactory$DefaultResourceResolver.getOutputStream(ResourceResolverFactory.java:126)
 ~[fop-2.0.jar!/:na]
        at com.xxxxxxx.fop.XXXXXX.getOutputStream(XXXXXX.java:87) 
~[xxx.jar!/:na]
        at 
org.apache.fop.apps.io.InternalResourceResolver.getOutputStream(InternalResourceResolver.java:103)
 ~[fop-2.0.jar!/:na]
        at 
org.apache.fop.area.CachedRenderPagesModel.savePage(CachedRenderPagesModel.java:128)
 [fop-2.0.jar!/:na]
        at 
org.apache.fop.area.CachedRenderPagesModel.checkPreparedPages(CachedRenderPagesModel.java:110)
 [fop-2.0.jar!/:na]
        at 
org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:146) 
[fop-2.0.jar!/:na]
{code}

Can you please advise if there is a way to maybe configure it for multithreaded 
mode - maybe I'm missing something? How to make this tmp files unique...
Or it is rather a bug?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to