On Tue, May 3, 2011 at 9:16 AM, <[email protected]> wrote:
> Hi all,
>
> I have now a detailed log output of the raised NumnberFormatException:
>
> 2011-05-03 08:55:25,329 [main] ERROR BundleDbPersistenceManager - failed to
> read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
> java.lang.NumberFormatException: For input string: ""
> java.lang.NumberFormatException: For input string: ""
> at
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
> at java.lang.Integer.parseInt(Integer.java:468)
> at java.lang.Integer.parseInt(Integer.java:497)
> at
> org.apache.jackrabbit.core.nodetype.NodeDefId.valueOf(NodeDefId.java:106)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.BundleBinding.readBundle(BundleBinding.java:105)
here's the problem:
// definitionId
bundle.setNodeDefId(NodeDefId.valueOf(in.readUTF()));
jackrabbit 1.5.6 assumes that the node definition id is part of the
serialized node bundle data.
as of jackrabbit 1.6/2.0, definition id's are not persisted anymore,
see [0] for details.
it seems like you're using jackrabbit 1.5.6 to access data stored with
jackrabbit 1.6.* or 2.*.
cheers
stefan
[0] https://issues.apache.org/jira/browse/JCR-2170
> at
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1161)
> at
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1094)
> at
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:701)
> at
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:506)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1343)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedItemStateManager.java:203)
> at
> org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(RepositoryImpl.java:1317)
> at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:1863)
> at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1834)
> at
> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:483)
> at
> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:324)
> at
> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:621)
> at [SKIPPED]
>
> Please note that the line numbers in BundleDbPersistenceManager have changed
> regarding to the 1.5.6 version of Jackrabbit because I have patched the
> class. But I think that doesn`t matter. Any ideas what causes the problem
> now? Or how to fix the problem?
>
> Thanks in advance,
>
> Sascha
>
> -----Ursprüngliche Nachricht-----
> Von: [email protected] [mailto:[email protected]]
> Gesendet: Montag, 2. Mai 2011 13:24
> An: [email protected]
> Betreff: AW: Jackrabbit doesn`t startup anymore
>
> Hi,
>
>> did you copy the complete repository home directory, i.e. including
>> the "ns_*.properties" files?
>
> Yes I copied the complete repository home directory. But I also tried to
> remove the complete repository home directory to force a rebuild of the index
> files without success. Still same error. Very strange. Debugging is currently
> not possible because the machine is hosted by our customer. But I will try to
> patch Jackrabbit`s BundleDbPersistenceManager to get a complete stack trace.
> If I have any news I will post it here.
>
> But anyway, thank you very much for your help so far.
>
> Cheers,
>
> Sascha
>
> -----Ursprüngliche Nachricht-----
> Von: Stefan Guggisberg [mailto:[email protected]]
> Gesendet: Montag, 2. Mai 2011 11:19
> An: [email protected]
> Betreff: Re: Jackrabbit doesn`t startup anymore
>
> On Mon, May 2, 2011 at 9:18 AM, <[email protected]> wrote:
>> Hi,
>>
>>> i would need a full stacktrace of the following error:
>>
>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>> java.lang.NumberFormatException: For input string: ""
>>
>> Attached you will find a debug output log of Jackrabbit. Unfortunately, I do
>> not see a full stack trace of the NumberFormatException. I think the
>> exception must be catched somewhere in Jackrabbit? Any ideas how to get the
>> full stack?
>
> either debug jackrabbit and set a breakpoint on the line in
> BundleDbPersistenceManager.java
> which logs the error, or change that line to print the full stacktrace
> and rebuild jackrabbit from
> the soruces.
>
> all i can say is that for some reason the deserialization of the root
> node data fails.
>
>>
>>> what exact steps did you perform to setup the test on the other machine?
>>
>> I copied the whole application, including the workspace and the lucene index
>> data and the database configuration, to the other machine and started up the
>> application.
>
> did you copy the complete repository home directory, i.e. including
> the "ns_*.properties" files?
>
>>
>>> has anything changed on the original machine? environment settings, locales
>>> etc?
>>
>> I do not see any differences. What should I exactly look for?
>
> e.g. environment settings (default encoding, charset, locale), jvm
> runtime version, etc.
>
>>
>>> what os? deployment details?
>>
>> OS is a Unix operating system. Jackrabbit is embedded in our application
>> which runs in an OSGi container. Jackrabbit is connected to a Oracle
>> database which is hosted on another machine. Java 5 is installed on the
>> machine. More details are printed in the attached log file.
>>
>> Any ideas how to get rid of the problem are appreciated because I really
>> need to get it working again on the orig. machine.
>
> you'll probably have to debug jackrabbit in order to see why the
> deserialization of the root node bundle fails.
>
> cheers
> stefan
>
>>
>> Thanks in advance,
>>
>> Sascha
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Stefan Guggisberg [mailto:[email protected]]
>> Gesendet: Freitag, 29. April 2011 15:22
>> An: [email protected]
>> Betreff: Re: Jackrabbit doesn`t startup anymore
>>
>> On Fri, Apr 29, 2011 at 11:54 AM, <[email protected]> wrote:
>>> Hi,
>>>
>>> thanks for your fast reply. We didn`t try a db backup yet but what we have
>>> tried is to install Jackrabbit on another machine with exactly the same
>>> configuration (also same db in use). That Jackrabbit instance works without
>>> problems. We can start and stop it and we can browse the nodes.
>>
>> that's good news :)
>>
>>> So it seems that it doesn`t depend on the database...
>>
>> agreed
>>
>>> Any other ideas?
>>
>> what exact steps did you perform to setup the test on the other machine?
>> has anything changed on the original machine? environment settings, locales
>> etc?
>> what os? deployment details?
>>
>> obviously there's a problem reading the root node (cafebabe...) on the
>> original machine.
>>
>> i would need a full stacktrace of the following error:
>>
>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>> java.lang.NumberFormatException: For input string: ""
>>
>> it might be that the internal namespace index files (ns_*.properties)
>> got corrupted.
>>
>> cheers
>> stefan
>>
>>>
>>> Thanks,
>>>
>>> Sascha
>>>
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Stefan Guggisberg [mailto:[email protected]]
>>> Gesendet: Freitag, 29. April 2011 10:53
>>> An: [email protected]
>>> Betreff: Re: Jackrabbit doesn`t startup anymore
>>>
>>> On Fri, Apr 29, 2011 at 9:58 AM, <[email protected]> wrote:
>>>> Hi all,
>>>>
>>>>
>>>>
>>>> we have running a Jackrabbit 1.5.6 instance for months now without any
>>>> problems. But since yesterday we were not able anymore to list nodes
>>>> anymore and so on. We just got back empty results so that it seems that
>>>> no data was ever persisted. After that we shutdown the Jackrabbit
>>>> instance and now we are not able to start it again. The following
>>>> exception occurs when starting up:
>>>>
>>>>
>>>>
>>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>>> java.lang.NumberFormatException: For input string: ""
>>>>
>>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>>> java.lang.NumberFormatException: For input string: ""
>>>>
>>>> 2011-04-29 07:41:14,409 [main] ERROR ConnectionRecoveryManager - could
>>>> not execute statement, reason: ORA-00001: unique constraint
>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>
>>> seems like your oracle db got corrupted somehow. did you perform sanity
>>> checks on your oracle instance? did you try with a db backup?
>>>
>>> cheers
>>> stefan
>>>
>>>>
>>>> , state/code: 23000/1
>>>>
>>>> 2011-04-29 07:41:14,409 [main] ERROR ConnectionRecoveryManager - could
>>>> not execute statement, reason: ORA-00001: unique constraint
>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>>
>>>> , state/code: 23000/1
>>>>
>>>> 2011-04-29 07:41:14,417 [main] ERROR BundleDbPersistenceManager - failed
>>>> to write bundle: deadbeef-cafe-babe-cafe-babecafebabe
>>>>
>>>> java.sql.SQLException: ORA-00001: unique constraint
>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>>
>>>>
>>>>
>>>> at
>>>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:12
>>>> 5)
>>>>
>>>> at
>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
>>>>
>>>> at
>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
>>>>
>>>> at
>>>> oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:626)
>>>>
>>>> at
>>>> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.jav
>>>> a:182)
>>>>
>>>> at
>>>> oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStat
>>>> ement.java:630)
>>>>
>>>> at
>>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.
>>>> java:1081)
>>>>
>>>> at
>>>> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepare
>>>> dStatement.java:2905)
>>>>
>>>> at
>>>> oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStateme
>>>> nt.java:2996)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>> ager.executeStmtInternal(ConnectionRecoveryManager.java:371)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>> ager.executeStmtInternal(ConnectionRecoveryManager.java:298)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>> ager.executeStmt(ConnectionRecoveryManager.java:261)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>> ager.executeStmt(ConnectionRecoveryManager.java:239)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager
>>>> .storeBundle(BundleDbPersistenceManager.java:1198)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>> anager.putBundle(AbstractBundlePersistenceManager.java:732)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>> anager.storeInternal(AbstractBundlePersistenceManager.java:672)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>> anager.store(AbstractBundlePersistenceManager.java:536)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager
>>>> .store(BundleDbPersistenceManager.java:524)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.state.SharedItemStateManager.createRootNodeSt
>>>> ate(SharedItemStateManager.java:1303)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedIte
>>>> mStateManager.java:204)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(Reposit
>>>> oryImpl.java:1317)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(Rep
>>>> ositoryImpl.java:1863)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(Repos
>>>> itoryImpl.java:1834)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(Reposito
>>>> ryImpl.java:483)
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:324
>>>> )
>>>>
>>>> at
>>>> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:621
>>>> )
>>>>
>>>>
>>>>
>>>> I think the SQL exception is only raised because Jackrabbit is not able
>>>> to read the bundle "cafebabe-cafe-babe-cafe-babecafebabe". Do you have
>>>> any ideas how to fix the problem or what could have caused the problem?
>>>>
>>>> Any suggestions would be helpful.
>>>>
>>>>
>>>>
>>>> Thanks in advance.
>>>>
>>>>
>>>>
>>>> Sascha
>>>>
>>>>
>>>>
>>>>
>>>
>>
>