cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CXF-4342) NullPointerException in CachedOutputStream
Date Fri, 25 May 2012 15:49:24 GMT

     [ https://issues.apache.org/jira/browse/CXF-4342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Daniel Kulp resolved CXF-4342.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.3.11
                   2.4.8
                   2.5.4
                   2.6.1
         Assignee: Daniel Kulp


Hope I got this resolved.  Also found a situation where the temp file could be locked and
then not deleted.  
                
> NullPointerException in CachedOutputStream
> ------------------------------------------
>
>                 Key: CXF-4342
>                 URL: https://issues.apache.org/jira/browse/CXF-4342
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.4.2
>            Reporter: Sergey Zhemzhitsky
>            Assignee: Daniel Kulp
>             Fix For: 2.6.1, 2.5.4, 2.4.8, 2.3.11
>
>
> The following error occurs from time to time in the CachedOutputStream
> {code}
> java.lang.NullPointerException
>         at org.apache.cxf.io.CachedOutputStream.maybeDeleteTempFile(CachedOutputStream.java:487)[85:org.apache.cxf.bundle:2.4.2]
>         at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:187)[85:org.apache.cxf.bundle:2.4.2]
>         at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1561)[85:org.apache.cxf.bundle:2.4.2]
>         at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1494)[85:org.apache.cxf.bundle:2.4.2]
>         at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:353)[85:org.apache.cxf.bundle:2.4.2]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_29]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_29]
>         at java.lang.Thread.run(Thread.java:662)[:1.6.0_29]
> {code}
> The problem is in the following method
> {code}
> private void maybeDeleteTempFile(Object stream) {
>     streamList.remove(stream);
>     if (!inmem && tempFile != null && streamList.isEmpty() &&
allowDeleteOfFile) {
>         if (currentStream != null) {
>             try {
>                 currentStream.close();
>                 postClose();
>             } catch (Exception e) {
>                 //ignore
>             }
>         }
>         tempFile.delete();
>         tempFile = null;
>         currentStream = new LoadingByteArrayOutputStream(1024);
>         inmem = true;
>     }
> }
> {code}
> NPE occurs executing the following code *tempFile.delete();*, so we can conclude that
exception is connected with multithreading because before deleting the file there is a check
*tempFile != null*

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message