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

Gary Gregory updated CXF-2900:
------------------------------

    Attachment: CXF-2900.diff

Patch with source and tests.

> WSDLValidator through Stax2DOM leaves input streams open which causes input 
> files to be locked.
> -----------------------------------------------------------------------------------------------
>
>                 Key: CXF-2900
>                 URL: https://issues.apache.org/jira/browse/CXF-2900
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.2.9
>         Environment: java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
> Microsoft Windows [Version 6.0.6002]
>            Reporter: Gary Gregory
>            Priority: Blocker
>         Attachments: CXF-2900.diff
>
>
> The WSDLValidator class leaves input stream open. This causes the validated 
> file to be locked and it cannot be deleted, which messes up our software. 
> Only when the Java process exists can the file be reclaimed. It is possible 
> that a GC closes the file when the input stream is found and no longer 
> reachable.
> I am invoking the WSDLValidator class programatically like this:
> {code:java}
>     private static void cxfValidateWsdl(File wsdlFile) throws Exception {
>         CommandInterfaceUtils.commandCommonMain();
>         ToolRunner.runTool(WSDLValidator.class, 
> WSDLValidator.class.getResourceAsStream("wsdlvalidator.xml"), false, new 
> String[] {
>                 "-verbose", wsdlFile.toURI().toString() });
>     }
> {code}
> Down the line, CXF opens but does not close the input file stream in Stax2DOM:
> {code:java}
>     public Document getDocument(URL url) throws ToolException {
>         try {
>             StreamSource src = new StreamSource(url.openStream(), 
> url.toExternalForm());
>             return StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
>         } catch (Exception e) {
>             throw new ToolException(e);
>         }
>     }
> {code}
> This is fixed for all getDocument methods in the attached patch.
> I am not sure how to work around this aside from rebuilding CXF or waiting 
> for 2.2.10. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to