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

ASF subversion and git services commented on JCLOUDS-473:
---------------------------------------------------------

Commit 9dae3a692ef01e2c42200ef055d2340754f7140d in jclouds's branch 
refs/heads/1.7.x from [~gaul]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=9dae3a6 ]

JCLOUDS-473: Close FileInputStream in Wire.copy

FileBackedOutputStream.asByteSource.getInput returns a FileInputStream
which we do not close.  We later call FileBackedOutputStream.reset
which removes the underlying File.  This fails on Windows which does
not support deleting an open file and leaks resources on other
platforms.  Eagerly close to address this issue.


> "Could not delete" error FileBackedOutputStream
> -----------------------------------------------
>
>                 Key: JCLOUDS-473
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-473
>             Project: jclouds
>          Issue Type: Bug
>    Affects Versions: 1.7.1
>            Reporter: Frank Wilson
>            Assignee: Andrew Gaul
>             Fix For: 1.8.0, 1.7.2
>
>
> Caused by: java.lang.RuntimeException: request: POST 
> https://ec2.ap-southeast-1.amazonaws.com/ HTTP/1.1; cause: 
> java.io.IOException: Could not delete: 
> C:\Users\fwilson\AppData\Local\Temp\FileBackedOutputStream1632985425592583600.tmp
>         at 
> org.jclouds.http.functions.ParseSax.addDetailsAndPropagate(ParseSax.java:172)
>         at 
> org.jclouds.http.functions.ParseSax.addDetailsAndPropagate(ParseSax.java:144)
>         at org.jclouds.http.functions.ParseSax.parse(ParseSax.java:130)
>         at org.jclouds.http.functions.ParseSax.apply(ParseSax.java:84)
>         at org.jclouds.http.functions.ParseSax.apply(ParseSax.java:52)
>         at 
> org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:93)
>         at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:76)
>         at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:47)
>         at 
> org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
>         at 
> com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:79)
>         at com.sun.proxy.$Proxy56.describeImagesInRegion(Unknown Source)
>         at 
> org.jclouds.ec2.compute.strategy.DescribeImagesParallel$1$1.call(DescribeImagesParallel.java:77)
>         at 
> org.jclouds.ec2.compute.strategy.DescribeImagesParallel$1$1.call(DescribeImagesParallel.java:74)
>         ... 4 more
> Caused by: java.io.IOException: Could not delete: 
> C:\Users\fwilson\AppData\Local\Temp\FileBackedOutputStream1632985425592583600.tmp
>         at 
> com.google.common.io.FileBackedOutputStream.reset(FileBackedOutputStream.java:174)
>         at org.jclouds.logging.internal.Wire$1.close(Wire.java:102)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.close(Unknown
>  Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.close(Unknown Source)
>         at com.sun.xml.internal.stream.Entity$ScannedEntity.close(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDriver.next(Unknown
>  Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>  Source)
>         at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>         at 
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
>  Source)
>         at org.jclouds.http.functions.ParseSax.doParse(ParseSax.java:139)
>         at org.jclouds.http.functions.ParseSax.parse(ParseSax.java:128)
>         ... 14 more
> Downstream issue: https://issues.apache.org/jira/browse/WHIRR-759
> Platform: Windows 7
> I can seem to delete the offending file manually, as the same user so I am 
> not sure why Jclouds cant do it.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to