Posts in Category "CRX"

CRX 2.2: DelegatingObservationDispatcher: Error while dispatching events… java.lang.NullPointerException

Issue

If you are using CQ5.3/CRX2.2 you may notice the following error in the log files:

*ERROR* DelegatingObservationDispatcher: Error while dispatching events. (DelegatingObservationDispatcher.java, line 129)
 java.lang.NullPointerException
  at org.apache.jackrabbit.core.security.authorization.acl.CompiledPermissionsImpl.canRead(CompiledPermissionsImpl.java:215)
  at org.apache.jackrabbit.core.security.DefaultAccessManager.canRead(DefaultAccessManager.java:251)
  at org.apache.jackrabbit.core.observation.EventConsumer.canRead(EventConsumer.java:306)
  at org.apache.jackrabbit.core.observation.EventConsumer.prepareEvents(EventConsumer.java:158)
  at org.apache.jackrabbit.core.observation.ObservationDispatcher.prepareEvents(ObservationDispatcher.java:184)
  at org.apache.jackrabbit.core.observation.EventStateCollection.prepare(EventStateCollection.java:459)
  at org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher.dispatch(DelegatingObservationDispatcher.java:126)
  at org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher.dispatchEvents(DelegatingObservationDispatcher.java:99)
  at org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:475)
 ...

Reason

This error occurs due to an issue in Jackrabbit issue: https://issues.apache.org/jira/browse/JCR-3272.

It occurs as the canRead() method in CompiledPermissionsImpl.java is checking for read access on an item that does not exist anymore.  It should therefore throw a RepositoryException, instead of resulting in an NPE.

We have had previous reports of this issue, but it did not have any effect on the server state or stability. In the later hotfixpacks for CRX, this NPE will be logged at the WARN level and not ERROR.

Solution

This has been fixed in a later release of the Jackrabbit core, version 2.4.  You can ignore this error or apply the latest crx-hotfixpack from PackageShare to resolve the problem.

reference: (43919/CRX-4113)

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

CRXDE Lite: IllegalStateException: I18nManager not initialized

Issue

If you have installed a hotfix for CRX you may encounter problems accessing CRXDE Lite accompanied by the following error in the server.log:

*MARK * servletengine: Servlet threw exception:
java.lang.IllegalStateException: I18nManager not initialized
at com.day.crx.i18n.I18nManager.getInstance(I18nManager.java:59)
at org.apache.jsp.de.index_jsp._jspService(index_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228)
at com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:315)
at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:334)
at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:378)
at com.day.j2ee.servletengine.ServletHandlerImpl.execute(ServletHandlerImpl.java:315)
at com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134)
at java.lang.Thread.run(Thread.java:662)

Reason

This problem is usually caused by a version mis-match in JAR library files which were installed through the CRX hotfix.

Solution

You should check for JAR conflicts with the versions contained in the hotfix as listed in the hotfix release notes.

You may need to copy the JAR files from:

…\crx-quickstart\server\runtime\0\_crx\WEB-INF\lib

to here:

…\crx-quickstart\server\lib\container

If this is a non-quickstart installation, then there are instructions in the HF release notes to manually delete older versions of JAR libs:

“Make sure to delete previous versions of installed Java libraries below <crx-webapp>/WEB-INF/lib to avoid classloading issues.”

reference: (33826)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 10.0/10 (1 vote 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: NoInitialContextException: Cannot instantiate class: com.day.util.jndi.provider.MemoryInitialContextFactory

Issue

If you have installed the Sharepoint connector for CQ5 you may encounter the following exception in the log:

*ERROR* [FelixStartLevel] com.day.crx.spi.sharepoint.osgi.impl.SharepointRepositoryImpl Failed to bind repository to JNDI: crx2sharepoint.repository javax.naming.NoInitialContextException: Cannot instantiate class: com.day.util.jndi.provider.MemoryInitialContextFactory [Root exception is java.lang.ClassNotFoundException: com.day.util.jndi.provider.MemoryInitialContextFactory]
at com.day.commons.simplejndi.impl.InitialContextProxy.getInitialContext(InitialContextProxy.java:75)
at com.day.commons.simplejndi.impl.InitialContextProxy.getDefaultInitCtx(InitialContextProxy.java:121)
at com.day.commons.simplejndi.impl.InitialContextProxy.getURLOrDefaultInitCtx(InitialContextProxy.java:116)
at com.day.commons.simplejndi.impl.InitialContextProxy.rebind(InitialContextProxy.java:146)
at javax.naming.InitialContext.rebind(InitialContext.java:408)
at com.day.crx.spi.sharepoint.osgi.impl.SharepointRepositoryImpl.registerJNDI(SharepointRepositoryImpl.java:532)
at com.day.crx.spi.sharepoint.osgi.impl.SharepointRepositoryImpl.activate(SharepointRepositoryImpl.java:283)

Reason

This error occurs if you are attempting to configure the Sharepoint connector to connect to Sharepoint 2010.  The Sharepoint connector (currently version 2.0.4) does not support Sharepoint 2010 at the moment.

Ensure you have read the instructions to install and configure the Sharepoint connector from the documentation:

http://dev.day.com/docs/en/crx/connectors/sharepoint/current.html

Solution

Support for Sharepoint 2010 will be added in a later version of the Sharepoint connector.

reference: (35371/CON-737)

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

CRX2.2: BooleanQuery$TooManyClauses: maxClauseCount is set to 1024 running SQL2 query

Issue

If you are running an SQL2 query in CRX 2.2 you may encounter the following exception:

org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024

Running the query through the CRXDE Lite query window, or using QueryManager.createQuery will result in this error.

Reason

This error occurs if you are using the ISDESCENDANTNODE clause in your SQL2 query and there are too many child nodes in the result set.  It is a bug in jackrabbit-core which is part of CRX 2.2.

https://issues.apache.org/jira/browse/JCR-3247

Solution

This issue will be solved in future releases of CQ 5.5 and CRX.

Workaround

The workaround for this issue is to split your SQL2 query into multiple queries to reduce the result set for each query, and then you can consolidate the results afterwards.

reference: (32103)

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