4 Replies Latest reply: Jan 19, 2012 4:39 AM by gimbal2 RSS

    Maximum lock count exceeded - Details to debug

    Srinath Menon-Oracle
      Hello ,

      I have a site that is developed on Jdeveloper using jspx pages . This site is deployed on WLS but occassionaly I am seeing that the pages show up blank . After a short while refresh of the page brings the page back to normalcy as in shows the details , images etc .

      During the period when the page goes blank following error stack is captured in the server logs :


      Caused By: weblogic.servlet.jsp.CompilationException: Failed to compile JSP /_intradoc_/wcm/app/groups/sgsitedesignasset/@hmc/documents/sitedesignasset/mdaw/mdaw/~edisp/st_mainkv5.jspx
      Exception occurred while processing '/_intradoc_/wcm/app/groups/sgsitedesignasset/@hmc/documents/sitedesignasset/mdaw/mdaw/~edisp/st_mainkv5.jspx'java.lang.Error: Maximum lock count exceeded
           at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquireShared(ReentrantReadWriteLock.java:395)
           at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1260)
           at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
           at oracle.stellent.wcm.server.content.spi.fs.FileSystemLoader$SingleLockStrategy.lockShared(FileSystemLoader.java:116)
           at oracle.stellent.wcm.server.content.spi.fs.FileSystemLoader$MultiLockStrategy.lockShared(FileSystemLoader.java:185)
           at oracle.stellent.wcm.server.content.spi.fs.FileSystemLoader.readAndStoreOnlineContent(FileSystemLoader.java:349)
           at oracle.stellent.wcm.server.content.spi.fs.FileSystemLoader.readAndStoreStream(FileSystemLoader.java:311)
           at oracle.stellent.wcm.server.content.spi.fs.FSContentAdapter.loadContent(FSContentAdapter.java:163)
           at oracle.stellent.wcm.server.content.spi.fs.FSLocalModifiedContentAdapter.loadContent(FSLocalModifiedContentAdapter.java:123)
           at oracle.stellent.wcm.javaee.shared.jsp.IdcJspProvider.fromStream(IdcJspProvider.java:86)
           at oracle.adf.library.webapp.ADFJspResourceProvider.fromStream(ADFJspResourceProvider.java:328)
           at weblogic.jsp.wlw.util.filesystem.mds.MDSFileSystem.getInputStream(MDSFileSystem.java:78)
           at weblogic.jsp.wlw.util.filesystem.FS.getInputStream(FS.java:224)
           at weblogic.jsp.wlw.util.filesystem.FS.getReader(FS.java:246)
           at weblogic.jsp.internal.SourceFile.getReader(SourceFile.java:230)
           at weblogic.jsp.internal.SourceFile.getTokenStream(SourceFile.java:384)
           at weblogic.jsp.internal.SourceFile.getAst(SourceFile.java:533)
           at weblogic.jsp.internal.SourceFile.check(SourceFile.java:335)
           at weblogic.jsp.internal.ProxySourceFile.codeGen(ProxySourceFile.java:224)
           at weblogic.jsp.internal.SourceFile.codeGen(SourceFile.java:327)
           at weblogic.jsp.internal.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:599)
           at weblogic.jsp.internal.client.Job.performJob(Job.java:83)
           at weblogic.jsp.internal.client.SyncThreadPool.addJob(SyncThreadPool.java:31)
           at weblogic.jsp.internal.client.SyncThreadPool.addJob(SyncThreadPool.java:19)
           at weblogic.jsp.internal.client.ClientUtilsImpl.build(ClientUtilsImpl.java:348)
           at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:153)
           at weblogic.servlet.jsp.ResourceProviderJavelinxJspStub.compilePage(ResourceProviderJavelinxJspStub.java:78)
           at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:256)
           at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:216)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243)
           at weblogic.servlet.jsp.ResourceProviderJspStub.execute(ResourceProviderJspStub.java:48)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
           at java.security.AccessController.doPrivileged(Native Method)
           at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
           at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
           at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
           at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
           at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:524)
           at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444)
           at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163)
           at oracle.stellent.wcm.javaee.ServletRequestContext.executePath(ServletRequestContext.java:243)
           at oracle.stellent.wcm.client.RequestContext.process(RequestContext.java:189)
           at oracle.stellent.wcm.client.RequestContext.include(RequestContext.java:144)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.evaluateScript(ResponseHandler.java:217)
           at oracle.stellent.wcm.javaee.taglib.BaseTag$1.evaluateScript(BaseTag.java:114)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.handleResponse(ResponseHandler.java:146)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.handleResponse(ResponseHandler.java:111)
           at oracle.stellent.wcm.javaee.taglib.BaseTag$1.handleResponse(BaseTag.java:121)
           at oracle.stellent.wcm.client.invokers.RequestInvoker.handleResponse(RequestInvoker.java:222)
           at oracle.stellent.wcm.client.invokers.impl.ContributableInvoker.handleResponse(ContributableInvoker.java:53)
           at oracle.stellent.wcm.client.invokers.impl.PlaceholderInvoker.handleResponse(PlaceholderInvoker.java:70)
           at oracle.stellent.wcm.client.invokers.RequestInvoker.invokeRequest(RequestInvoker.java:145)
           at oracle.stellent.wcm.javaee.taglib.BaseTag.doTag(BaseTag.java:127)
           at jsp_servlet.__intradoc_._wcm._app._groups._sgsitedesignasset.__64_hmc._documents._sitedesignasset._mdaw._mdaw.__126_edisp.__pt_pip_jspx._jspService(__pt_pip_jspx.java:704)
           at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.jsp.ResourceProviderJspStub.execute(ResourceProviderJspStub.java:48)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.stellent.wcm.javaee.servlet.filter.WCMSiteFilter.doFilter(WCMSiteFilter.java:156)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:524)
           at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
           at oracle.stellent.wcm.javaee.ServletRequestContext.executePath(ServletRequestContext.java:247)
           at oracle.stellent.wcm.client.RequestContext.process(RequestContext.java:189)
           at oracle.stellent.wcm.client.RequestContext.forward(RequestContext.java:157)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.evaluateScript(ResponseHandler.java:215)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.handleResponse(ResponseHandler.java:146)
           at oracle.stellent.wcm.client.invokers.ResponseHandler.handleResponse(ResponseHandler.java:111)
           at oracle.stellent.wcm.client.invokers.RequestInvoker.handleResponse(RequestInvoker.java:222)
           at oracle.stellent.wcm.client.invokers.impl.PageInvoker.handleResponse(PageInvoker.java:75)
           at oracle.stellent.wcm.client.invokers.RequestInvoker.invokeRequest(RequestInvoker.java:145)
           at oracle.stellent.wcm.javaee.servlet.filter.WCMSiteFilter.handlePageInvocation(WCMSiteFilter.java:326)
           at oracle.stellent.wcm.javaee.servlet.filter.WCMSiteFilter.doFilter(WCMSiteFilter.java:174)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
           at java.security.AccessController.doPrivileged(Native Method)
           at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
           at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
           at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
           at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
           at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)





      I am not able to figure out what / how to go about troubleshooting this issue .

      Can someone shed some light on the error mentioned above and let me know how to proceed with debugging this issue ?


      Site is deployed on WLS 10.3.5 on a separate managed server .

      Any inputs will be highly appreciated .

      Thanks
      Srinath

      Edited by: Srinath Menon on Jan 19, 2012 10:27 AM
        • 1. Re: Maximum lock count exceeded - Details to debug
          Srinath Menon-Oracle
          Code put in st_mainkv5.jspx is :


          <?xml version='1.0' encoding='UTF-8'?>
          <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:fn="http://java.sun.com/jsp/jstl/functions"
          xmlns:c="http://java.sun.com/jsp/jstl/core"
          xmlns:wcm="http://www.oracle.com/jsp/wcm">


          <script type='text/javascript'>
          //<![CDATA[
          var country = "${siteCode}";
          var cubeList = new Array();
          var firstCube = 2;
          cubeList = ["home","gallery", "experience", "mostlike", "talkntalk"];
          //]]>
          </script>
          <wcm:placeholder name="Cube Setting"/>
          <jsp:useBean id="map" class="java.util.HashMap"/>
          <jsp:scriptlet>
          String tmpCube = request.getParameter("Cube");
          map.put("ssCube", tmpCube);
          </jsp:scriptlet>
          <c:set var="ssCube" value="${map.ssCube}"/>
          <c:choose>
          <c:when test="${ssCube eq 'keyvisual'}">
          <script>var firstCube = 1;</script>
          </c:when>
          <c:when test="${ssCube eq 'gallery'}">
          <script>var firstCube = 2;</script>
          </c:when>
          <c:when test="${ssCube eq 'experience'}">
          <script>var firstCube = 3;</script>
          </c:when>
          <c:when test="${ssCube eq 'mostlike'}">
          <script>var firstCube = 4;</script>
          </c:when>
          <c:when test="${ssCube eq 'talkntalk'}">
          <script>var firstCube = 5;</script>
          </c:when>
          <c:otherwise>
          <script>var firstCube = 1;</script>
          </c:otherwise>
          </c:choose>



          <script type='text/javascript'>
          //<![CDATA[     
               var cubeList = new Array();
               cubeList = ["home","gallery", "experience", "mostlike", "talkntalk"];
          function cubeStart(va) {
          // 소셜큐브의 실제 컨텐츠는 이 함수에서 ajax 함수를 실행 시켜서 뿌려주도록 해주세요.
          // 드래그하거나 버튼을 클ë¦í•˜ì—¬ 큐브가 좌우 스크롤이 되면, 해당하는 큐브의 숫자(1~5)를 인수로 받아 이 함수가 실행됩니다.
          // 숫자와 큐브가 í•ìƒ 1:1 대응인 것은 아닙니다.
          // 큐브는 최대 5개까지 출력되고, 소셜 사용 여부/pip인지 general인지에 따라 3개만 출력되는 경우도 있습니다.
          //alert("Cube"+va+" is Ready.");

          if (va==1) { // main
          // 처리 내용 없음, HTML에서 출력되도록 해 주시면 됩니다.

          } else if (va==2) { // gallery
          cubeGalleryCustomiz('1','All')
          } else if (va==3) { // experience
          cubeExterienceCustomiz('exterior','0','');

          } else if (va==4) { // mostlike
          executeArea4();
          // 최초 로딩시 뿐만 아니라, 각 1/2/3위 링크 클ë¦í• ë•Œ 에도 다시 실행되어야 합니다.

          // cubeMostLikeCate()는 카테고리를 출력하는 함수입니다.
          // 1) 선택된 번호, 1~3 중 하나.
          // 2) 첫번째 프로필 이미지
          // 3) 두번째 프로필 이미지
          // 4) 세번째 프로필 이미지
          // 5) 첫번째 이름
          // 6) 두번째 이름
          // 7) 세번째 이름
          //cubeMostLikeCate(1,'/img_tmp/profile30.jpg','/img_tmp/profile30.jpg','/img_tmp/profile30.jpg','Jeff','Antonio','Jane');

          // cubeMostLike 버튼은 오른쪽 내용이 바뀌는 함수입니다.
          // 1) 자동차 이름
          // 2) Trim (아마도..)
          // 3) 선택한 익스테리어 이미지 (아이콘 이미지 경로)
          // 4) 선택한 인테리어 이미지 (아이콘 이미지 경로)
          // 5) 자동차 이미지
          // 6) See More 링크
          // 7) Car Builder 링크
          // 8) Link버튼 코드
          // cubeMostLike('ABC','Test','/img_tmp/exterior_gray.png','/img_tmp/interior_brown.png','/img_tmp/car_mostlike.png','#','#','<img src="/img_tmp/like.gif" alt="" />');


          } else if (va==5) { // talk n talk
          executeArea5();

          // 초기화 시키는 함수
          //cubeTalknTalkInit();

          // 각각의 텍스트를 뿌려 줍니다.
          // 1) 번호 1~6
          // 2) facebook or twitter
          // 3) 프로필 이미지
          // 4) 이름
          // 5) ë‚´ìš©
          //cubeTalknTalk(1,'facebook','/img_tmp/profile25.jpg','Dabby whistler','I can\'t belive my eyes. AZERA is so nice');
          //cubeTalknTalk(2,'twitter','/img_tmp/profile25.jpg','Dabby whistler','I can\'t belive my eyes. AZERA is so nice');
          //cubeTalknTalk(3,'facebook','/img_tmp/profile25.jpg','Dabby whistler','AZERA has a good performance to drive. It\'s really interesting for me');
          //cubeTalknTalk(4,'twitter','/img_tmp/profile25.jpg','Dabby whistler','I can\'t belive my eyes. AZERA is so nice');
          //cubeTalknTalk(5,'facebook','/img_tmp/profile25.jpg','Dabby whistler','AZERA has a good performance to drive. It\'s really interesting for me');
          //cubeTalknTalk(6,'facebook','/img_tmp/profile25.jpg','Dabby whistler','I can\'t belive my eyes. AZERA is so nice');

          }
          }
          //]]>
          </script>

          <div class="cubebox" id="cubebox">
          <div class="cubelist">
          <!-- 960*436 -->
          <div class="item">
          <wcm:placeholder name="CUBE MAIN"/>
          </div>
          <div class="item">
          <wcm:placeholder name="CUBE GALLERY"/>
          </div>
          <div class="item">
          <wcm:placeholder name="CUBE EXPERIENCE"/>
          </div>
          <div class="item">
          <wcm:placeholder name="CUBE MOST LIKE"/>
          </div>

          <div class="item">
          <wcm:placeholder name="CUBE TALK TALK"/>
          </div>

          </div>
          <div class="prevbtn">
          <img src="/es/images/common/bg/blank.gif" alt="previous" />
          </div>
          <div class="nextbtn">
          <img src="/es/images/common/bg/blank.gif" alt="next" />
          </div>
          <!--
          <div class="facebook">
          <img src="/img_tmp/tmp_facebook.png" alt="" />
          </div>
          -->
          <div class="cube"> </div>
          </div>
          </jsp:root>
          • 2. Re: Maximum lock count exceeded - Details to debug
            gimbal2
            Your problem is with Weblogic server, so ask your question in the weblogic forum.

            https://forums.oracle.com/forums/category.jspa?categoryID=193
            • 3. Re: Maximum lock count exceeded - Details to debug
              Srinath Menon-Oracle
              When does the Java specific error message given below come up :

              Maximum lock count exceeded



              As in what code scenarios or specific cases can this happen ? What does the error message signify ?

              Thanks
              Srinath
              • 4. Re: Maximum lock count exceeded - Details to debug
                gimbal2
                It is a "java specific" message because Weblogic is built in Java itself, so it uses standard Java features. It appears because Weblogic is using a lock, which you can clearly see in the stacktrace you posted. But WHY the lock count is exceeded only people experienced with Weblogic can answer. Hence, ask your question in the Weblogic forum!