diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUi.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUi.java index 8b01d6f34..49a51408e 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUi.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUi.java @@ -42,6 +42,7 @@ import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.json.Json; import javax.json.JsonObjectBuilder; +import javax.json.JsonWriter; import javax.servlet.ServletContext; import javax.ws.rs.GET; import javax.ws.rs.NotFoundException; @@ -163,15 +164,15 @@ public class AdminUi { final Map data = new HashMap<>(); data.put("adminUiApps", adminUiApps.getAdminUiApps()); - data.put( - "adminUiAppsJson", - adminUiApps - .getAdminUiApps() - .stream() - .map(AdminUiApp::buildJson) - .map(JsonObjectBuilder::build) - .collect(new JsonArrayCollector()) - ); + final StringWriter jsonStrWriter = new StringWriter(); + final JsonWriter jsonWriter = Json.createWriter(jsonStrWriter); + jsonWriter.writeArray(adminUiApps + .getAdminUiApps() + .stream() + .map(AdminUiApp::buildJson) + .map(JsonObjectBuilder::build) + .collect(new JsonArrayCollector())); + data.put("adminUiAppsJson", jsonStrWriter.toString()); data.put("activeApp", app); data.put("currentUser", shiro.getUser().get()); data.put("contextPath", servletContext.getContextPath()); diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUiApp.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUiApp.java index 711c70c51..3c3834b22 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUiApp.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminUiApp.java @@ -109,8 +109,8 @@ public interface AdminUiApp { "cssFilesurls", Json.createArrayBuilder(Arrays.asList(getCssFilesUrls())) ) - .add("iconName", getIconName().orElse(null)) - .add("symbolUrl", getSymbolUrl().orElse(null)); + .add("iconName", getIconName().orElse("")) + .add("symbolUrl", getSymbolUrl().orElse("")); } default JsonObject toJson() {