Skip to content

Commit 71b303e

Browse files
committed
More review stuff
- Moved `wrap exception in meaning message` logic closer to OpenCypherGremlinDatabase impl. - Cleaned places where wrapping exception is not necessary - Rebase - Misc.
1 parent 8b2769d commit 71b303e

File tree

12 files changed

+52
-78
lines changed

12 files changed

+52
-78
lines changed

database/opencypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/database/opencypher/gremlin/OpenCypherGremlinDatabase.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.neueda.jetbrains.plugin.graphdb.database.api.query.GraphQueryResultRow;
1010
import com.neueda.jetbrains.plugin.graphdb.database.neo4j.bolt.data.Neo4jBoltQueryResultColumn;
1111
import com.neueda.jetbrains.plugin.graphdb.database.neo4j.bolt.data.Neo4jBoltQueryResultRow;
12+
import com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.OpenCypherGremlinException;
1213
import com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.query.OpenCypherGremlinQueryResult;
1314
import org.apache.tinkerpop.gremlin.driver.Client;
1415
import org.apache.tinkerpop.gremlin.driver.Cluster;
@@ -23,10 +24,9 @@
2324
import java.util.concurrent.ExecutionException;
2425
import java.util.stream.Collectors;
2526

26-
import static java.util.Collections.emptyList;
27-
import static java.util.Collections.singletonList;
28-
import static java.util.Collections.singletonMap;
29-
import static java.util.stream.Collectors.toList;
27+
import static com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.ExceptionWrapper.*;
28+
import static java.util.Collections.*;
29+
import static java.util.stream.Collectors.*;
3030

3131
/**
3232
* Communicates with TinkerPop database by translating Cypher to Gremlin
@@ -99,7 +99,8 @@ public GraphQueryResult execute(String query, Map<String, Object> statementParam
9999
if (query.toUpperCase().startsWith("EXPLAIN")) {
100100
return new OpenCypherGremlinQueryResult(0, emptyList(), emptyList(), emptyList(), emptyList());
101101
} else {
102-
throw e;
102+
String exceptionMessage = wrapExceptionInMeaningMessage(e);
103+
throw new OpenCypherGremlinException(exceptionMessage, e);
103104
}
104105
}
105106
}

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/util/ExceptionErrorMessages.java renamed to database/opencypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/database/opencypher/gremlin/exceptions/ExceptionErrorMessages.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.util;
1+
package com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions;
22

33
public enum ExceptionErrorMessages {
44
ERROR_OCCURRED("Error occurred."),

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/util/ExceptionWrapper.java renamed to database/opencypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/database/opencypher/gremlin/exceptions/ExceptionWrapper.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.util;
1+
package com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions;
2+
3+
import org.apache.tinkerpop.gremlin.driver.exception.ConnectionException;
4+
import org.apache.tinkerpop.gremlin.driver.exception.ResponseException;
5+
import org.apache.tinkerpop.gremlin.driver.ser.SerializationException;
26

37
import java.io.PrintWriter;
48
import java.io.StringWriter;
@@ -63,9 +67,6 @@ public static String wrapExceptionInMeaningMessage(Exception exception) {
6367
if (exceptionMessage.contains("ConnectionException")) {
6468
return ExceptionErrorMessages.CONNECTION_EXCEPTION.getDescription();
6569
}
66-
if (exceptionMessage.contains("SyntaxException")) {
67-
return ExceptionErrorMessages.SYNTAX_WARNING.getDescription();
68-
}
6970
if (exceptionMessage.length() > SHORT_STRING_LENGTH) {
7071
return ellipseString(exceptionMessage, SHORT_STRING_LENGTH);
7172
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions;
2+
3+
public class OpenCypherGremlinException extends RuntimeException {
4+
public OpenCypherGremlinException(String message, Throwable cause) {
5+
super(message, cause);
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.neueda.jetbrains.plugin.graphdb.test.integration.opencypher.gremlin;
2+
3+
import com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.ExceptionWrapper;
4+
import org.junit.Test;
5+
6+
import static org.junit.Assert.*;
7+
8+
public class ExceptionWrapperTest {
9+
@Test
10+
public void shouldEllipseString() throws Exception {
11+
String shortString = "DataSource[Cosmos] - metadata refresh failed. Reason: java.util.concurrent.ExecutionException:org.apache.tinkerpop.gremlin.driver.exception.ResponseException:...";
12+
String longString = "DataSource[Cosmos] - metadata refresh failed. Reason: java.util.concurrent.ExecutionException:" +
13+
"org.apache.tinkerpop.gremlin.driver.exception.ResponseException: ActivityId : d0015df6-09d2-48a6-b3ab-32d026213a42";
14+
String truncatedString = ExceptionWrapper.ellipseString(longString, ExceptionWrapper.SHORT_STRING_LENGTH);
15+
assertEquals(shortString, truncatedString);
16+
}
17+
}

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/console/graph/GraphPanelInteractions.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import com.neueda.jetbrains.plugin.graphdb.visualization.VisualizationApi;
1414
import com.neueda.jetbrains.plugin.graphdb.visualization.events.EventType;
1515

16-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.wrapExceptionInMeaningMessage;
17-
1816
public class GraphPanelInteractions {
1917

2018
private final GraphConsoleView graphConsoleView;
@@ -63,7 +61,7 @@ public void postResultReceived(ExecuteQueryPayload payload) {
6361

6462
@Override
6563
public void handleError(ExecuteQueryPayload payload, Exception exception) {
66-
String errorMessage = exception.getMessage() == null ? "Error occurred" : "Error occurred: " + wrapExceptionInMeaningMessage(exception);
64+
String errorMessage = exception.getMessage() == null ? "Error occurred" : "Error occurred: " + exception.getMessage();
6765
payload.getEditor().ifPresent(editor -> HintManager.getInstance().showErrorHint(editor, errorMessage));
6866

6967
visualization.stop();

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/console/log/LogPanel.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import com.intellij.util.messages.MessageBus;
1414
import com.intellij.util.ui.JBUI;
1515
import com.neueda.jetbrains.plugin.graphdb.database.api.query.GraphQueryResult;
16+
import com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.ExceptionErrorMessages;
17+
import com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.OpenCypherGremlinException;
1618
import com.neueda.jetbrains.plugin.graphdb.jetbrains.actions.execute.ExecuteQueryPayload;
1719
import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.DataSourceMetadata;
1820
import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.state.DataSourceApi;
@@ -27,10 +29,9 @@
2729
import java.util.HashMap;
2830
import java.util.Map;
2931

30-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.console.event.QueryParametersRetrievalErrorEvent.PARAMS_ERROR_COMMON_MSG;
31-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.interactions.DataSourceDialog.HEIGHT;
32-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.interactions.DataSourceDialog.THICKNESS;
33-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.*;
32+
import static com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.ExceptionWrapper.*;
33+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.console.event.QueryParametersRetrievalErrorEvent.*;
34+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.interactions.DataSourceDialog.*;
3435

3536
public class LogPanel implements Disposable {
3637
private static final String SHOW_DETAILS = "Details...";
@@ -182,18 +183,20 @@ private void showPopup(String title, String details, Exception exception) {
182183
JTextArea exceptionDetails = new JTextArea();
183184
exceptionDetails.setLineWrap(false);
184185
exceptionDetails.append(details);
185-
JLabel jLabel = new JLabel(wrapExceptionInMeaningMessage(exception), AllIcons.Process.State.RedExcl, JLabel.LEFT);
186+
JLabel jLabel = new JLabel(exception.getMessage(), AllIcons.Process.State.RedExcl, JLabel.LEFT);
186187

187188
JBScrollPane scrollPane = new JBScrollPane(exceptionDetails);
188189
scrollPane.setPreferredSize(new Dimension(-1, HEIGHT));
189190
popupPanel.add(jLabel, BorderLayout.CENTER);
190191
popupPanel.add(scrollPane, BorderLayout.SOUTH);
192+
String gremlinTranslationWarning = exception instanceof OpenCypherGremlinException ? ExceptionErrorMessages.SYNTAX_WARNING.getDescription() : "";
191193

192194
JBPopupFactory.getInstance()
193195
.createComponentPopupBuilder(
194196
popupPanel,
195197
log.getComponent())
196198
.setTitle(title)
199+
.setAdText(gremlinTranslationWarning)
197200
.setResizable(true)
198201
.setMovable(true)
199202
.setCancelButton(new IconButton("Close", AllIcons.Actions.Close, AllIcons.Actions.CloseHovered))

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/console/params/ParametersPanel.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
import com.intellij.openapi.editor.Document;
1010
import com.intellij.openapi.editor.Editor;
1111
import com.intellij.openapi.editor.EditorFactory;
12-
import com.intellij.openapi.fileEditor.FileDocumentManager;
13-
import com.intellij.openapi.fileEditor.FileEditor;
14-
import com.intellij.openapi.fileEditor.FileEditorManager;
15-
import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
16-
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
12+
import com.intellij.openapi.fileEditor.*;
1713
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
1814
import com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil;
1915
import com.intellij.openapi.fileEditor.impl.EditorWindow;
@@ -36,8 +32,7 @@
3632
import javax.swing.*;
3733
import java.awt.*;
3834

39-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.console.event.QueryParametersRetrievalErrorEvent.PARAMS_ERROR_COMMON_MSG;
40-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.wrapExceptionInMeaningMessage;
35+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.console.event.QueryParametersRetrievalErrorEvent.*;
4136

4237
public class ParametersPanel implements ParametersProvider {
4338

@@ -83,7 +78,7 @@ private void initializeUi() {
8378
}
8479
String errorMessage;
8580
if (exception.getMessage() != null) {
86-
errorMessage = String.format("%s: %s", PARAMS_ERROR_COMMON_MSG, wrapExceptionInMeaningMessage(exception));
81+
errorMessage = String.format("%s: %s", PARAMS_ERROR_COMMON_MSG, exception.getMessage());
8782
} else {
8883
errorMessage = PARAMS_ERROR_COMMON_MSG;
8984
}

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/actions/DataSourceAction.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
import javax.swing.*;
1212
import java.io.IOException;
1313

14-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.wrapExceptionInMeaningMessage;
15-
1614
public class DataSourceAction extends AnAction {
1715

1816
private DataSourceApi dataSource;
@@ -29,7 +27,7 @@ public void actionPerformed(AnActionEvent e) {
2927
try {
3028
FileUtil.openFile(project, FileUtil.getDataSourceFile(project, dataSource));
3129
} catch (IOException exception) {
32-
Notifier.error("Open editor error", wrapExceptionInMeaningMessage(exception));
30+
Notifier.error("Open editor error", exception.getMessage());
3331
}
3432
}
3533
}

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/interactions/DataSourceDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import javax.swing.*;
2323
import java.awt.*;
2424

25-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.*;
25+
import static com.neueda.jetbrains.plugin.graphdb.database.opencypher.gremlin.exceptions.ExceptionWrapper.*;
2626

2727
public abstract class DataSourceDialog extends DialogWrapper {
2828
public static final int THICKNESS = 10;
@@ -119,7 +119,7 @@ private void connectionFailed(
119119
hideLoading();
120120

121121
JLabel connectionFailed = new JLabel("Connection failed: " +
122-
wrapExceptionInMeaningMessage(exception), AllIcons.Process.State.RedExcl, JLabel.LEFT);
122+
exception.getMessage(), AllIcons.Process.State.RedExcl, JLabel.LEFT);
123123

124124
JTextArea exceptionCauses = new JTextArea();
125125
exceptionCauses.setLineWrap(false);

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/interactions/DataSourceInteractions.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import java.util.List;
2626
import java.util.stream.Collectors;
2727

28-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.util.ExceptionWrapper.wrapExceptionInMeaningMessage;
29-
3028
public class DataSourceInteractions {
3129

3230
private final DataSourcesView dataSourcesView;
@@ -131,7 +129,7 @@ public void mouseClicked(MouseEvent e) {
131129
try {
132130
FileUtil.openFile(project, FileUtil.getDataSourceFile(project, dataSource));
133131
} catch (IOException exception) {
134-
Notifier.error("Open editor error", wrapExceptionInMeaningMessage(exception));
132+
Notifier.error("Open editor error", exception.getMessage());
135133
}
136134
}
137135
}

ui/jetbrains/src/test/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/helpers/ExceptionWrapperTest.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)