xlawrence 2005/12/12 09:28:59 CET
Modified files:
core/src/webapp/jsp/jahia/engines/lock lock.jsp
Log:
avoid NPE in lock engine in case lockinfo is not available
Revision Changes Path
1.5 +26 -13 jahia/core/src/webapp/jsp/jahia/engines/lock/lock.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/jsp/jahia/engines/lock/lock.jsp.diff?r1=1.4&r2=1.5&f=h
Index: lock.jsp
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/webapp/jsp/jahia/engines/lock/lock.jsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- lock.jsp 23 Nov 2005 10:25:41 -0000 1.4
+++ lock.jsp 12 Dec 2005 08:28:59 -0000 1.5
@@ -10,11 +10,16 @@
<%@ taglib uri="JahiaLib" prefix="jahia" %>
<jsp:useBean id="jspSource" class="java.lang.String" scope="request"/>
+<%!
+ private static final org.apache.log4j.Logger logger =
+ org.apache.log4j.Logger.getLogger("jsp.jahia.engines.lock.lock");
+%>
+
<%
final HashMap engineMap = (HashMap)
request.getAttribute("org.jahia.engines.EngineHashMap");
final ParamBean jParams = (ParamBean)
request.getAttribute("org.jahia.params.ParamBean");
- final String engineUrl = (String)engineMap.get("engineUrl");
- final String URLSep = (engineUrl.indexOf("?") == -1) ? "?" : "&" ;
+ final String engineUrl = (String) engineMap.get("engineUrl");
+ final String URLSep = (engineUrl.indexOf("?") == -1) ? "?" : "&";
final String theScreen = (String) engineMap.get("screen");
final boolean showEditMenu = false;
@@ -26,7 +31,7 @@
<script type="text/javascript">
function handleActionChange(what) {
- saveContent();
+ saveContent();
document.mainForm.action = "<%=engineUrl%><%=URLSep%>" + what;
document.mainForm.submit();
}
@@ -91,15 +96,20 @@
<%
if (canDisplayDetails) {
final HashMap lockInfo =
lockRegistry.getInfo(blockingLockKey);
- final JahiaUser jahiaUser = (JahiaUser)
lockInfo.get(LockRegistry.OWNER);
- final Boolean lockStealed = (Boolean)
lockInfo.get(LockRegistry.STEALED);
- final String lockID = (String) lockInfo.get(LockRegistry.ID);
- final long timeout = ((Long)
lockInfo.get(LockRegistry.TIMEOUT)).longValue();
- final long timeRemaining = ((Long)
lockInfo.get(LockRegistry.TIME_REMAINING)).longValue();
- isSameContext =
jParams.getUser().getUserKey().equals(jahiaUser.getUserKey()) &&
- jParams.getSessionID().equals(lockID);
- final boolean isSameUser =
jParams.getUser().getUserKey().equals(jahiaUser.getUserKey());
- if (lockPrerequisitesResult.shouldShowDetails()) {
+ if (lockInfo == null) {
+ logger.warn("Can disaply lock info but lock info is
null");
+ } else {
+ final JahiaUser jahiaUser = (JahiaUser)
lockInfo.get(LockRegistry.OWNER);
+ final Boolean lockStealed = (Boolean)
lockInfo.get(LockRegistry.STEALED);
+ final String lockID = (String)
lockInfo.get(LockRegistry.ID);
+ final long timeout = ((Long)
lockInfo.get(LockRegistry.TIMEOUT)).longValue();
+ final long timeRemaining = ((Long)
lockInfo.get(LockRegistry.TIME_REMAINING)).longValue();
+ isSameContext = jahiaUser != null &&
+
jParams.getUser().getUserKey().equals(jahiaUser.getUserKey()) &&
+ jParams.getSessionID().equals(lockID);
+ final boolean isSameUser = jahiaUser != null &&
+
jParams.getUser().getUserKey().equals(jahiaUser.getUserKey());
+ if (lockPrerequisitesResult.shouldShowDetails()) {
%>
<div class="clearing"> </div>
<jahia:engineResourceBundle
resourceName="org.jahia.engines.lock.objectLockedByUser.label"/>:
@@ -129,6 +139,7 @@
<div class="clearing"> </div>
<jahia:engineResourceBundle
resourceName="org.jahia.engines.lock.warningLockStolen.label"/>
<%
+ }
}
} %>
@@ -136,7 +147,8 @@
<% if (canDisplayDetails &&
lockRegistry.hasAdminRights(blockingLockKey,
jParams.getUser()) || isSameContext) {
isAnyCheckBox = true; %>
- <input type="checkbox"
name="<%=blockingLockKey%>"/> <jahia:engineResourceBundle
resourceName="org.jahia.engines.lock.stealLock.label"/>
+ <input type="checkbox"
name="<%=blockingLockKey%>"/> <jahia:engineResourceBundle
+ resourceName="org.jahia.engines.lock.stealLock.label"/>
<% } else { %>
<% } %>
@@ -144,6 +156,7 @@
</li>
<% } %>
</ul>
+
<div class="clearing"> </div>
<% if (isAnyCheckBox) { %>