I just filed https://bugs.eclipse.org/bugs/show_bug.cgi?id=420502

The bug seems to affect "most" jgit operations and is not limited to
one single call/feature. I looked at the jgit codebase and to my
understanding the file handles in question seem to be lacking a
consistent deallocation strategy (but hey,
I have all of 15 minutes experience with JGIT; can I put jgit on my CV ?)

It would appear to me that this bug makes the current jgit unusable on
windows, since random file locking is not a
good thing. Again I may be missing details due to my whopping
experience with jgit.

I suppose we either release with a clear warning that jgit does not
work reliably on windows, or wait for some progress on the issue. I'm
a bit 50/50 on this.

Kristian



2013/10/28 Dennis Lundberg <denn...@apache.org>:
> Thanks a lot Kristian!
>
> Do I understand you correctly that the leak is in the jgit Checkout command?
> If so, there are probably more leaks in there since 9 of our tests
> fail, each testing a different command. Some tests do succeed though.
>
> So how do we proceed with this?
> Submit patches for jgit?
> Release maven-scm as is? If so we need to inform our users about the
> current limitations.
>
>
> I agree that Windows sometimes suck when it comes to handling files,
> but this is a double-edged sword. It does help us find problems like
> these, that might otherwise pop up in a Windows production environment
> after we release.
>
> Also having failing tests for one platform isn't very likely to
> attract new developers from that platform. Turning it into a
> never-ending downward spiral.
>
>
> On Mon, Oct 28, 2013 at 8:22 AM, Kristian Rosenvold
> <kristian.rosenv...@gmail.com> wrote:
>> Finding this kind of leaks with my graciously provided OSS license of
>> YJP is like stealing candy from children
>>
>> export MAVEN_OPTS="-Xms512m -Xmx2084m -XX:MaxPermSize=512m
>> -agentpath:C:/java/yjp-12.0.6/bin/win64/yjpagent.dll=onexit=snapshot"
>> c:/java/apache-maven-3.1.1/bin/mvn $@
>>
>> Run test with forkMode never.
>>
>> Click on the "inspections" tag, run all inspections.
>>
>>
>> A quick run with jprofiler on the surefire fork reveals that the
>> un-closed file is allocated here. This even works on linux :)
>>
>> Kristian
>>
>>
>>
>> java.io.RandomAccessFile.<init>(File, String)
>> org.eclipse.jgit.internal.storage.file.PackFile.doOpen()
>> org.eclipse.jgit.internal.storage.file.PackFile.beginWindowCache()
>> org.eclipse.jgit.internal.storage.file.WindowCache.load(PackFile, long)
>> org.eclipse.jgit.internal.storage.file.WindowCache.getOrLoad(PackFile, long)
>> org.eclipse.jgit.internal.storage.file.WindowCache.get(PackFile, long)
>> org.eclipse.jgit.internal.storage.file.WindowCursor.pin(PackFile, long)
>> org.eclipse.jgit.internal.storage.file.WindowCursor.copy(PackFile,
>> long, byte[], int, int)
>> org.eclipse.jgit.internal.storage.file.PackFile.readFully(long,
>> byte[], int, int, WindowCursor)
>> org.eclipse.jgit.internal.storage.file.PackFile.load(WindowCursor, long)
>> org.eclipse.jgit.internal.storage.file.PackFile.get(WindowCursor, 
>> AnyObjectId)
>> org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject1(WindowCursor,
>> AnyObjectId)
>> org.eclipse.jgit.internal.storage.file.FileObjectDatabase.openObjectImpl1(WindowCursor,
>> AnyObjectId)
>> org.eclipse.jgit.internal.storage.file.FileObjectDatabase.openObject(WindowCursor,
>> AnyObjectId)
>> org.eclipse.jgit.internal.storage.file.WindowCursor.open(AnyObjectId, int)
>> org.eclipse.jgit.lib.ObjectReader.open(AnyObjectId)
>> org.eclipse.jgit.revwalk.RevWalk.parseAny(AnyObjectId)
>> org.eclipse.jgit.revwalk.RevWalk.parseCommit(AnyObjectId)
>> org.eclipse.jgit.api.CloneCommand.parseCommit(Repository, Ref)
>> org.eclipse.jgit.api.CloneCommand.checkout(Repository, FetchResult)
>> org.eclipse.jgit.api.CloneCommand.call()
>> org.apache.maven.scm.provider.git.jgit.command.checkout.JGitCheckOutCommand.executeCheckOutCommand(ScmProviderRepository,
>> ScmFileSet, ScmVersion, boolean)
>> org.apache.maven.scm.command.checkout.AbstractCheckOutCommand.executeCommand(ScmProviderRepository,
>> ScmFileSet, CommandParameters)
>> org.apache.maven.scm.command.AbstractCommand.execute(ScmProviderRepository,
>> ScmFileSet, CommandParameters)
>> org.apache.maven.scm.provider.git.AbstractGitScmProvider.executeCommand(GitCommand,
>> ScmProviderRepository, ScmFileSet, CommandParameters)
>> org.apache.maven.scm.provider.git.AbstractGitScmProvider.checkout(ScmProviderRepository,
>> ScmFileSet, CommandParameters)
>> org.apache.maven.scm.provider.AbstractScmProvider.checkOut(ScmRepository,
>> ScmFileSet, ScmVersion, boolean)
>> org.apache.maven.scm.provider.AbstractScmProvider.checkOut(ScmRepository,
>> ScmFileSet)
>> org.apache.maven.scm.manager.AbstractScmManager.checkOut(ScmRepository,
>> ScmFileSet)
>> org.apache.maven.scm.tck.command.tag.TagCommandTckTest.testTagCommandTest()
>> junit.framework.TestSuite.run(TestResult)
>> org.junit.internal.runners.JUnit38ClassRunner.run(RunNotifier)
>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(Class,
>> RunNotifier, String[])
>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(Class,
>> RunListener, RunNotifier)
>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(Object)
>> java.lang.reflect.Method.invoke(Object, Object[])
>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(Object,
>> Method, Object[])
>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(Object)
>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(Object,
>> ClassLoader, Object, ProviderConfiguration, boolean,
>> StartupConfiguration, boolean)
>> org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(DefaultScanResult)
>> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(ProviderInfo,
>> DefaultScanResult)
>> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(DefaultScanResult)
>> org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute()
>> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(MavenSession,
>> MojoExecution)
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MavenSession,
>> MojoExecution, ProjectIndex, DependencyContext)
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MavenSession,
>> MojoExecution, ProjectIndex, DependencyContext, PhaseRecorder)
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MavenSession,
>> List, ProjectIndex)
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(MavenSession,
>> MavenSession, ReactorContext, MavenProject, TaskSegment)
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(MavenSession,
>> ReactorContext, MavenProject, TaskSegment)
>> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(MavenSession,
>> ReactorContext, ProjectBuildList, List, ReactorBuildStatus)
>> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(MavenSession)
>> org.apache.maven.DefaultMaven.doExecute(MavenExecutionRequest)
>> org.apache.maven.DefaultMaven.execute(MavenExecutionRequest)
>> org.apache.maven.cli.MavenCli.execute(MavenCli$CliRequest)
>> org.apache.maven.cli.MavenCli.doMain(MavenCli$CliRequest)
>> org.apache.maven.cli.MavenCli.main(String[], ClassWorld)
>> java.lang.reflect.Method.invoke(Object, Object[])
>> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(String[])
>> org.codehaus.plexus.classworlds.launcher.Launcher.launch(String[])
>> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(String[])
>> org.codehaus.plexus.classworlds.launcher.Launcher.main(String[])
>>
>> 2013/10/28 Olivier Lamy <ol...@apache.org>:
>>> Windauze one of the biggest pain of my life...
>>> So few people trying to fix that (perso I don't have any windauze env).
>>> And it looks no success.
>>>
>>> So what else now? Not releasing that until we get a fix from jgit.
>>> AFAICS the issue is because after testing we try to delete the local clone.
>>> Is it really something blocker? I mean does our users delete their
>>> local clone after doing a release or using scm api?
>>>
>>>
>>>
>>>
>>> On 26 October 2013 21:04, Robert Scholte <rfscho...@apache.org> wrote:
>>>> Hi Domi,
>>>>
>>>> I've given the tests another spin, but still with the same results.
>>>> I found this thread:
>>>> http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg01959.html
>>>> It seems to expose the same kind of problem.
>>>> I've tried a couple of things, but still couldn't delete during the test.
>>>> Maybe it gives you some inspiration to fix this.
>>>>
>>>> Robert
>>>>
>>>>
>>>> Op Sat, 26 Oct 2013 11:15:59 +0200 schreef domi <d...@fortysix.ch>:
>>>>
>>>>
>>>>> I updated jgit to the newest version - on MAC everything is still OK, but
>>>>> as I don't have windows box, I can't verify it…
>>>>> Robert, can you try it again with this version?
>>>>> /Domi
>>>>>
>>>>>
>>>>> On 25.10.2013, at 23:51, "Robert Scholte" <rfscho...@apache.org> wrote:
>>>>>
>>>>>> I can confirm the same issue on Windows 7.
>>>>>> Not being able to delete a file often means that the outputstream wasn't
>>>>>> closed after writing.
>>>>>> The file seems to be generated by jgit, so I'm wondering if there's
>>>>>> something which can be done by the scm-provider.
>>>>>>
>>>>>> Robert
>>>>>>
>>>>>> Op Fri, 25 Oct 2013 21:03:36 +0200 schreef Dennis Lundberg
>>>>>> <denn...@apache.org>:
>>>>>>
>>>>>>> -1 at the moment.
>>>>>>>
>>>>>>> The unit tests for the new jgit provider fails on Windows.
>>>>>>>
>>>>>>> Here's the surefire summary:
>>>>>>>
>>>>>>> Tests in error:
>>>>>>>  JGitBranchCommandTckTest>BranchCommandTckTest.testBranchCommandTest:77
>>>>>>> ╗ IO Fi...
>>>>>>>
>>>>>>> JGitChangeLogCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO
>>>>>>>
>>>>>>> JGitCheckInCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO ...
>>>>>>>
>>>>>>> JGitCheckInCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO ...
>>>>>>>
>>>>>>> JGitCheckOutCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>>  ╗
>>>>>>> IO
>>>>>>>  JGitDiffCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO Fil...
>>>>>>>
>>>>>>> JGitRemoteInfoCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO
>>>>>>>  JGitStatusCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO F...
>>>>>>>  JGitTagCommandTckTest>ScmTckTestCase.setUp:106->ScmTestCase.setUp:65
>>>>>>> ╗ IO File...
>>>>>>>
>>>>>>> Tests run: 9, Failures: 0, Errors: 9, Skipped: 0
>>>>>>>
>>>>>>>
>>>>>>> Here is the first part of the build output I get:
>>>>>>>
>>>>>>> Running
>>>>>>> org.apache.maven.scm.provider.git.jgit.command.branch.JGitBranchCommandTckTest
>>>>>>> [INFO] cloning [master] to
>>>>>>>
>>>>>>> G:\apache\maven\git\maven-scm\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-jgit\target\scm-test\working-copy
>>>>>>> remote: Counting objects: 1
>>>>>>> remote: Finding sources: 100% (11/11)
>>>>>>> remote: Getting sizes:  100% (10/10)
>>>>>>> remote: Compressing objects: 100% (363/363)
>>>>>>> Receiving objects:      100% (11/11)
>>>>>>> Updating references:    100% (1/1)
>>>>>>> [INFO] fetch url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] push url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] checkout [master] at
>>>>>>>
>>>>>>> G:\apache\maven\git\maven-scm\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-jgit\target\scm-test\working-copy
>>>>>>> [INFO] created [refs/heads/test-branch]
>>>>>>> [INFO] push branch [test-branch] to remote...
>>>>>>> [INFO] fetch url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] push url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] OK - RemoteRefUpdate[remoteName=refs/heads/test-branch, OK,
>>>>>>> (null)...92f139dfec4d1dfb79c3cd2f94e83bf13129668b, fastForward,
>>>>>>> srcRef=refs/heads/test-branch, message=null]
>>>>>>> [INFO] commit done: commit message
>>>>>>> [INFO] push changes to remote... refs/heads/master:refs/heads/master
>>>>>>> [INFO] fetch url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] push url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] OK - RemoteRefUpdate[remoteName=refs/heads/master, OK,
>>>>>>> (null)...dad31f52c2e81b71c2b4954ec9e2bc6dacfe9bef, fastForward,
>>>>>>> srcRef=refs/heads/master, message=null]
>>>>>>> [INFO] cloning [master] to
>>>>>>>
>>>>>>> G:\apache\maven\git\maven-scm\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-jgit\target\scm-test\assertion-copy
>>>>>>> remote: Counting objects: 1
>>>>>>> remote: Finding sources: 100% (14/14)
>>>>>>> remote: Getting sizes:  100% (12/12)
>>>>>>> remote: Compressing objects: 100% (363/363)
>>>>>>> Receiving objects:      100% (14/14)
>>>>>>> Resolving deltas:       100% (1/1)
>>>>>>> Updating references:    100% (2/2)
>>>>>>> [INFO] fetch url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] push url:
>>>>>>>
>>>>>>> file:///G:/apache/maven/git/maven-scm/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/target/scm-test/repository
>>>>>>> [INFO] checkout [master] at
>>>>>>>
>>>>>>> G:\apache\maven\git\maven-scm\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-jgit\target\scm-test\assertion-copy
>>>>>>> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.656
>>>>>>> sec <<< FAILURE! - in
>>>>>>>
>>>>>>> org.apache.maven.scm.provider.git.jgit.command.branch.JGitBranchCommandTckTest
>>>>>>>
>>>>>>> testBranchCommandTest(org.apache.maven.scm.provider.git.jgit.command.branch.JGitBranchCommandTckTest)
>>>>>>> Time elapsed: 5.602 sec  <<< ERROR!
>>>>>>> java.io.IOException: File
>>>>>>>
>>>>>>> G:\apache\maven\git\maven-scm\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-jgit\target\scm-test\assertion-copy\.git\objects\pack\pack-a06d224d673591806e6a66da6d8f27915e18184d.pack
>>>>>>> unable to
>>>>>>> be deleted.
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.forceDelete(FileUtils.java:1413)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.cleanDirectory(FileUtils.java:1673)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.deleteDirectory(FileUtils.java:1618)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.forceDelete(FileUtils.java:1401)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.cleanDirectory(FileUtils.java:1673)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.deleteDirectory(FileUtils.java:1618)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.forceDelete(FileUtils.java:1401)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.cleanDirectory(FileUtils.java:1673)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.deleteDirectory(FileUtils.java:1618)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.forceDelete(FileUtils.java:1401)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.cleanDirectory(FileUtils.java:1673)
>>>>>>>        at
>>>>>>> org.codehaus.plexus.util.FileUtils.deleteDirectory(FileUtils.java:1618)
>>>>>>>        at
>>>>>>> org.apache.maven.scm.tck.command.branch.BranchCommandTckTest.testBranchCommandTest(BranchCommandTckTest.java:77)
>>>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>        at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>        at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>        at java.lang.reflect.Method.invoke(Method.java:592)
>>>>>>>        at junit.framework.TestCase.runTest(TestCase.java:168)
>>>>>>>        at junit.framework.TestCase.runBare(TestCase.java:134)
>>>>>>>        at junit.framework.TestResult$1.protect(TestResult.java:110)
>>>>>>>        at junit.framework.TestResult.runProtected(TestResult.java:128)
>>>>>>>        at junit.framework.TestResult.run(TestResult.java:113)
>>>>>>>        at junit.framework.TestCase.run(TestCase.java:124)
>>>>>>>        at junit.framework.TestSuite.runTest(TestSuite.java:243)
>>>>>>>        at junit.framework.TestSuite.run(TestSuite.java:238)
>>>>>>>        at
>>>>>>> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>>>>>>        at
>>>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>>>>>
>>>>>>> On Thu, Oct 24, 2013 at 5:35 AM, Olivier Lamy <ol...@apache.org> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>> We fixed 9 issues. The new feature is the jgit provider (based on
>>>>>>>> jgit).
>>>>>>>> Details:
>>>>>>>> http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10527&version=18783
>>>>>>>>
>>>>>>>> Staging repository:
>>>>>>>> https://repository.apache.org/content/repositories/maven-027/
>>>>>>>> Staged site: http://maven.apache.org/scm-archives/scm-LATEST/
>>>>>>>>
>>>>>>>> Sources release:
>>>>>>>>
>>>>>>>> https://repository.apache.org/content/repositories/maven-027/org/apache/maven/scm/maven-scm/1.9/maven-scm-1.9-source-release.zip
>>>>>>>>
>>>>>>>> Vote open for 72H
>>>>>>>>
>>>>>>>> [+1]
>>>>>>>> [0]
>>>>>>>> [-1]
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> --
>>>>>>>> Olivier Lamy
>>>>>>>> Ecetera: http://ecetera.com.au
>>>>>>>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>
>>>
>>>
>>>
>>> --
>>> Olivier Lamy
>>> Ecetera: http://ecetera.com.au
>>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>
>
>
> --
> Dennis Lundberg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to