jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kaizer <Kaiz...@mastek.com>
Subject Re: Exception while indexing
Date Tue, 16 Oct 2007 06:13:35 GMT

I added the below fix to RepositoryImpl.java and it works fine. I'm not sure
if its the right fix though.

I copied the method setupSession() from RepositoryUtil and added it in
RepositoryImpl.java. I call this method from the constructor after the call
to createNamespaceRegistry. What this does is it registers the namespace for
OCM upfront. Now if I already have data stored in a DB and I'm initializing
the repository for the first time, it works smoothly during indexing as the
namespaces for OCM have already been registered.

Please let me know your views on this.
Thanks.

public static void setupSession(NamespaceRegistry nsReg) throws
RepositoryException
	{
		try
		{
			/** namespace prefix constant */
			final String OCM_NAMESPACE_PREFIX = "ocm";

			/** namespace constant */
			final String OCM_NAMESPACE = "http://jackrabbit.apache.org/ocm";

			log.info("Setup Jcr session setup ...");

			String[] jcrNamespaces = nsReg.getPrefixes();
			boolean createNamespace = true;
			for (int i = 0; i < jcrNamespaces.length; i++)
			{
				if (jcrNamespaces[i].equals(OCM_NAMESPACE_PREFIX))
				{
					createNamespace = false;
					log.debug("Jackrabbit OCM namespace exists.");
				}
			}

			if (createNamespace)
			{
				nsReg.registerNamespace(OCM_NAMESPACE_PREFIX, OCM_NAMESPACE);
				log.info("Successfully created Jackrabbit OCM namespace.");
			}

		}
		catch (Exception e)
		{
			log.error("Error while setting up the jcr session.", e);
			throw new RepositoryException(e.getMessage());
		}
	}




Christophe Lombart wrote:
> 
> The ancertor class used for the OCM unit tests should help. You will see
> how
> to init the ObjectContentManager correctly and in the correct order.
> 
> humm it time to make some docs :-(
> 
> Christophe
> 
> On 10/1/07, Kaizer <Kaizers@mastek.com> wrote:
>>
>>
>> But if I'm initializing the repository for the first time and trying to
>> access objects that have already been persisted in the database, it fails
>> because the OCM namespace entries havent been added yet. How do i specify
>> the entries in this case? The RepositoryUtil class adds the entries for
>> OCM
>> but it hasnt been called yet.
>>
>>
>>
>> Marcel Reutegger wrote:
>> >
>> > Hi,
>> >
>> > I'm not sure I understand the issue, but to me it looks like you forgot
>> to
>> > copy
>> > the registered namespaces to the new location.
>> >
>> > regards
>> >   marcel
>> >
>> > Kaizer wrote:
>> >> Hi,
>> >>
>> >> I did some debugging on this and found that this issue arises because
>> the
>> >> namespace for OCM hasn't been registered yet. Its only after the
>> Session
>> >> is
>> >> created that the RepositoryUtil class registers them. I think this
>> >> problem
>> >> doesn't occur with the
>> >> org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager as
>> it
>> >> doesnt create name index. I think the solution would be to register
>> the
>> >> OCM
>> >> namespace as part of the NameSpaceRegistryImpl class itself. Please
>> let
>> >> me
>> >> know what can be done regarding this.
>> >>
>> >> Thanks.
>> >>
>> >> Regards
>> >> Kaizer
>> >>
>> >>
>> >>
>> >>
>> >> Kaizer wrote:
>> >>> Hi,
>> >>>
>> >>> My persistence manager is
>> >>>
>> org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager
>> .
>> >>> If
>> >>> there is some existing data in the DB and i try to initialize the
>> >>> repository for the first time, i get this exception. If i deleted
>> >>> everything and then try, it works fine. What could be going wrong?
>> >>>
>> >>> Caused by: java.io.IOException: Error indexing root node:
>> >>> 7107e03e-aefb-4663-9cf5-1663e665bb5f
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(
>> MultiIndex.java:323)
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(
>> SearchIndex.java:295)
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.AbstractQueryHandler.init(
>> AbstractQueryHandler.java:44)
>> >>>     at
>> >>> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(
>> SearchManager.java:474)
>> >>>     ... 19 more
>> >>> java.io.IOException: Error indexing root node:
>> >>> 7107e03e-aefb-4663-9cf5-1663e665bb5f
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(
>> MultiIndex.java:323)
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(
>> SearchIndex.java:295)
>> >>>     at
>> >>> org.apache.jackrabbit.core.query.AbstractQueryHandler.init(
>> AbstractQueryHandler.java:44)
>> >>>     at
>> >>> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(
>> SearchManager.java:474)
>> >>>     at
>> >>> org.apache.jackrabbit.core.SearchManager.<init>(SearchManager.java
>> :231)
>> >>>     at
>> >>>
>> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(
>> RepositoryImpl.java:1580)
>> >>>     at
>> >>> org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(
>> RepositoryImpl.java:570)
>> >>>     at
>> >>> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(
>> RepositoryImpl.java:379)
>> >>>     at
>> >>> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java
>> :286)
>> >>>     at
>> >>> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java
>> :521)
>> >>>     at
>> >>> org.apache.jackrabbit.core.TransientRepository$1.getRepository(
>> TransientRepository.java:186)
>> >>>     at
>> >>> org.apache.jackrabbit.core.TransientRepository.startRepository(
>> TransientRepository.java:265)
>> >>>     at
>> >>> org.apache.jackrabbit.core.TransientRepository.login(
>> TransientRepository.java:333)
>> >>>     at
>> >>> org.apache.jackrabbit.core.TransientRepository.login(
>> TransientRepository.java:363)
>> >>>
>> >>>
>> >>
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Exception-while-indexing-tf4521289.html#a12976673
>> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Exception-while-indexing-tf4521289.html#a13227395
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Mime
View raw message