[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Re: [Subclipse-dev] subclipse rename bug when just changing the CASE

From: Eugen Paraschiv <hanriseldon_at_gmail.com>
Date: Thu, 26 May 2011 05:47:48 -0700 (PDT)

I am now aware that this is a SVN limitation. Still, Eclipse is case sensitive, and subclipse is an Eclipse plugin, so it's also aware of case. I'm sure a solution can be to detect this situation and do the 2 steps itself, instead of failing like that. At the very least the error message can be more helpful, perhaps with a link to the FAQ detailing the problem. I'm aware that this would involve more work at the plugin level, but this simply sullies the entire experience with Eclipse, taking into consideration that the non-power user wouldn't take the time to see why it fails, but will simply see that something doesn't work.
Any news on this would be welcomed new.
Thanks.
Eugen.

> This is a problem in Subversion itself, especially on case-insensitive
> file systems such as Windows NTFS and OSX HFS+.
>
> http://subversion.apache.org/faq.html#case-change
>
>
>
> On Wed, Apr 20, 2011 at 3:41 PM, Eugen Paraschiv <hanriseldon at gmail dot com> wrote:
> >
> > What steps will reproduce the problem?
> > I'm attempting to rename a Java class from NameDAO to NameDao (just
> > modifying the case); this operation fails with the following exception; it
> > seems that subclipse doesn't see the change in case and simply fails
> > assuming that I'm triggering a rename operation without changing anything.
> > These are the details:
> > Thanks.
> > Eugen.
> >
> >
> > -- Error Details --
> > Date: Wed Apr 20 22:35:44 EEST 2011
> > Message: Problems encountered while moving resources.
> > Severity: Error
> > Product: SpringSource Tool Suite 2.6.0.201103161000-RELEASE
> > (com.springsource.sts.ide)
> > Plugin: org.eclipse.jdt.core
> > Exception Stack Trace:
> > org.eclipse.core.internal.resources.ResourceException: Problems encountered
> > while moving resources.
> > at org.eclipse.core.internal.resources.Resource.move(Resource.java:1609)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:331)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:399)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:163)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:417)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
> > at org.eclipse.jdt.internal.core.JavaModel.rename(JavaModel.java:285)
> > at
> > org.eclipse.jdt.internal.core.CompilationUnit.rename(CompilationUnit.java:1264)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.RenameCompilationUnitChange.doRename(RenameCompilationUnitChange.java:59)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.AbstractJavaElementRenameChange.perform(AbstractJavaElementRenameChange.java:86)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.access$0(DynamicValidationStateChange.java:1)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange$1.run(DynamicValidationStateChange.java:98)
> > at
> > org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.perform(DynamicValidationStateChange.java:101)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
> > at
> > org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> > Contains: org.tigris.subversion.javahl.ClientException: svn: Cannot move
> > path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > org.tigris.subversion.svnclientadapter.SVNClientException:
> > org.tigris.subversion.javahl.ClientException: svn: Cannot move path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.move(AbstractJhlClientAdapter.java:996)
> > at
> > org.tigris.subversion.subclipse.core.resources.SVNMoveDeleteHook.moveFile(SVNMoveDeleteHook.java:150)
> > at
> > org.eclipse.team.internal.core.MoveDeleteManager.moveFile(MoveDeleteManager.java:87)
> > at
> > org.eclipse.core.internal.resources.Resource.unprotectedMove(Resource.java:1966)
> > at org.eclipse.core.internal.resources.Resource.move(Resource.java:1597)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:331)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:399)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:163)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:417)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
> > at org.eclipse.jdt.internal.core.JavaModel.rename(JavaModel.java:285)
> > at
> > org.eclipse.jdt.internal.core.CompilationUnit.rename(CompilationUnit.java:1264)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.RenameCompilationUnitChange.doRename(RenameCompilationUnitChange.java:59)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.AbstractJavaElementRenameChange.perform(AbstractJavaElementRenameChange.java:86)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.access$0(DynamicValidationStateChange.java:1)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange$1.run(DynamicValidationStateChange.java:98)
> > at
> > org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.perform(DynamicValidationStateChange.java:101)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
> > at
> > org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> > Caused by: org.tigris.subversion.javahl.ClientException: svn: Cannot move
> > path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tigris.subversion.javahl.JavaHLObjectFactory.throwException(JavaHLObjectFactory.java:778)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.throwException(SVNClientImpl.java:1850)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:800)
> > at org.tmatesoft.svn.core.javahl.SVNClientImpl.move(SVNClientImpl.java:737)
> > at org.tmatesoft.svn.core.javahl.SVNClientImpl.move(SVNClientImpl.java:728)
> > at
> > org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.move(AbstractJhlClientAdapter.java:993)
> > ... 33 more
> > Caused by: org.tmatesoft.svn.core.SVNException: svn: Cannot move path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.setupCopy(SVNCopyDriver.java:563)
> > at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:307)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:797)
> > ... 36 more
> >
> >
> > -- Error Details --
> > Date: Wed Apr 20 22:35:44 EEST 2011
> > Message: Problems encountered while moving resources.
> > Severity: Error
> > Product: SpringSource Tool Suite 2.6.0.201103161000-RELEASE
> > (com.springsource.sts.ide)
> > Plugin: org.eclipse.core.resources
> >
> > -- Error Details --
> > Date: Wed Apr 20 22:35:44 EEST 2011
> > Message: org.tigris.subversion.javahl.ClientException: svn: Cannot move path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > Severity: Error
> > Product: SpringSource Tool Suite 2.6.0.201103161000-RELEASE
> > (com.springsource.sts.ide)
> > Plugin: org.tigris.subversion.subclipse.core
> > Exception Stack Trace:
> > org.tigris.subversion.svnclientadapter.SVNClientException:
> > org.tigris.subversion.javahl.ClientException: svn: Cannot move path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.move(AbstractJhlClientAdapter.java:996)
> > at
> > org.tigris.subversion.subclipse.core.resources.SVNMoveDeleteHook.moveFile(SVNMoveDeleteHook.java:150)
> > at
> > org.eclipse.team.internal.core.MoveDeleteManager.moveFile(MoveDeleteManager.java:87)
> > at
> > org.eclipse.core.internal.resources.Resource.unprotectedMove(Resource.java:1966)
> > at org.eclipse.core.internal.resources.Resource.move(Resource.java:1597)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:331)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:399)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:163)
> > at
> > org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:417)
> > at
> > org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
> > at org.eclipse.jdt.internal.core.JavaModel.rename(JavaModel.java:285)
> > at
> > org.eclipse.jdt.internal.core.CompilationUnit.rename(CompilationUnit.java:1264)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.RenameCompilationUnitChange.doRename(RenameCompilationUnitChange.java:59)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.AbstractJavaElementRenameChange.perform(AbstractJavaElementRenameChange.java:86)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.access$0(DynamicValidationStateChange.java:1)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange$1.run(DynamicValidationStateChange.java:98)
> > at
> > org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
> > at
> > org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
> > at
> > org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.perform(DynamicValidationStateChange.java:101)
> > at
> > org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
> > at
> > org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
> > at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> > at
> > org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
> > at
> > org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> > Caused by: org.tigris.subversion.javahl.ClientException: svn: Cannot move
> > path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tigris.subversion.javahl.JavaHLObjectFactory.throwException(JavaHLObjectFactory.java:778)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.throwException(SVNClientImpl.java:1850)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:800)
> > at org.tmatesoft.svn.core.javahl.SVNClientImpl.move(SVNClientImpl.java:737)
> > at org.tmatesoft.svn.core.javahl.SVNClientImpl.move(SVNClientImpl.java:728)
> > at
> > org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.move(AbstractJhlClientAdapter.java:993)
> > ... 33 more
> > Caused by: org.tmatesoft.svn.core.SVNException: svn: Cannot move path
> > 'D:\opt\workspaces\onthetown_analysis\timeout\src\main\java\org\timeout\server\address\hibernate\dao\impl\CityHibernateDAO.java'
> > into itself
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
> > at
> > org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.setupCopy(SVNCopyDriver.java:563)
> > at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:307)
> > at
> > org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:797)
> > ... 36 more
> >
> >
> >
>
>
>
> --
> Thanks
>
> Mark Phippard
> http://markphip.blogspot.com/

------------------------------------------------------
http://subclipse.tigris.org/ds/viewMessage.do?dsForumId=1043&dsMessageId=2748917

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_subclipse.tigris.org].
Received on 2011-05-26 14:47:58 CEST

This is an archived mail posted to the Subclipse Dev mailing list.