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

Jonathan Byrne commented on KARAF-3811:
---------------------------------------

For some reason, a lock is being maintained on JAR files after they are 
extracted from the KAR.  Later in the process, the same JAR is copied from the 
Maven repository to the same location where the KAR was extracted.  A 
FileSystemException is thrown because the destination file is locked.  

I can't figure out why the file is still locked and I suspect it may be an 
issue specific to the Windows HotSpot JVM.  Ideally, I think the file should 
not be copied more than once.  However, that change was going to be more 
substantial than I was willing to tackle.  Instead, I changed the download 
method to ignore the FileSystemException exception from a failed overwrite 
caused by a file lock.  This definitely feels hackish to me because it doesn't 
address either of the two root issues.  However, it was fast, it worked, and it 
has a low probability of causing other problems.


> Exception thrown when including the feature "feature" in Maven karaf:assembly 
> goal
> ----------------------------------------------------------------------------------
>
>                 Key: KARAF-3811
>                 URL: https://issues.apache.org/jira/browse/KARAF-3811
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-profile, karaf-tooling
>    Affects Versions: 4.0.0
>            Reporter: Jonathan Byrne
>              Labels: maven
>         Attachments: KARAF-3811.patch, pom.xml
>
>
> The exception below is thrown when you include the feature named "feature" in 
> the Maven configuration. Attached is a POM file that replicates the error. 
> Suppressed: java.nio.file.FileSystemException: 
> C:\dev\code\karaf-test\target\assembly\system\org\apache\karaf\features\org.apache.karaf.features.core\4.0.0\org.apache.karaf.features.core-4.0.0.jar:
>  The process cannot access the file because it is being used by another 
> process.
>         at 
> sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
>         at 
> sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
>         at 
> sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
>         at sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:165)
>         at 
> sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:278)
>         at java.nio.file.Files.copy(Files.java:1274)
>         at 
> org.apache.karaf.profile.assembly.Builder$3.downloaded(Builder.java:969)
>         at 
> org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:133)
>         at 
> org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:127)
>         at 
> org.apache.karaf.features.internal.download.impl.DefaultFuture.notifyListener(DefaultFuture.java:344)
>         at 
> org.apache.karaf.features.internal.download.impl.DefaultFuture.addListener(DefaultFuture.java:293)
>         at 
> org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.download(MavenDownloadManager.java:127)
>         at 
> org.apache.karaf.profile.assembly.Builder.installArtifact(Builder.java:959)
>         at 
> org.apache.karaf.profile.assembly.Builder.bootStage(Builder.java:771)
>         ... 26 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to