Alfresco 5.0.1 plus Solr4 Upgrade Issue

With Alfresco 5 comes an upgraded version of Solr (v4). This is a BIG deal. Alfresco 4.x only supports the Alfresco Solr distribution which housed an older version of Solr, v1.4. To put this in perspective, Solr’s current stable build is version 5.2.1. We’re excited to employ all the new features of Solr with some of our clients!

While upgrading Alfresco and migrating to Solr 4 we did run into one issue that caused us to lose search for a day. Running basic searches returned no results. Here is the symptom found in the solr.log file:

2015-06-16 21:21:53,048 ERROR [solr.servlet.SolrDispatchFilter] [http-bio-8443-exec-5] null:org.alfresco.service.namespace.InvalidQNameException: A QName must consist of a local name
at org.alfresco.service.namespace.QName.createQName(
at org.alfresco.solr.AlfrescoSolr4FunctionEvaluationContext.getLuceneFieldName(
at org.alfresco.solr.AlfrescoSolrDataModel.mapProperty(
at org.alfresco.solr.component.RewriteFacetParametersComponent.rewriteFacetFieldList(
at org.alfresco.solr.component.RewriteFacetParametersComponent.fixFacetParams(
at org.alfresco.solr.component.RewriteFacetParametersComponent.prepare(
at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(
at org.apache.solr.handler.RequestHandlerBase.handleRequest(
at org.apache.solr.core.SolrCore.execute(
at org.apache.solr.servlet.SolrDispatchFilter.execute(
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
at org.apache.catalina.core.StandardWrapperValve.invoke(
at org.apache.catalina.core.StandardContextValve.invoke(
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
at org.apache.catalina.core.StandardHostValve.invoke(
at org.apache.catalina.valves.ErrorReportValve.invoke(
at org.apache.catalina.valves.AccessLogValve.invoke(
at org.apache.catalina.core.StandardEngineValve.invoke(
at org.apache.catalina.connector.CoyoteAdapter.service(
at org.apache.coyote.http11.AbstractHttp11Processor.process(
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
at java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.util.concurrent.ThreadPoolExecutor$
at org.apache.tomcat.util.threads.TaskThread$


When migrating to Solr4 and running Alfresco 5.0.1 you need to remove all custom Share configs that affect Search. This means any config using Search as the condition:

<config condition="Search" evaluator="string-compare" replace="true">


An easy way to do this is by running a search on your file system for this string pattern

find . -name \*.xml | xargs grep condition\=\"Search

By removing these custom configurations we were able to run search successfully.


Edit: This issue was documented in Jira and is marked resolved for the next Service Pack, v5.0.2.

Leave a Reply

Your email address will not be published. Required fields are marked *

From our Blog...

Managing Digital Risk

Leveraging Content Management Systems to Mitigate Digital Risk The convenience of the digital world is not freely given. It is hard to imagine a world where you can’t think of an item and purchase it online within a few minutes. As we bask in the glow of endless catalogs of online goods, the thought of online… Read more »

Read More

Configuring Alfresco SAML SSO Module with Okta IdP

Alfresco recently released a new patch for their SAML Single Sign On solution module. This module allows Alfresco user’s to configure their Alfresco installation with their Single Sign On (SSO) Identity Provider. In this tutorial, I’ll explain the process of configuring Okta to be used with the module. Note: This tutorial is assuming you’ve followed… Read more »

Read More

Content Migration: Being Prepared

Much like negotiating a treaty between two countries who do not share a common language, someone will be faced with the task of translating. If that translator is not properly prepared the outcome might create more problems than it solves.

Read More