From b8437cd247dbb1ff1657a25c7b858ee2d1deeafb Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 28 Jul 2018 19:03:01 +0000
Subject: [PATCH] Console: Catch ISE in get/setAttribute() (ticket #1529)

---
 apps/routerconsole/jsp/certs.jsp          |  2 +-
 apps/routerconsole/jsp/config.jsp         |  2 +-
 apps/routerconsole/jsp/configadvanced.jsp |  2 +-
 apps/routerconsole/jsp/configclients.jsp  |  2 +-
 apps/routerconsole/jsp/configfamily.jsp   |  2 +-
 apps/routerconsole/jsp/confighome.jsp     |  2 +-
 apps/routerconsole/jsp/configi2cp.jsp     |  2 +-
 apps/routerconsole/jsp/configkeyring.jsp  |  2 +-
 apps/routerconsole/jsp/configlogging.jsp  |  2 +-
 apps/routerconsole/jsp/confignav.jsi      |  2 +-
 apps/routerconsole/jsp/confignet.jsp      |  2 +-
 apps/routerconsole/jsp/configpeer.jsp     |  4 ++--
 apps/routerconsole/jsp/configplugins.jsp  |  2 +-
 apps/routerconsole/jsp/configreseed.jsp   |  2 +-
 apps/routerconsole/jsp/configsidebar.jsp  |  2 +-
 apps/routerconsole/jsp/configstats.jsp    |  2 +-
 apps/routerconsole/jsp/configtunnels.jsp  |  2 +-
 apps/routerconsole/jsp/configui.jsp       |  2 +-
 apps/routerconsole/jsp/configupdate.jsp   |  2 +-
 apps/routerconsole/jsp/configwebapps.jsp  |  2 +-
 apps/routerconsole/jsp/console.jsp        |  4 ++--
 apps/routerconsole/jsp/createreseed.jsp   |  7 ++++++-
 apps/routerconsole/jsp/css.jsi            | 13 +++++++++----
 apps/routerconsole/jsp/dns.jsp            |  8 +++++++-
 apps/routerconsole/jsp/dumpprofile.jsp    |  7 ++++++-
 apps/routerconsole/jsp/error500.jsp       |  2 +-
 apps/routerconsole/jsp/events.jsp         |  2 +-
 apps/routerconsole/jsp/formhandler.jsi    |  3 ++-
 apps/routerconsole/jsp/graph.jsp          |  2 +-
 apps/routerconsole/jsp/graphs.jsp         |  2 +-
 apps/routerconsole/jsp/home.jsp           |  8 ++++----
 apps/routerconsole/jsp/i2ptunnelmgr.jsp   |  8 +++++++-
 apps/routerconsole/jsp/jars.jsp           |  2 +-
 apps/routerconsole/jsp/jobs.jsp           |  2 +-
 apps/routerconsole/jsp/logs.jsp           |  2 +-
 apps/routerconsole/jsp/netdb.jsp          |  2 +-
 apps/routerconsole/jsp/news.jsp           |  2 +-
 apps/routerconsole/jsp/oldconsole.jsp     |  2 +-
 apps/routerconsole/jsp/peers.jsp          |  2 +-
 apps/routerconsole/jsp/profiles.jsp       |  2 +-
 apps/routerconsole/jsp/proof.jsp          |  2 +-
 apps/routerconsole/jsp/search.jsp         |  6 +++++-
 apps/routerconsole/jsp/stats.jsp          |  2 +-
 apps/routerconsole/jsp/summary.jsi        |  2 +-
 apps/routerconsole/jsp/summaryframe.jsp   |  2 +-
 apps/routerconsole/jsp/torrents.jsp       |  8 +++++++-
 apps/routerconsole/jsp/tunnels.jsp        |  2 +-
 apps/routerconsole/jsp/viewprofile.jsp    |  2 +-
 apps/routerconsole/jsp/webmail.jsp        |  8 +++++++-
 apps/routerconsole/jsp/xhr1.jsi           |  4 ++--
 apps/routerconsole/jsp/xhr1.jsp           | 15 ++++++++++-----
 51 files changed, 113 insertions(+), 64 deletions(-)

diff --git a/apps/routerconsole/jsp/certs.jsp b/apps/routerconsole/jsp/certs.jsp
index 37d6607b2d..c7658af964 100644
--- a/apps/routerconsole/jsp/certs.jsp
+++ b/apps/routerconsole/jsp/certs.jsp
@@ -11,7 +11,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("Certificates")%></h1>
 <div class="main" id="certs">
 <jsp:useBean class="net.i2p.router.web.helpers.CertHelper" id="certhelper" scope="request" />
-<jsp:setProperty name="certhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="certhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% certhelper.storeWriter(out); %>
 <jsp:getProperty name="certhelper" property="summary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp
index 7b478d7dd4..6aa231ecc4 100644
--- a/apps/routerconsole/jsp/config.jsp
+++ b/apps/routerconsole/jsp/config.jsp
@@ -13,7 +13,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
-<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="nethelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Bandwidth Configuration")%></h1>
 <div class="main" id="config_bandwidth">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp
index 9b2456aff0..5e009544d1 100644
--- a/apps/routerconsole/jsp/configadvanced.jsp
+++ b/apps/routerconsole/jsp/configadvanced.jsp
@@ -13,7 +13,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
-<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="advancedhelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h1><%=intl._t("I2P Advanced Configuration")%></h1>
 <div class="main" id="config_advanced">
diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp
index 4be2a09580..90cc7ca9b3 100644
--- a/apps/routerconsole/jsp/configclients.jsp
+++ b/apps/routerconsole/jsp/configclients.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("I2P Client Configuration")%></h1>
 <div class="main" id="config_clients">
diff --git a/apps/routerconsole/jsp/configfamily.jsp b/apps/routerconsole/jsp/configfamily.jsp
index 534e2dabd6..46b683a52f 100644
--- a/apps/routerconsole/jsp/configfamily.jsp
+++ b/apps/routerconsole/jsp/configfamily.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigFamilyHelper" id="familyHelper" scope="request" />
-<jsp:setProperty name="familyHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="familyHelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Router Family Configuration")%></h1>
 <div class="main" id="config_family">
 <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/confighome.jsp b/apps/routerconsole/jsp/confighome.jsp
index b210e137c2..877a685299 100644
--- a/apps/routerconsole/jsp/confighome.jsp
+++ b/apps/routerconsole/jsp/confighome.jsp
@@ -24,7 +24,7 @@ input.default {
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigHomeHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.HomeHelper" id="homehelper" scope="request" />
-<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="homehelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h3 class="tabletitle"><%=intl._t("Default Home Page")%></h3>
 <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configi2cp.jsp b/apps/routerconsole/jsp/configi2cp.jsp
index 32f279e45a..380aaaa676 100644
--- a/apps/routerconsole/jsp/configi2cp.jsp
+++ b/apps/routerconsole/jsp/configi2cp.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("I2P Client Configuration")%></h1>
 <div class="main" id="config_i2cp">
diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp
index ad3d7fea6f..ccd1009750 100644
--- a/apps/routerconsole/jsp/configkeyring.jsp
+++ b/apps/routerconsole/jsp/configkeyring.jsp
@@ -17,7 +17,7 @@
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHelper" id="keyringhelper" scope="request" />
- <jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="keyringhelper" property="contextId" value="<%=i2pcontextId%>" />
 <p id="keyringhelp" class="infohelp">
  <%=intl._t("The router keyring is used to decrypt encrypted leaseSets.")%>
  <%=intl._t("The keyring may contain keys for local or remote encrypted destinations.")%></p>
diff --git a/apps/routerconsole/jsp/configlogging.jsp b/apps/routerconsole/jsp/configlogging.jsp
index 2758dcc45b..c374032d2a 100644
--- a/apps/routerconsole/jsp/configlogging.jsp
+++ b/apps/routerconsole/jsp/configlogging.jsp
@@ -10,7 +10,7 @@
 <%@include file="summaryajax.jsi" %>
 </head><body onload="initAjax()">
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigLoggingHelper" id="logginghelper" scope="request" />
-<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="logginghelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <%@include file="summary.jsi" %>
 <h1><%=intl._t("I2P Logging Configuration")%></h1>
diff --git a/apps/routerconsole/jsp/confignav.jsi b/apps/routerconsole/jsp/confignav.jsi
index b550f81b3f..776f1e9729 100644
--- a/apps/routerconsole/jsp/confignav.jsi
+++ b/apps/routerconsole/jsp/confignav.jsi
@@ -4,7 +4,7 @@
      */
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNavHelper" id="navHelper" scope="request" />
-<jsp:setProperty name="navHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="navHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% navHelper.storeWriter(out); %>
 <div class="confignav" id="confignav">
 <%
diff --git a/apps/routerconsole/jsp/confignet.jsp b/apps/routerconsole/jsp/confignet.jsp
index bee242c24d..d37277ba8f 100644
--- a/apps/routerconsole/jsp/confignet.jsp
+++ b/apps/routerconsole/jsp/confignet.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
-<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="nethelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Network Configuration")%></h1>
 <div class="main" id="config_network">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp
index 1ef7f54133..b433027e22 100644
--- a/apps/routerconsole/jsp/configpeer.jsp
+++ b/apps/routerconsole/jsp/configpeer.jsp
@@ -14,7 +14,7 @@
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHelper" id="peerhelper" scope="request" />
- <jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="peerhelper" property="contextId" value="<%=i2pcontextId%>" />
  <% String peer = "";
     if (request.getParameter("peer") != null)
         peer = net.i2p.data.DataHelper.stripHTML(request.getParameter("peer"));  // XSS
@@ -63,7 +63,7 @@
  </form>
  <a name="banlist"> </a><h3 id="bannedpeers"><%=intl._t("Banned Peers")%></h3>
  <jsp:useBean class="net.i2p.router.web.helpers.ProfilesHelper" id="profilesHelper" scope="request" />
- <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="profilesHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% profilesHelper.storeWriter(out); %>
  <jsp:getProperty name="profilesHelper" property="banlistSummary" />
  <h3 class="tabletitle"><%=intl._t("Banned IPs")%></h3>
diff --git a/apps/routerconsole/jsp/configplugins.jsp b/apps/routerconsole/jsp/configplugins.jsp
index ae9d8c54fa..27adbd6325 100644
--- a/apps/routerconsole/jsp/configplugins.jsp
+++ b/apps/routerconsole/jsp/configplugins.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("Plugin Configuration")%></h1>
 <div class="main" id="config_plugins">
diff --git a/apps/routerconsole/jsp/configreseed.jsp b/apps/routerconsole/jsp/configreseed.jsp
index af24e47c4a..728d3862bf 100644
--- a/apps/routerconsole/jsp/configreseed.jsp
+++ b/apps/routerconsole/jsp/configreseed.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigReseedHelper" id="reseedHelper" scope="request" />
-<jsp:setProperty name="reseedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="reseedHelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Reseeding Configuration")%></h1>
 <div class="main" id="config_reseed">
 <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp
index 5f01cf1b70..83b10a47e3 100644
--- a/apps/routerconsole/jsp/configsidebar.jsp
+++ b/apps/routerconsole/jsp/configsidebar.jsp
@@ -27,7 +27,7 @@ input.default {
     formhandler.setMovingAction();
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SummaryHelper" id="summaryhelper" scope="request" />
-<jsp:setProperty name="summaryhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="summaryhelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h3 class="tabletitle"><%=intl._t("Refresh Interval")%></h3>
 <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp
index f2d69e3bc7..ab6ddaaebd 100644
--- a/apps/routerconsole/jsp/configstats.jsp
+++ b/apps/routerconsole/jsp/configstats.jsp
@@ -69,7 +69,7 @@ function toggleAll(category)
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHelper" id="statshelper" scope="request" />
- <jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="statshelper" property="contextId" value="<%=i2pcontextId%>" />
  <div class="configure">
  <form id="statsForm" name="statsForm" action="" method="POST">
  <input type="hidden" name="action" value="foo" >
diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp
index 0f418ea063..7673dd202a 100644
--- a/apps/routerconsole/jsp/configtunnels.jsp
+++ b/apps/routerconsole/jsp/configtunnels.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
-<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Tunnel Configuration")%></h1>
 <div class="main" id="config_tunnels">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp
index deb6843c92..3f8b3a6e8f 100644
--- a/apps/routerconsole/jsp/configui.jsp
+++ b/apps/routerconsole/jsp/configui.jsp
@@ -20,7 +20,7 @@ input.default {
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigUIHelper" id="uihelper" scope="request" />
-<jsp:setProperty name="uihelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="uihelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h1><%=uihelper._t("I2P UI Configuration")%></h1>
 <div class="main" id="config_ui">
diff --git a/apps/routerconsole/jsp/configupdate.jsp b/apps/routerconsole/jsp/configupdate.jsp
index d23b4616c2..0401fa017f 100644
--- a/apps/routerconsole/jsp/configupdate.jsp
+++ b/apps/routerconsole/jsp/configupdate.jsp
@@ -18,7 +18,7 @@
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
 <div class="messages">
  <jsp:getProperty name="updatehelper" property="newsStatus" /></div>
  <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configwebapps.jsp b/apps/routerconsole/jsp/configwebapps.jsp
index 45b29fa265..2b563283c2 100644
--- a/apps/routerconsole/jsp/configwebapps.jsp
+++ b/apps/routerconsole/jsp/configwebapps.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("WebApp Configuration")%></h1>
 <div class="main" id="config_webapps">
diff --git a/apps/routerconsole/jsp/console.jsp b/apps/routerconsole/jsp/console.jsp
index c20a825506..aed64557b1 100644
--- a/apps/routerconsole/jsp/console.jsp
+++ b/apps/routerconsole/jsp/console.jsp
@@ -26,7 +26,7 @@
    }  // shouldShowNews()
 %>
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
  <jsp:getProperty name="updatehelper" property="newsStatus" /><br>
 </div><div class="main" id="console">
  <jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />
@@ -72,6 +72,6 @@
  <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/readme.html"); %>
  <jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
  <jsp:setProperty name="contenthelper" property="maxLines" value="300" />
- <jsp:setProperty name="contenthelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="contenthelper" property="contextId" value="<%=i2pcontextId%>" />
  <jsp:getProperty name="contenthelper" property="content" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/createreseed.jsp b/apps/routerconsole/jsp/createreseed.jsp
index 2ee1fc0d3a..9cac5005f8 100644
--- a/apps/routerconsole/jsp/createreseed.jsp
+++ b/apps/routerconsole/jsp/createreseed.jsp
@@ -1,4 +1,9 @@
-<jsp:useBean class="net.i2p.router.web.helpers.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /><%
+<%
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%><jsp:useBean class="net.i2p.router.web.helpers.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=i2pcontextId%>" /><%
 /*
  * USE CAUTION WHEN EDITING
  * Trailing whitespace OR NEWLINE on the last line will cause
diff --git a/apps/routerconsole/jsp/css.jsi b/apps/routerconsole/jsp/css.jsi
index d203be368c..6bdafa20c8 100644
--- a/apps/routerconsole/jsp/css.jsi
+++ b/apps/routerconsole/jsp/css.jsi
@@ -20,13 +20,18 @@
    // the response prior to including this file, so it should be
    // near the top
 
-   if (request.getParameter("i2p.contextId") != null) {
-       session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
-   }
+   String i2pcontextId = request.getParameter("i2p.contextId");
+   try {
+       if (i2pcontextId != null) {
+           session.setAttribute("i2p.contextId", i2pcontextId);
+       } else {
+           i2pcontextId = (String) session.getAttribute("i2p.contextId");
+       }
+   } catch (IllegalStateException ise) {}
 %>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="intl" scope="request" />
-<jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="intl" property="contextId" value="<%=i2pcontextId%>" />
 <link rel="icon" href="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/favicon.ico">
 <%
    response.setHeader("Accept-Ranges", "none");
diff --git a/apps/routerconsole/jsp/dns.jsp b/apps/routerconsole/jsp/dns.jsp
index 03989c5a7d..6a30214242 100644
--- a/apps/routerconsole/jsp/dns.jsp
+++ b/apps/routerconsole/jsp/dns.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/dumpprofile.jsp b/apps/routerconsole/jsp/dumpprofile.jsp
index 8cc9dcda89..9fcdbc2c36 100644
--- a/apps/routerconsole/jsp/dumpprofile.jsp
+++ b/apps/routerconsole/jsp/dumpprofile.jsp
@@ -1,6 +1,11 @@
 <%@page contentType="text/plain"
 %><jsp:useBean id="helper" class="net.i2p.router.web.helpers.StatHelper"
-/><jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>"
+/><%
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2pcontextId");
+   } catch (IllegalStateException ise) {}
+%><jsp:setProperty name="helper" property="contextId" value="<%=i2pcontextId%>"
 /><jsp:setProperty name="helper" property="peer" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter(\"peer\"))%>"
 /><% helper.storeWriter(out);
 %><jsp:getProperty name="helper" property="profile" />
diff --git a/apps/routerconsole/jsp/error500.jsp b/apps/routerconsole/jsp/error500.jsp
index 578071e018..c220c18772 100644
--- a/apps/routerconsole/jsp/error500.jsp
+++ b/apps/routerconsole/jsp/error500.jsp
@@ -65,7 +65,7 @@
 <b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>
 <b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)<br>
  <jsp:useBean class="net.i2p.router.web.helpers.LogsHelper" id="logsHelper" scope="request" />
- <jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="logsHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="logsHelper" property="unavailableCrypto" />
 <b>Wrapper version:</b> <%=System.getProperty("wrapper.version", "none")%><br>
 <b>Server version:</b> <jsp:getProperty name="logsHelper" property="jettyVersion" /><br>
diff --git a/apps/routerconsole/jsp/events.jsp b/apps/routerconsole/jsp/events.jsp
index d92a6991ca..3b867f8900 100644
--- a/apps/routerconsole/jsp/events.jsp
+++ b/apps/routerconsole/jsp/events.jsp
@@ -7,7 +7,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("events")%>
  <jsp:useBean class="net.i2p.router.web.helpers.EventLogHelper" id="eventHelper" scope="request" />
- <jsp:setProperty name="eventHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="eventHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="eventHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/formhandler.jsi b/apps/routerconsole/jsp/formhandler.jsi
index 923158e042..e168cc7373 100644
--- a/apps/routerconsole/jsp/formhandler.jsi
+++ b/apps/routerconsole/jsp/formhandler.jsi
@@ -10,7 +10,8 @@
      */
 
     // This initializes the RouterContext - must be the first thing
-    formhandler.setContextId((String)session.getAttribute("i2p.contextId"));
+    // i2pcontextId set in css.jsi
+    formhandler.setContextId(i2pcontextId);
 
     // Prevents any saves via GET
     formhandler.storeMethod(request.getMethod());
diff --git a/apps/routerconsole/jsp/graph.jsp b/apps/routerconsole/jsp/graph.jsp
index 304b8ac35a..debe4c60ba 100644
--- a/apps/routerconsole/jsp/graph.jsp
+++ b/apps/routerconsole/jsp/graph.jsp
@@ -6,7 +6,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("graphs")%>
  <jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
- <jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="graphHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="graphHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/graphs.jsp b/apps/routerconsole/jsp/graphs.jsp
index 235e33aa20..c24f74bd6e 100644
--- a/apps/routerconsole/jsp/graphs.jsp
+++ b/apps/routerconsole/jsp/graphs.jsp
@@ -7,7 +7,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("graphs")%>
  <jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
- <jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="graphHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="graphHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/home.jsp b/apps/routerconsole/jsp/home.jsp
index 2e561a7b21..6b9bebc837 100644
--- a/apps/routerconsole/jsp/home.jsp
+++ b/apps/routerconsole/jsp/home.jsp
@@ -11,14 +11,14 @@
     String consoleNonce = net.i2p.router.web.CSSHelper.getNonce();
 %>
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
  <jsp:setProperty name="newshelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
  <jsp:setProperty name="newshelper" property="maxLines" value="300" />
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <div class="routersummaryouter">
  <div class="routersummary">
@@ -55,7 +55,7 @@
 
 <div class="main" id="home">
 <jsp:useBean class="net.i2p.router.web.helpers.HomeHelper" id="homehelper" scope="request" />
-<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="homehelper" property="contextId" value="<%=i2pcontextId%>" />
 <% if (homehelper.shouldShowWelcome()) { %>
 <div class="welcome" title="<%=intl._t("Click a flag to select a language. Click 'Configure UI' below to change it later.")%>">
   <div class="langbox" id="langbox">
@@ -109,7 +109,7 @@
         <button type="submit" value="search" class="search"><%=intl._t("Search")%></button>
       </td><td align="left">
         <jsp:useBean class="net.i2p.router.web.helpers.SearchHelper" id="searchhelper" scope="request" />
-        <jsp:setProperty name="searchhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+        <jsp:setProperty name="searchhelper" property="contextId" value="<%=i2pcontextId%>" />
         <jsp:getProperty name="searchhelper" property="selector" />
       </td></tr></table>
     </form>
diff --git a/apps/routerconsole/jsp/i2ptunnelmgr.jsp b/apps/routerconsole/jsp/i2ptunnelmgr.jsp
index eacfa13104..c51b0243b8 100644
--- a/apps/routerconsole/jsp/i2ptunnelmgr.jsp
+++ b/apps/routerconsole/jsp/i2ptunnelmgr.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/jars.jsp b/apps/routerconsole/jsp/jars.jsp
index 2286d975aa..0db353740a 100644
--- a/apps/routerconsole/jsp/jars.jsp
+++ b/apps/routerconsole/jsp/jars.jsp
@@ -11,6 +11,6 @@
 <%@include file="summary.jsi" %><h1>Jar File Dump</h1>
 <div class="main" id="jardump">
 <jsp:useBean class="net.i2p.router.web.helpers.FileDumpHelper" id="dumpHelper" scope="request" />
-<jsp:setProperty name="dumpHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="dumpHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="dumpHelper" property="fileSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/jobs.jsp b/apps/routerconsole/jsp/jobs.jsp
index f9f39371b9..7baa328f79 100644
--- a/apps/routerconsole/jsp/jobs.jsp
+++ b/apps/routerconsole/jsp/jobs.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("I2P Router Job Queue")%></h1>
 <div class="main" id="jobs">
  <jsp:useBean class="net.i2p.router.web.helpers.JobQueueHelper" id="jobQueueHelper" scope="request" />
- <jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% jobQueueHelper.storeWriter(out); %>
  <jsp:getProperty name="jobQueueHelper" property="jobQueueSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/logs.jsp b/apps/routerconsole/jsp/logs.jsp
index bf8c244cca..1b2b84d31c 100644
--- a/apps/routerconsole/jsp/logs.jsp
+++ b/apps/routerconsole/jsp/logs.jsp
@@ -28,7 +28,7 @@
 <tr><td><b>I2P version:</b></td><td><%=net.i2p.router.RouterVersion.FULL_VERSION%></td></tr>
 <tr><td><b>Java version:</b></td><td><%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)</td></tr>
  <jsp:useBean class="net.i2p.router.web.helpers.LogsHelper" id="logsHelper" scope="request" />
- <jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="logsHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="logsHelper" property="unavailableCrypto" />
 <tr><td><b>Wrapper version:</b></td><td><%=System.getProperty("wrapper.version", "none")%></td></tr>
 <tr><td><b>Server version:</b></td><td><jsp:getProperty name="logsHelper" property="jettyVersion" /></td></tr>
diff --git a/apps/routerconsole/jsp/netdb.jsp b/apps/routerconsole/jsp/netdb.jsp
index 46fe94fb86..6c940f615a 100644
--- a/apps/routerconsole/jsp/netdb.jsp
+++ b/apps/routerconsole/jsp/netdb.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Database")%></h1>
 <div class="main" id="netdb">
  <jsp:useBean class="net.i2p.router.web.helpers.NetDbHelper" id="netdbHelper" scope="request" />
- <jsp:setProperty name="netdbHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="netdbHelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     netdbHelper.storeWriter(out);
     if (allowIFrame)
diff --git a/apps/routerconsole/jsp/news.jsp b/apps/routerconsole/jsp/news.jsp
index eb23a67d5d..33c62379da 100644
--- a/apps/routerconsole/jsp/news.jsp
+++ b/apps/routerconsole/jsp/news.jsp
@@ -12,7 +12,7 @@
 <h1><%=intl._t("Latest News")%></h1>
 <div class="main" id="news">
 <jsp:useBean class="net.i2p.router.web.NewsFeedHelper" id="feedHelper" scope="request" />
-<jsp:setProperty name="feedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="feedHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% feedHelper.setLimit(0); %>
 <div id="newspage">
 <jsp:getProperty name="feedHelper" property="entries" />
diff --git a/apps/routerconsole/jsp/oldconsole.jsp b/apps/routerconsole/jsp/oldconsole.jsp
index de6f9a9b8f..1ac2578ad3 100644
--- a/apps/routerconsole/jsp/oldconsole.jsp
+++ b/apps/routerconsole/jsp/oldconsole.jsp
@@ -14,7 +14,7 @@
 </head><body onload="initAjax()">
 <%@include file="summary.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.OldConsoleHelper" id="conhelper" scope="request" />
-<jsp:setProperty name="conhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="conhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% conhelper.storeWriter(out); %>
  <h1>I2P Router &raquo; Old Console</h1>
 <div class="main" id="oldconsole"><p>
diff --git a/apps/routerconsole/jsp/peers.jsp b/apps/routerconsole/jsp/peers.jsp
index bed58cc4c8..2e3ba63e72 100644
--- a/apps/routerconsole/jsp/peers.jsp
+++ b/apps/routerconsole/jsp/peers.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Peers")%></h1>
 <div class="main" id="peers">
  <jsp:useBean class="net.i2p.router.web.helpers.PeerHelper" id="peerHelper" scope="request" />
- <jsp:setProperty name="peerHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="peerHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% peerHelper.storeWriter(out); %>
  <jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
  <jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter(\"sort\") != null ? request.getParameter(\"sort\") : \"\"%>" />
diff --git a/apps/routerconsole/jsp/profiles.jsp b/apps/routerconsole/jsp/profiles.jsp
index 0999e9f96e..eea5cdfe0f 100644
--- a/apps/routerconsole/jsp/profiles.jsp
+++ b/apps/routerconsole/jsp/profiles.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Peer Profiles")%></h1>
 <div class="main" id="profiles"><div class="wideload">
  <jsp:useBean class="net.i2p.router.web.helpers.ProfilesHelper" id="profilesHelper" scope="request" />
- <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="profilesHelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     profilesHelper.storeWriter(out);
     if (allowIFrame)
diff --git a/apps/routerconsole/jsp/proof.jsp b/apps/routerconsole/jsp/proof.jsp
index bf9079cbc3..0c4081f76f 100644
--- a/apps/routerconsole/jsp/proof.jsp
+++ b/apps/routerconsole/jsp/proof.jsp
@@ -11,6 +11,6 @@
 <%@include file="summary.jsi" %><h1>Proof of Ownership</h1>
 <div class="main" id="proof"><p>
 <jsp:useBean class="net.i2p.router.web.helpers.ProofHelper" id="proofHelper" scope="request" />
-<jsp:setProperty name="proofHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="proofHelper" property="contextId" value="<%=i2pcontextId%>" />
 <textarea cols="70" rows="15" wrap="off" readonly="readonly" spellcheck="false"><jsp:getProperty name="proofHelper" property="proof" /></textarea>
 </p></div></body></html>
diff --git a/apps/routerconsole/jsp/search.jsp b/apps/routerconsole/jsp/search.jsp
index 1ef4f658a4..8ce56a8daa 100644
--- a/apps/routerconsole/jsp/search.jsp
+++ b/apps/routerconsole/jsp/search.jsp
@@ -4,9 +4,13 @@
    // http://www.crazysquirrel.com/computing/general/form-encoding.jspx
    if (request.getCharacterEncoding() == null)
        request.setCharacterEncoding("UTF-8");
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SearchHelper" id="searchhelper" scope="request" />
-<jsp:setProperty name="searchhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="searchhelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="searchhelper" property="engine" value="<%=request.getParameter(\"engine\")%>" />
 <jsp:setProperty name="searchhelper" property="query" value="<%=request.getParameter(\"query\")%>" />
 <html><head></head><body><b>
diff --git a/apps/routerconsole/jsp/stats.jsp b/apps/routerconsole/jsp/stats.jsp
index 4bcce96c4c..1e72f75d3c 100644
--- a/apps/routerconsole/jsp/stats.jsp
+++ b/apps/routerconsole/jsp/stats.jsp
@@ -11,7 +11,7 @@
 </head><body onload="initAjax()">
 <%@include file="summary.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.OldConsoleHelper" id="oldhelper" scope="request" />
-<jsp:setProperty name="oldhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="oldhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% oldhelper.storeWriter(out); %>
 <jsp:setProperty name="oldhelper" property="full" value="<%=request.getParameter(\"f\")%>" />
  <h1><%=intl._t("I2P Router Statistics")%></h1>
diff --git a/apps/routerconsole/jsp/summary.jsi b/apps/routerconsole/jsp/summary.jsi
index 9768d95854..e522c1e8ce 100644
--- a/apps/routerconsole/jsp/summary.jsi
+++ b/apps/routerconsole/jsp/summary.jsi
@@ -1,5 +1,5 @@
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File newspath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
diff --git a/apps/routerconsole/jsp/summaryframe.jsp b/apps/routerconsole/jsp/summaryframe.jsp
index 143ddf1b8b..83ea1aa388 100644
--- a/apps/routerconsole/jsp/summaryframe.jsp
+++ b/apps/routerconsole/jsp/summaryframe.jsp
@@ -55,7 +55,7 @@
 %>
 </head><body style="margin: 0;"><div class="routersummary">
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File newspath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
diff --git a/apps/routerconsole/jsp/torrents.jsp b/apps/routerconsole/jsp/torrents.jsp
index 885431765a..d7215ade73 100644
--- a/apps/routerconsole/jsp/torrents.jsp
+++ b/apps/routerconsole/jsp/torrents.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/tunnels.jsp b/apps/routerconsole/jsp/tunnels.jsp
index 1d36aa11b2..9c464e3e16 100644
--- a/apps/routerconsole/jsp/tunnels.jsp
+++ b/apps/routerconsole/jsp/tunnels.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("I2P Tunnel Summary")%></h1>
 <div class="main" id="tunnels">
  <jsp:useBean class="net.i2p.router.web.helpers.TunnelHelper" id="tunnelHelper" scope="request" />
- <jsp:setProperty name="tunnelHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="tunnelHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% tunnelHelper.storeWriter(out); %>
  <jsp:getProperty name="tunnelHelper" property="tunnelSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/viewprofile.jsp b/apps/routerconsole/jsp/viewprofile.jsp
index 0ecf83fc54..ff6fae53b3 100644
--- a/apps/routerconsole/jsp/viewprofile.jsp
+++ b/apps/routerconsole/jsp/viewprofile.jsp
@@ -21,7 +21,7 @@
 
 %>
 <jsp:useBean id="stathelper" class="net.i2p.router.web.helpers.StatHelper" />
-<jsp:setProperty name="stathelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="stathelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="stathelper" property="peer" value="<%=peerB64%>" />
 <% stathelper.storeWriter(out); %>
 <h2><%=intl._t("Profile for peer {0}", peerB64)%></h2>
diff --git a/apps/routerconsole/jsp/webmail.jsp b/apps/routerconsole/jsp/webmail.jsp
index 6cd4b928de..6491e02121 100644
--- a/apps/routerconsole/jsp/webmail.jsp
+++ b/apps/routerconsole/jsp/webmail.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/xhr1.jsi b/apps/routerconsole/jsp/xhr1.jsi
index bc33ab6841..572e497d81 100644
--- a/apps/routerconsole/jsp/xhr1.jsi
+++ b/apps/routerconsole/jsp/xhr1.jsi
@@ -6,7 +6,7 @@
  */
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SummaryHelper" id="helper" scope="request" />
-<jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="helper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="helper" property="action" value="<%=request.getParameter(\"action\")%>" />
 <jsp:setProperty name="helper" property="updateNonce" value="<%=request.getParameter(\"updateNonce\")%>" />
 <jsp:setProperty name="helper" property="consoleNonce" value="<%=request.getParameter(\"consoleNonce\")%>" />
@@ -34,7 +34,7 @@
 %>
 <jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" />
 <jsp:setProperty name="update" property="*" />
-<jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="update" property="contextId" value="<%=i2pcontextId%>" />
 <%
     // moved to java for ease of translation
     helper.renderSummaryBar();
diff --git a/apps/routerconsole/jsp/xhr1.jsp b/apps/routerconsole/jsp/xhr1.jsp
index 06458410b6..b3bde1995c 100644
--- a/apps/routerconsole/jsp/xhr1.jsp
+++ b/apps/routerconsole/jsp/xhr1.jsp
@@ -5,15 +5,20 @@
    if (request.getCharacterEncoding() == null)
        request.setCharacterEncoding("UTF-8");
 
-   if (request.getParameter("i2p.contextId") != null) {
-       session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
-   }
+   String i2pcontextId = request.getParameter("i2p.contextId");
+   try {
+       if (i2pcontextId != null) {
+           session.setAttribute("i2p.contextId", i2pcontextId);
+       } else {
+           i2pcontextId = (String) session.getAttribute("i2p.contextId");
+       }
+   } catch (IllegalStateException ise) {}
    response.setHeader("X-Content-Type-Options", "nosniff");
 %>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="intl" scope="request" />
-<jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="intl" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
-- 
GitLab