Bug 52041 - java.io.FileNotFoundException: /tmp/poifiles/poi-ooxml-801119811.tmp (No such file or directory)
Summary: java.io.FileNotFoundException: /tmp/poifiles/poi-ooxml-801119811.tmp (No such...
Status: RESOLVED INVALID
Alias: None
Product: POI
Classification: Unclassified
Component: XSSF (show other bugs)
Version: unspecified
Hardware: PC Linux
: P2 critical (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-17 07:39 UTC by sundar
Modified: 2012-01-24 19:54 UTC (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sundar 2011-10-17 07:39:48 UTC
2011-10-13/10:03:21.115/EDT [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] ERROR [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)']: DONE Writing batch to DB

2011-10-13/10:03:21.130/EDT [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] ERROR [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)']: java.io.FileNotFoundException: /tmp/poifiles/poi-ooxml-801119811.tmp (No such file or directory)

       at java.io.FileOutputStream.open(Native Method)

       at java.io.FileOutputStream.<init>(FileOutputStream.java:179)

       at java.io.FileOutputStream.<init>(FileOutputStream.java:131)

       at org.apache.poi.util.PackageHelper.open(PackageHelper.java:49)

       at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:176)

       at com.verizon.vsii.service.fileservice.FileSvchelper.processXLSXInputStream(FileSvchelper.java:1240)

       at com.verizon.vsii.service.fileservice.FileSvchelper.processBlob(FileSvchelper.java:349)

       at fileprocessor.FileSvc.processBlob(FileSvc.java:84)

       at sun.reflect.GeneratedMethodAccessor531.invoke(Unknown Source)

       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

       at java.lang.reflect.Method.invoke(Method.java:597)

       at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)

       at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)

       at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)

       at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)

       at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)

       at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)

       at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)

       at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)

       at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)

       at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)

       at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)

       at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)

       at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)

       at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)

       at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)

       at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)

       at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)

       at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

       at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)

       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

       at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)

       at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)

       at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)

       at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

       at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

       at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)

       at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

       at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)

       at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)

       at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

       at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)

       at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)

       at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)

       at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)

       at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)

       at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Comment 1 Nick Burch 2011-10-17 09:17:23 UTC
It looks like you're passing in an InputStream, and something in your weblogic environment is preventing POI turning that into a temp file

You should either pass a File directly to POI (rather than an InputStream), or fix the temp file handling in your weblogic setup
Comment 2 sundar 2011-10-18 10:07:08 UTC
This happens in Linux environment(Production System). This error happens occasionally.pls provide us the solution to fix the problem.Pls provide your inputs on Code level changes, if possible.

Note:

We are working with windows platform(Development Environment).
Comment 3 sundar 2011-10-18 10:29:53 UTC
This happens in Linux environment(Production System). This error happens
occasionally.pls provide us the solution to fix the problem.Pls provide your
inputs on Code level changes, if possible.

Is it possible to replicate the same error in our development environment?
And moreover , in Production Environment this error is happenning occasionally.
Once we restart our application in production environment, then it is working fine.

As per your earlier reply , 

1)if weblogic server is prohibiting the POI API in creating the temp file, then it must prohibit everytime. But for us ,only on few occasion , we are getting this Exception. 

2) We can not pass File object to XSSFWorkbook API . It accepts only InputStream

    Please provide us a solution solve this  Production issue.

Note:
We are working with windows platform(Development Environment).
Comment 4 Nick Burch 2011-10-18 10:34:57 UTC
(In reply to comment #3)
> 2) We can not pass File object to XSSFWorkbook API . It accepts only
> InputStream

It accepts an OPCPackage, which can be created from a File


>     Please provide us a solution solve this  Production issue.

You should probably talk to someone you have a support agreement with for your proprietary platform
Comment 5 sundar 2011-10-19 06:14:18 UTC
Thank You Nick, we have created a OPCPackage object, passed that as an parameter to OpenorCreate method in XSSFWorkbook class, thus we have solved the issue.

But we are not able to generate the exception again, so that is not yet tested.
Comment 6 sundar 2012-01-20 16:21:14 UTC
Hi Nick,
       I came to know that "because of default System temp folder's(C:\DOCUME~1\v412393\LOCALS~1\Temp) privilages, the 2nd user is getting this exception" so I have changed the System property for java.io.tmpdir to a comman drive space (c:\temp). Can u pls suggest me in this.
Comment 7 sundar 2012-01-23 07:31:14 UTC
(In reply to comment #6)
> Hi Nick,
>        I came to know that "because of default System temp
> folder's(C:\DOCUME~1\v412393\LOCALS~1\Temp) privilages, the 2nd user is getting
> this exception(FILE NOT FOUND) in LINUX environment, so I have changed the System property for java.io.tmpdir to a
> comman drive space (c:\temp). Can u pls suggest me in this.
Comment 8 Nick Burch 2012-01-24 14:55:29 UTC
That's is not a POI issue, that depends entirely on your Java setup
Comment 9 sundar 2012-01-24 15:44:49 UTC
(In reply to comment #8)
> That's is not a POI issue, that depends entirely on your Java setup


Hi Nick,
        Thanks for reply. 
Can you please suggest me what are all the configurations which I have to cross check regarding the Java setup on my LINUX enviroment? 

In one of the blog I saw that POIFILES directory is created during run time under the tmp folder in LINUX.So is there anything to check on the folder path permission level settings?

But as of now we are not getting any PERMISSION DENIED error.

Waiting for your reply .

Thanks.
Comment 10 David Fisher 2012-01-24 19:54:05 UTC
Hi Sundar,

This is no longer a POI question. It is a Java question.

Take a look at http://rationalpi.wordpress.com/2007/01/26/javaiotmpdir-inconsitency/

Perhaps it will help. If not then please seek help elsewhere.

Regards,
Dave