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

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

Commit 1f08b692cdf2f7c5c78aeade3946958c9c5cf01c in jclouds's branch 
refs/heads/master from [~gaul]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=1f08b69 ]

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
>
> 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