23
23
import com .google .gwt .core .client .GWT ;
24
24
import com .gwtplatform .mvp .client .DelayedBindRegistry ;
25
25
26
+ import java .util .Arrays ;
27
+ import java .util .stream .Collectors ;
28
+
26
29
/**
27
30
* Entry point classes define <code>onModuleLoad()</code>.
28
31
*/
@@ -37,6 +40,23 @@ public void onModuleLoad() {
37
40
// This is required for Gwt-Platform proxy's generator.
38
41
DelayedBindRegistry .bind (ginjector );
39
42
43
+ // GWT.setUncaughtExceptionHandler(e -> {
44
+ // GWT.log(e.getClass().getName());
45
+ //
46
+ // final StringBuilder stringBuilder = new StringBuilder();
47
+ // appendStackTraces(e, stringBuilder);
48
+ //// final String stack;
49
+ //// if (e.getCause() != null && e.getCause().getStackTrace() != null) {
50
+ //// stack = appendStackTraces(e.getCause().getStackTrace());
51
+ //// } else if (e.getStackTrace() != null) {
52
+ //// stack = appendStackTraces(e.getStackTrace());
53
+ //// } else {
54
+ //// stack = "";
55
+ //// }
56
+ //
57
+ // Window.alert("ERROR: " + stringBuilder);
58
+ // });
59
+
40
60
final UserPreferencesManager userPreferencesManager = ginjector .getPreferencesManager ();
41
61
userPreferencesManager .fetch (preferences -> {
42
62
userPreferencesManager .setCurrentPreferences (preferences );
@@ -55,4 +75,27 @@ public void onModuleLoad() {
55
75
// ginjector.getPlaceManager().revealCurrentPlace();
56
76
});
57
77
}
78
+
79
+ private void appendStackTraces (final Throwable e , final StringBuilder stringBuilder ) {
80
+ if (e .getStackTrace () != null ) {
81
+ //noinspection SizeReplaceableByIsEmpty // cos GWT
82
+ if (stringBuilder .length () > 0 ) {
83
+ stringBuilder .append ("\n " );
84
+ }
85
+ stringBuilder .append (e .getClass ().getName ())
86
+ .append (" - " )
87
+ .append (e .getMessage ())
88
+ .append (":\n " );
89
+
90
+ final String stack = Arrays .stream (e .getStackTrace ())
91
+ .map (StackTraceElement ::toString )
92
+ .collect (Collectors .joining ("\n " ));
93
+ stringBuilder .append (stack );
94
+
95
+ final Throwable cause = e .getCause ();
96
+ if (cause != null ) {
97
+ appendStackTraces (cause , stringBuilder );
98
+ }
99
+ }
100
+ }
58
101
}
0 commit comments