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">&nbsp;</div>
           <jahia:engineResourceBundle 
resourceName="org.jahia.engines.lock.objectLockedByUser.label"/>: &nbsp;
  @@ -129,6 +139,7 @@
           <div class="clearing">&nbsp;</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%>"/>&nbsp;<jahia:engineResourceBundle 
resourceName="org.jahia.engines.lock.stealLock.label"/>
  +        <input type="checkbox" 
name="<%=blockingLockKey%>"/>&nbsp;<jahia:engineResourceBundle
  +            resourceName="org.jahia.engines.lock.stealLock.label"/>
           <% } else { %>
           &nbsp;
           <% } %>
  @@ -144,6 +156,7 @@
       </li>
       <% } %>
   </ul>
  +
   <div class="clearing">&nbsp;</div>
   <% if (isAnyCheckBox) { %>
   
  

Reply via email to