[
https://issues.apache.org/jira/browse/JCR-964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519762
]
Hitesh Shah commented on JCR-964:
---------------------------------
Update:
When I try to read that property directly out of the db, I get a
StreamCorruptedException.
Code snippet:
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
ps = connection.prepareStatement(sql);
ps.setString(1, key);
rs = ps.executeQuery();
if (rs.next()) {
byte[] bytes = rs.getBytes(1);
for (int j = 0; j < bytes.length; j++) {
System.out.print(bytes[j]);
System.out.print("\t");
}
System.out.println("");
ByteArrayInputStream byteArrayInputStream = new
ByteArrayInputStream(bytes);
ObjectInputStream in = new ObjectInputStream(byteArrayInputStream);
}
Output:
7 -122 -124 -5 -31 112 48 46 33 4
1 -84 0 -64 1 0 0 0 0 56
2 14
java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:770)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:286)
at ReadCorruptJackrabbitDataTest.execute(ReadCorruptJackrabbitDataTest.java:62)
at ReadCorruptJackrabbitDataTest.main(ReadCorruptJackrabbitDataTest.java:33)
> Cannot rebuild corrupt or missing search index from DataSource
> --------------------------------------------------------------
>
> Key: JCR-964
> URL: https://issues.apache.org/jira/browse/JCR-964
> Project: Jackrabbit
> Issue Type: Bug
> Components: indexing
> Affects Versions: 1.3
> Reporter: Noah Vihinen
> Priority: Blocker
>
> If the search index becomes corrupt, and the auto-repair process cannot fix
> the search index (which is common in our experience), there is no way to
> recover the jackrabbit instance. The only possible work-around is when
> you're working with a cluster, and you manually copy an intact index from one
> of the other clusters. It hasn't been determined whether this leads to other
> issues though.
> Given a Jackrabbit repository, shouldn't it be possible to start the
> repository on top of that single data source in the absence of a search
> index, and have the search index rebuilt from the information in the DB?
> Below is the stack trace we get when restarting a repository with no search
> index.
> 15:32:13,622 ERROR RepositoryImpl:389 - [main] Failed to initialize workspace
> 'default'
> javax.jcr.RepositoryException: Error indexing root node:
> a7479d92-4b59-4f44-978a-06da1ec7b8d1: Error indexing root node:
> a7479d92-4b59-4f44-978a-06da1ec7b8d1: Error indexing root node:
> a7479d92-4b59-4f44-978a-06da1ec7b8d1
> at
> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManager.java:476)
> at
> org.apache.jackrabbit.core.SearchManager.<init>(SearchManager.java:231)
> at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(RepositoryImpl.java:1643)
> at
> org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(RepositoryImpl.java:633)
> at
> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:386)
> at
> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:293)
> at
> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:584)
> at
> org.apache.jackrabbit.core.jndi.BindableRepository.createRepository(BindableRepository.java:174)
> at
> org.apache.jackrabbit.core.jndi.BindableRepository.init(BindableRepository.java:138)
> at
> org.apache.jackrabbit.core.jndi.BindableRepository.create(BindableRepository.java:125)
> at
> org.apache.jackrabbit.core.jndi.BindableRepositoryFactory.createInstance(BindableRepositoryFactory.java:59)
> at
> org.apache.jackrabbit.core.jndi.BindableRepositoryFactory.getObjectInstance(BindableRepositoryFactory.java:81)
> at
> org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
> at
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
> at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
> at javax.naming.InitialContext.lookup(InitialContext.java:351)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.