提交 781570e4 编写于 作者: S serge-rider

#1998 Scripts (or any other) folder create fix

上级 fee2ae73
......@@ -184,8 +184,13 @@ public class ResourceHandlerDescriptor extends AbstractDescriptor
public String getDefaultRoot(IProject project)
{
IEclipsePreferences resourceHandlers = ProjectRegistry.getResourceHandlerPreferences(project, ProjectRegistry.RESOURCE_ROOT_FOLDER_NODE);
return resourceHandlers.get(id, defaultRoot);
try {
IEclipsePreferences resourceHandlers = ProjectRegistry.getResourceHandlerPreferences(project, ProjectRegistry.RESOURCE_ROOT_FOLDER_NODE);
return resourceHandlers.get(id, defaultRoot);
} catch (Exception e) {
log.error("Can't obtain resource handler preferences", e);
return null;
}
}
public List<String> getRoots()
......
......@@ -154,6 +154,9 @@ public class ResourceUtils {
private static void findScriptList(IFolder folder, @Nullable DBPDataSourceContainer container, List<ResourceInfo> result)
{
if (folder == null) {
return;
}
try {
// Search in project scripts
for (IResource resource : folder.members()) {
......
......@@ -363,11 +363,15 @@ public class DBNResource extends DBNNode// implements IContributorResourceAdapte
throws DBException
{
if (resource instanceof IFolder) {
IFolder newFolder = ((IFolder) resource).getFolder(folderName);
if (newFolder.exists()) {
throw new DBException("Folder '" + folderName + "' already exists in '" + resource.getFullPath().toString() + "'");
}
try {
IFolder parentFolder = (IFolder) resource;
if (!parentFolder.exists()) {
parentFolder.create(true, true, new NullProgressMonitor());
}
IFolder newFolder = parentFolder.getFolder(folderName);
if (newFolder.exists()) {
throw new DBException("Folder '" + folderName + "' already exists in '" + resource.getFullPath().toString() + "'");
}
newFolder.create(true, true, new NullProgressMonitor());
} catch (CoreException e) {
throw new DBException("Can't create new folder", e);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册