(TRINIDAD-2548)
Missing Client-Side-State-Saving Secrets initialization if trinidad runs in oracle jsf ri
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/StateUtils.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/StateUtils.java
index 5f9c20a..d7e4340 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/StateUtils.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/StateUtils.java
@@ -866,8 +866,17 @@
}
else
{
- throw new NullPointerException("Could not find SecretKey in application scope using key '"
- + INIT_SECRET_KEY_CACHE + "'");
+ if (ctx.getContext() instanceof ServletContext)
+ {
+ // no init in case of oracle ri try to fix it
+ initSecret((ServletContext) ctx.getContext());
+ secretKey = ctx.getApplicationMap().get(INIT_SECRET_KEY_CACHE);
+ }
+ if (secretKey == null)
+ {
+ throw new NullPointerException("Could not find SecretKey in application scope using key '"
+ + INIT_SECRET_KEY_CACHE + "'");
+ }
}
}