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 <mblaes...@doppel-helix.eu>
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: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to