Community
Participate
Working Groups
JavaConventions should use IWorkspace validate methods (for various name validation rountines) IWorkspace::validateName IWorkspace::validatePath otherwise, for instance renaming a package 'p' to 'aux' results in the following walkback (on windows) - i left only the top of the start (the jcore part): org.eclipse.jdt.core.JavaModelException[966]: org.eclipse.core.internal.resources.ResourceException: aux is a reserved device name on this platform. at org.eclipse.core.internal.resources.Resource.checkValidPath (Resource.java:240) at org.eclipse.core.internal.resources.Folder.create(Folder.java:42) at org.eclipse.jdt.internal.core.JavaModelOperation.createFolder (JavaModelOperation.java:186) at org.eclipse.jdt.internal.core.CopyResourceElementsOperation.createNeededPackageF ragments(CopyResourceElementsOperation.java:133) at org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processPackageFragme ntResource(CopyResourceElementsOperation.java:305) at org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement (CopyResourceElementsOperation.java:269) at org.eclipse.jdt.internal.core.MultiOperation.processElements (MultiOperation.java:182) at org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements (CopyResourceElementsOperation.java:283) at org.eclipse.jdt.internal.core.MultiOperation.executeOperation (MultiOperation.java:86) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:257) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:454) at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1186) at org.eclipse.jdt.internal.core.JavaModelManager.runOperation (JavaModelManager.java:915) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:512) at org.eclipse.jdt.internal.core.JavaModel.rename(JavaModel.java:467) at org.eclipse.jdt.internal.core.PackageFragment.rename (PackageFragment.java:289) (...)
Good suggestion.
The following JavaConvention methods now use the IWorkspace.validate methods: validateClassFileName(String) validateCompilationUnitName(String) validateJavaTypeName(String) (type name has to be valid so that the .class file will be valid) validatePackageName(String) (each segment must be a valid folder name)
*** Bug 5341 has been marked as a duplicate of this bug. ***