Skip to content

Commit 67901f2

Browse files
Merge branch '4.2.2-develop' of github.com:magento/magento2-phpstorm-plugin into 654-fix-ClassCastException-in-WebApiTypeIndex
2 parents 3596211 + b4fcdce commit 67901f2

File tree

4 files changed

+64
-49
lines changed

4 files changed

+64
-49
lines changed

src/com/magento/idea/magento2plugin/actions/generation/generator/MessageQueueClassGenerator.java

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@
2121
import com.magento.idea.magento2plugin.magento.packages.File;
2222
import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
2323
import com.magento.idea.magento2plugin.util.GetPhpClassByFQN;
24+
import java.util.ArrayList;
25+
import java.util.List;
2426
import java.util.Properties;
2527
import javax.swing.JOptionPane;
2628

2729
public class MessageQueueClassGenerator extends FileGenerator {
30+
2831
private final MessageQueueClassData messageQueueClassDataName;
2932
private final Project project;
3033
private final DirectoryGenerator directoryGenerator;
@@ -33,6 +36,7 @@ public class MessageQueueClassGenerator extends FileGenerator {
3336
private final CommonBundle commonBundle;
3437
private final String moduleName;
3538
private final GetFirstClassOfFile getFirstClassOfFile;
39+
private final List<String> errors = new ArrayList<>();
3640

3741
/**
3842
* Message queue handler constructor.
@@ -68,40 +72,34 @@ public PsiFile generate(final String actionName) {
6872
);
6973

7074
if (handler != null) {
71-
final String errorMessage = this.validatorBundle.message(
75+
errors.add(validatorBundle.message(
7276
"validator.file.alreadyExists",
7377
"Handler Class"
74-
);
75-
JOptionPane.showMessageDialog(
76-
null,
77-
errorMessage,
78-
commonBundle.message("common.error"),
79-
JOptionPane.ERROR_MESSAGE
80-
);
81-
78+
));
8279
return;
8380
}
84-
8581
handler = createHandlerClass(actionName);
8682

8783
if (handler == null) {
88-
final String errorMessage = this.validatorBundle.message(
84+
errors.add(validatorBundle.message(
8985
"validator.file.cantBeCreated",
9086
"Handler Class"
91-
);
92-
JOptionPane.showMessageDialog(
93-
null,
94-
errorMessage,
95-
commonBundle.message("common.error"),
96-
JOptionPane.ERROR_MESSAGE
97-
);
98-
87+
));
9988
return;
10089
}
10190

10291
handlerFiles[0] = handler.getContainingFile();
10392
});
10493

94+
for (final String errorMessage : errors) {
95+
JOptionPane.showMessageDialog(
96+
null,
97+
errorMessage,
98+
commonBundle.message("common.error"),
99+
JOptionPane.ERROR_MESSAGE
100+
);
101+
}
102+
105103
return handlerFiles[0];
106104
}
107105

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleControllerClassGenerator.java

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.Arrays;
3232
import java.util.List;
3333
import java.util.Properties;
34+
import java.util.concurrent.atomic.AtomicBoolean;
3435
import javax.swing.JOptionPane;
3536

3637
public class ModuleControllerClassGenerator extends FileGenerator {
@@ -73,47 +74,49 @@ public ModuleControllerClassGenerator(
7374
@Override
7475
public PsiFile generate(final String actionName) {
7576
final PsiFile[] controllerFiles = new PsiFile[1];
77+
final AtomicBoolean isControllerExists = new AtomicBoolean(false);
78+
final AtomicBoolean isControllerCanNotBeCreated = new AtomicBoolean(false);
7679

7780
WriteCommandAction.runWriteCommandAction(project, () -> {
7881
PhpClass controller = GetPhpClassByFQN.getInstance(project).execute(
7982
getControllerFqn()
8083
);
8184

8285
if (controller != null) {
83-
final String errorMessage = this.validatorBundle.message(
84-
"validator.file.alreadyExists",
85-
"Controller Class"
86-
);
87-
JOptionPane.showMessageDialog(
88-
null,
89-
errorMessage,
90-
commonBundle.message("common.error"),
91-
JOptionPane.ERROR_MESSAGE
92-
);
93-
86+
isControllerExists.set(true);
9487
return;
9588
}
96-
9789
controller = createControllerClass(actionName);
9890

9991
if (controller == null) {
100-
final String errorMessage = this.validatorBundle.message(
101-
"validator.file.cantBeCreated",
102-
"Controller Class"
103-
);
104-
JOptionPane.showMessageDialog(
105-
null,
106-
errorMessage,
107-
commonBundle.message("common.error"),
108-
JOptionPane.ERROR_MESSAGE
109-
);
110-
92+
isControllerCanNotBeCreated.set(true);
11193
return;
11294
}
113-
11495
controllerFiles[0] = controller.getContainingFile();
11596
});
11697

98+
if (isControllerExists.get()) {
99+
JOptionPane.showMessageDialog(
100+
null,
101+
validatorBundle.message(
102+
"validator.file.alreadyExists",
103+
"Controller Class"
104+
),
105+
commonBundle.message("common.error"),
106+
JOptionPane.ERROR_MESSAGE
107+
);
108+
} else if (isControllerCanNotBeCreated.get()) {
109+
JOptionPane.showMessageDialog(
110+
null,
111+
validatorBundle.message(
112+
"validator.file.cantBeCreated",
113+
"Controller Class"
114+
),
115+
commonBundle.message("common.error"),
116+
JOptionPane.ERROR_MESSAGE
117+
);
118+
}
119+
117120
return controllerFiles[0];
118121
}
119122

src/com/magento/idea/magento2plugin/indexes/ModuleIndex.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package com.magento.idea.magento2plugin.indexes;
77

8+
import com.intellij.openapi.project.DumbService;
89
import com.intellij.openapi.project.Project;
910
import com.intellij.openapi.vfs.VfsUtilCore;
1011
import com.intellij.openapi.vfs.VirtualFile;
@@ -118,8 +119,12 @@ private List<String> getNames(
118119
* @return PsiDirectory
119120
*/
120121
public @Nullable PsiDirectory getModuleDirectoryByModuleName(final String moduleName) {
122+
if (DumbService.getInstance(project).isDumb()) {
123+
return null;
124+
}
121125
final FileBasedIndex index = FileBasedIndex
122126
.getInstance();
127+
123128
final Collection<VirtualFile> files = index.getContainingFiles(
124129
ModuleNameIndex.KEY,
125130
moduleName,

src/com/magento/idea/magento2plugin/project/diagnostic/github/GitHubNewIssueBodyBuilderUtil.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,22 @@ public static String buildNewBugReportBody(
5151
if (encode(stackTrace).length() <= maxAllowedStackTraceLength) {
5252
return buildTemplate(project, bugDescription, stackTrace);
5353
}
54+
boolean isFound = false;
55+
int step = 1;
56+
String encodedCutStackTrace = "";
57+
58+
while (!isFound) {
59+
final String cutStackTrace = stackTrace.substring(0, maxAllowedStackTraceLength - step);
60+
encodedCutStackTrace = encode(cutStackTrace);
61+
62+
if (encodedCutStackTrace.length() <= maxAllowedStackTraceLength) {
63+
isFound = true;
64+
} else {
65+
step += 10;
66+
}
67+
}
5468

55-
final String cutStackTrace = encode(stackTrace).substring(
56-
0,
57-
maxAllowedStackTraceLength - 1
58-
);
59-
60-
return buildTemplate(project, bugDescription, decode(cutStackTrace));
69+
return buildTemplate(project, bugDescription, decode(encodedCutStackTrace));
6170
}
6271

6372
/**

0 commit comments

Comments
 (0)