Skip to content

Commit 8fc2a8a

Browse files
authored
Merge pull request #485 from magento/fixed-null-pointer-copy-path
Fixed null pointer on the copy path action
2 parents 39381dc + c8c3611 commit 8fc2a8a

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
66

77
## 3.1.1
88

9+
### Fixed
10+
11+
- Fixed null pointer exception on the copy path action
12+
913
## 3.1.0
1014

1115
### Added

src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java

+17-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.intellij.openapi.project.Project;
1313
import com.intellij.openapi.vfs.VirtualFile;
1414
import com.intellij.psi.PsiDirectory;
15+
import com.intellij.psi.PsiFile;
1516
import com.intellij.psi.PsiManager;
1617
import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil;
1718
import org.jetbrains.annotations.NotNull;
@@ -30,7 +31,8 @@ public class CopyMagentoPath extends CopyPathProvider {
3031
@Override
3132
public void update(@NotNull final AnActionEvent event) {
3233
final VirtualFile virtualFile = event.getData(PlatformDataKeys.VIRTUAL_FILE);
33-
if (virtualFile != null && virtualFile.isDirectory()) {
34+
if (virtualFile != null && virtualFile.isDirectory()
35+
|| virtualFile != null && !PHTML.equals(virtualFile.getExtension())) {
3436
event.getPresentation().setVisible(false);
3537
}
3638
}
@@ -42,11 +44,22 @@ public String getPathToElement(
4244
@Nullable final VirtualFile virtualFile,
4345
@Nullable final Editor editor
4446
) {
45-
final PsiDirectory directory
46-
= PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory();
47+
if (virtualFile == null) {
48+
return null;
49+
}
50+
final PsiFile file
51+
= PsiManager.getInstance(project).findFile(virtualFile);
52+
if (file == null) {
53+
return null;
54+
}
55+
final PsiDirectory directory = file.getContainingDirectory();
56+
final String moduleName = GetModuleNameByDirectoryUtil.execute(directory, project);
57+
if (moduleName == null) {
58+
return null;
59+
}
4760
final StringBuilder fullPath = new StringBuilder(virtualFile.getPath());
4861
final StringBuilder magentoPath
49-
= new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project));
62+
= new StringBuilder(moduleName);
5063
String path = fullPath.toString();
5164

5265
if (PHTML.equals(virtualFile.getExtension())) {

0 commit comments

Comments
 (0)