This is an automated email from the ASF dual-hosted git repository.
matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 4cc1931e18 CSS-Refactoring: Fix NullPointerException from folder/file
renaming
new 71fb2eda10 Merge pull request #6837 from
matthiasblaesing/css_refactoring_exception
4cc1931e18 is described below
commit 4cc1931e182a7c96d168bfc4d924df997bc9f024
Author: Matthias Bläsing <[email protected]>
AuthorDate: Tue Dec 12 21:32:32 2023 +0100
CSS-Refactoring: Fix NullPointerException from folder/file renaming
There are two very different supported refactorings supported in the
CSS context:
1. CSS "internal" refactorings, which are completely rooted and handled
inside the CSS modules (renaming classes, ids, colors, elements)
2. Renaming files/folders
The second category caused NullPointerExceptions because the
refactoring plugin expected a special context object only provided for
the first set of refactorings.
---
.../refactoring/CssRenameRefactoringPlugin.java | 38 +++++++++++++---------
1 file changed, 23 insertions(+), 15 deletions(-)
diff --git
a/ide/css.editor/src/org/netbeans/modules/css/refactoring/CssRenameRefactoringPlugin.java
b/ide/css.editor/src/org/netbeans/modules/css/refactoring/CssRenameRefactoringPlugin.java
index 0a2e3379a1..0d58a64847 100644
---
a/ide/css.editor/src/org/netbeans/modules/css/refactoring/CssRenameRefactoringPlugin.java
+++
b/ide/css.editor/src/org/netbeans/modules/css/refactoring/CssRenameRefactoringPlugin.java
@@ -114,7 +114,19 @@ public class CssRenameRefactoringPlugin implements
RefactoringPlugin {
@Override
public Problem prepare(final RefactoringElementsBag refactoringElements) {
- CssProjectSupport sup =
CssProjectSupport.findFor(context.getFileObject());
+ FileObject fileObject;
+
+ if (context != null) {
+ fileObject = context.getFileObject();
+ } else {
+ fileObject = lookup.lookup(FileObject.class);
+ }
+
+ if (fileObject == null) {
+ return null;
+ }
+
+ CssProjectSupport sup = CssProjectSupport.findFor(fileObject);
if (sup == null) {
return null;
}
@@ -173,20 +185,16 @@ public class CssRenameRefactoringPlugin implements
RefactoringPlugin {
}
- } else {
- FileObject fileObject = lookup.lookup(FileObject.class);
-
- if(fileObject != null && !fileObject.isFolder()) {
- //refactor a file in explorer
- refactorFile(modificationResult, fileObject, index);
- } else if (fileObject != null && fileObject.isFolder()) {
- //refactor a folder in explorer
- refactorFolder(modificationResult, fileObject, index);
- //add folder rename element implementation, there doesn't seem
to a default one
- //like for file rename
- // Disabled RenameFolder as it collides with FileRenamePlugin
see #187635
- // refactoringElements.add(refactoring, new
RenameFolder(folderContext.getFileObject()));
- }
+ } else if (!fileObject.isFolder()) {
+ //refactor a file in explorer
+ refactorFile(modificationResult, fileObject, index);
+ } else if (fileObject.isFolder()) {
+ //refactor a folder in explorer
+ refactorFolder(modificationResult, fileObject, index);
+ //add folder rename element implementation, there doesn't seem to
a default one
+ //like for file rename
+ // Disabled RenameFolder as it collides with FileRenamePlugin see
#187635
+ // refactoringElements.add(refactoring, new
RenameFolder(folderContext.getFileObject()));
}
//commit the transaction and add the differences to the result
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists