Archive for November, 2012

LiveCycle ES: AccessDeniedException: Access Denied. The system is currently in read-only mode.

Issue

If you are using LiveCycle Content Services you may notice the following error message in the server logs when starting the server:

00:05:55,646 ERROR [org.alfresco.service.descriptor.DescriptorService] Error installing embedded license
org.alfresco.service.license.LicenseException: Failed to save license
                at org.alfresco.repo.descriptor.RepositoryDescriptorDAOImpl.updateLicenseKey(RepositoryDescriptorDAOImpl.java:294)
                at org.alfresco.enterprise.license.AlfrescoLicenseManager.setLicenseKey(AlfrescoLicenseManager.java:220)

Caused by: org.alfresco.service.cmr.repository.ContentIOException: Failed to create directory for file storage: \\share\Adobe\lccs_data\contentstore\2012\10\26\0\5
                at org.alfresco.repo.content.filestore.FileContentStore.makeDirectory(FileContentStore.java:288)
                at org.alfresco.repo.content.filestore.FileContentStore.createNewFile(FileContentStore.java:234)
                at org.alfresco.repo.content.filestore.FileContentStore.createNewFile(FileContentStore.java:202)
                at org.alfresco.repo.content.filestore.FileContentStore.getWriterInternal(FileContentStore.java:478)
                at org.alfresco.repo.content.AbstractContentStore.getWriter(AbstractContentStore.java:242)
                at org.alfresco.repo.content.RoutingContentService.getWriter(RoutingContentService.java:402)
                at org.alfresco.repo.descriptor.RepositoryDescriptorDAOImpl.updateLicenseKey(RepositoryDescriptorDAOImpl.java:285)
                … 15 more
03:00:00,020 ERROR [org.quartz.core.JobRunShell] Job DEFAULT.indexBackupJobDetail threw an unhandled Exception:
org.alfresco.repo.security.permissions.AccessDeniedException: Access Denied.  The system is currently in read-only mode.

Reason

This error can occur when the user account that started the application server (JBoss/WebSphere/Weblogic) no longer has “write” permissions on the lccs_data shared directory used by content services (alfresco).

During startup sequence, Alfresco tries to create files in lccs_data shared directory, and if it cannot, it starts content services in read only mode.

Solution

Verify the user rights on the shared lccs_data directory, and try to create a folder/file manually.  Restarting the LiveCycle server will usually resolve the problem, but you should investigate the root cause why the user permissions are being lost in your environment.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 10.0/10 (1 vote cast)

LiveCycle Designer ES2: Unable to delete default value in rich-text fields

Issue

After updating to LiveCycle Designer ES2 QF4 (9.0.0.2.20110401.1.827986), you may notice that you are no longer able to delete the default value in rich-text fields.  It is possible to edit the value, but when you delete it, the value will re-appear in the field after refreshing.  This only happens for rich-text fields and not standard text fields.

Solution

This is an issue in LiveCycle Designer 9.5 QF4 and has been addressed in later versions, including Designer 10.  If you require a quickfix for this issue in LiveCycle Designer 9 you should contact the enterprise support team.

Workaround

You can delete the default value by opening the XML Source tab and removing the value manually.

reference: (183571067/3318438)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 10.0/10 (1 vote cast)

CQ5.5: SlingException running workflowreport.html

Issue

If you are using the workflow report under /etc/reports/workflowreport.html it may return with an error 500 in the browser and the following exception:

org.apache.sling.api.SlingException:
    at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspExceptionInternal(JspServletWrapper.java:686)
    at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:603)
    at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:528)
    at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:447)

Caused by: org.apache.sling.api.SlingException: An exception occurred processing JSP page /libs/cq/workflow/components/report/report.jsp at line 132
… 74 more
Caused by: java.lang.NullPointerException
    at org.apache.jsp.libs.cq.workflow.components.report.report_jsp._jspService(report_jsp.java:309)
    at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:497)
… 97 more

Reason

This problem can occur when a workflow model is deleted, but that workflow model had been used to start multiple processes, and therefore workflow statistics for that model exist.  This is a product issue and has been addressed in CQ5.6.

Workaround

As a workaround you can use the attached overlay for
/apps/cq/workflow/components/report/report.jsp
instead of the problematic
/libs/cq/workflow/components/report/report.jsp

workflow_report_overlay_40332-1.0.zip

The workaround will resolve the NullPointerException and the workflow report will display as expected, but there are still some unresolved exceptions in the server log. These will be resolved with the full product fix.

reference: (40332/CQ5-23798)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)

CQ5.5 SP2.1: IllegalArgumentException: Servlet must not be null

Issue

If you are updating your CQ5.5 installation to SP2.1 on an application server you may notice the following exception in the logs:

12.11.2012 03:20:21.683 *ERROR* [CQSE HTTP Service] org.apache.felix.http.whiteboard Failed to register servlet
java.lang.IllegalArgumentException: Servlet must not be null
    at org.apache.felix.http.base.internal.service.HttpServiceImpl.registerServlet(HttpServiceImpl.java:88)
    at org.apache.felix.http.whiteboard.internal.manager.ServletMapping.register(ServletMapping.java:54)
    at org.apache.felix.http.whiteboard.internal.manager.ExtenderManager.registerAll(ExtenderManager.java:235)
    at org.apache.felix.http.whiteboard.internal.manager.ExtenderManager.setHttpService(ExtenderManager.java:195)
    at org.apache.felix.http.whiteboard.internal.tracker.HttpServiceTracker.added(HttpServiceTracker.java:37)

After restarting the server you may notice the following errors in the log:

12.11.2012 03:22:14.621 *ERROR* [Thread-1] org.apache.sling.servlets.resolver.internal.SlingServletResolver bindServlet: Unexpected problem initializing component com.day.cq.opensocial.gadgets.servlet.ConcatProxyServlet com.google.inject.ProvisionException: Guice provision errors:
1) Error injecting method, java.lang.IllegalStateException: Servlet already initialized
    at org.apache.shindig.gadgets.servlet.ConcatProxyServlet.setConcatUriManager(ConcatProxyServlet.java:90)
    while locating com.day.cq.opensocial.gadgets.servlet.ConcatProxyServlet
Caused by: java.lang.IllegalStateException: Servlet already initialized
    at com.google.common.base.Preconditions.checkState(Preconditions.java:145)
    at org.apache.shindig.common.servlet.InjectedServlet.checkInitialized(InjectedServlet.java:59)
    at org.apache.shindig.gadgets.servlet.ConcatProxyServlet.setConcatUriManager(ConcatProxyServlet.java:90)

12.11.2012 03:23:10.151 *ERROR* [FelixStartLevel] com.day.cq.wcm.cq-wcm-mobile-core [com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter] The bindStats method has thrown an exception (java.lang.NullPointerException) java.lang.NullPointerException
    at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.bindStats(RedirectFilter.java:173)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:227)
    at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:38)
    at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:591)

Reason

These errors occur due to the files for the CQ Servlet Engine which are still deployed.  These files should not be included when deploying CQ to an application server, and there is a step in the SP2.1 release notes describing this.

Solution

  1. Go to /crx/explorer and open the Content Explorer
  2. Go to /libs/system/install, delete the cqse-httpservice-4.1.32.jar node and save your changes
  3. Restart the instance

These steps are listed in the release notes for SP2.1 when deploying to an application server:

http://dev.day.com/docs/en/cq/current/release_notes_service_pack_2.html

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 7.0/10 (2 votes cast)

CQ5: “LDAPException: error result (4); Sizelimit exceeded” when synchronizing users

Issue

If you are using an LDAP connection with your CQ server you may notice that the LDAP users are not imported correctly to CQ with a warning similar to the following in the error.log:

09.11.2012 10:22:57.624 *WARN* POST /system/console/jmx/com.adobe.granite.ldap…DTools/op/syncAllUsers/ HTTP/1.1 com.day.crx.security.ldap.principals.LDAPPrincipalProvider Error finding user * com.day.crx.security.ldap.LDAPRepositoryException: LDAP error: com.day.ldap.LDAPException: error result (4); Sizelimit exceeded
        at com.day.crx.security.ldap.principals.LDAPPrincipalProvider.findUser(LDAPPrincipalProvider.java:396)
        at com.day.crx.security.ldap.principals.LDAPPrincipalProvider.findPrincipals(LDAPPrincipalProvider.java:553)
        at com.day.crx.security.ldap.LDAPUserSync.syncAllUsers(LDAPUserSync.java:182)
        at com.day.crx.security.ldap.LDAPSynchronization$Directory.syncAllUsers(LDAPSynchronization.java:283)
        at com.day.crx.security.ldap.jmx.LDAPUserMBean.syncAllUsers(LDAPUserMBean.java:117)
        at com.day.crx.security.ldap.jmx.LDAPUserMBean.invoke(LDAPUserMBean.java:187)


09.11.2012 10:22:57.625 *INFO* POST /system/console/jmx/com.adobe.granite.ldap…Tools/op/syncAllUsers/ HTTP/1.1] com.day.crx.security.ldap.LDAPUserSync LDAP synchronization: 0 of 0 users synchronized in 0 seconds

Reason

This error is caused by your LDAP settings. In ActiveDirectory (AD), for example, there is a maxpagesize limit set to 1000 by default. This is the maximum number of results returned for any given LDAP query, including CQ user synchronization.  For more information see: http://support.microsoft.com/kb/315071?wa=wsignin1.0

Solution

You have a few options to avoid this problem:

  1. ask your LDAP administrator to increase the maxpagesize on your LDAP server
  2. use filters in your LDAP queries to reduce the number of LDAP entries returned so that you do not hit this limit

reference: (40240/CRX-3043)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 6.3/10 (4 votes cast)

CQ5.5: When to restart CQ after installing a service pack

Issue

If you are installing a service pack (SP) on top of CQ5.5 you will see a dialog recommending to restart the instance after you have run the SP installation:

Do not restart the instance at this point, as the contents of the service pack are still being extracted and installed in the background.  Restarting at this point could result in unknown problems, and you may have to repeat the SP installation.

Solutions

You can monitor the log output in error.log and wait until the log no longer has new “BundleEvent STARTED” entries, before restarting the instance.  This usually takes 2 – 5 minutes depending on server specifications.

Monitoring log output may not be a good solution for large enterprise organisations which may have many CQ instances to update, and may need to use some kind of automated install script or process documentation.  In this case, you can either add a pause to the installation documentation (e.g. 15 or 30 minutes), or use a script to check for installation completion as described under 2 below.

1. Monitor the log output to figure out when to restart

The release notes for SP2.1 do contain instructions relating to this process (http://dev.day.com/docs/en/cq/current/release_notes_service_pack_2.html):

Quickstart Install Process

  1. Login to Package Share and download SP2 package: cq-service-pack-5.5.2.zip
  2. Back in Package Manager – Install package
  3. After the package install is done – the PackageManager tells you to restart. DO NOT RESTART. The actual install of the package only starts now in background, given that the packages have been placed in /install folders. The best way to follow the process of the install is to tail the error.log
    The background install starts with “com.day.jcr.vault.packaging.impl.ZipVaultPackage Extracting day/cq550/update:cq-update-pkg:5.5.8″ and stops with bundles been restarted – best seen by “BundleEvent STARTED” log entries.
  4. After the error.log goes quiet with “BundleEvent STARTED” messages
  5. Restart the instance
  6. The Welcome Screen should now show the updated Version String: Adobe CQ, Version 5.5.0.20120220 Service Pack 2

2.  Use a script to automatically check for installation completion

You can use the script below which polls the server to check when the SP contents have been extracted, and then waits another few minutes for the relevant bundles to be started.  You can use the script on its’ own, or you could integrate it into existing scripts which you use to automatically install the CQ servicepack.

1. use a script similar to the following (designer for CQ5.5 SP2.1, you may need to adjust the cq-update-pkg version for other service packs)

count=0
res=1
until [ $res -eq 0 ]
do
    curl -u admin:admin -D- http://<cq_server_hostname>/etc/packages/day/cq550/update/cq-update-pkg-5.5.10.zip/jcr:content/vlt:definition/lastUnpacked.json 2>/dev/null | head -1 | grep -q “HTTP/1.1 200″
    res=$?
    if [ $((count++ % 10)) -eq 0 ]
     then
     echo “Waiting for service pack installation to finish…”
    fi
    sleep 1
done
sleep 300
echo “Service pack installation complete. You can restart the instance now.”

2. start the script in a terminal
3. install SP2.1
4. check the script output and await the completion message

5. restart the instance

reference: (39810/CQ5-22648)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 8.3/10 (8 votes cast)