From b9e383130eb55a62d0f0d2c655e366c4236ae6e2 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 14 Sep 2014 11:48:56 +0000
Subject: [PATCH] i2psnark: Sort themes in config form   Don't return null from
 getThemes()

---
 apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java    | 6 ++++--
 .../java/src/org/klomp/snark/web/I2PSnarkServlet.java       | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index 8ee32d985f..8068e74611 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -600,10 +600,10 @@ public class SnarkManager implements CompleteListener {
 
     /**
      * Get all themes
-     * @return String[] -- Array of all the themes found.
+     * @return String[] -- Array of all the themes found, non-null, unsorted
      */
     public String[] getThemes() {
-            String[] themes = null;
+            String[] themes;
             // "docs/themes/snark/"
             File dir = new File(_context.getBaseDir(), "docs/themes/snark");
             FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } };
@@ -614,6 +614,8 @@ public class SnarkManager implements CompleteListener {
                 for(int i = 0; i < dirnames.length; i++) {
                     themes[i] = dirnames[i].getName();
                 }
+            } else {
+                themes = new String[0];
             }
             // return the map.
             return themes;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 076caced61..086fa4670e 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -2115,6 +2115,7 @@ public class I2PSnarkServlet extends BasicServlet {
         out.write(": <td><select name='theme'>");
         String theme = _manager.getTheme();
         String[] themes = _manager.getThemes();
+        Arrays.sort(themes);
         for(int i = 0; i < themes.length; i++) {
             if(themes[i].equals(theme))
                 out.write("\n<OPTION value=\"" + themes[i] + "\" SELECTED>" + themes[i]);
-- 
GitLab