i'm having an interesting production experience in which jackrabbit has become unable to load the root node's state. it seems to have entered this state after the machine it's running on was abruptly power cycled. specifically, jackrabbit is receiving an EOFException when deserializing the root node state read from derby (stack trace below).
the exception is thrown at the same stage of deserialization every time i try to start up the repository, which implies that corrupted data somehow got stored into derby at some previous time. no errors were logged by either jackrabbit or derby prior to the first deserialization error. i'm interested to hear any thoughts on how jackrabbit+derby could have gotten into this state and what we might do to prevent this from happening again. thanks! java.io.EOFException at java.io.DataInputStream.readFully(DataInputStream.java:178) at java.io.DataInputStream.readUTF(DataInputStream.java:565) at java.io.DataInputStream.readUTF(DataInputStream.java:522) at org.apache.jackrabbit.core.state.util.Serializer.deserialize(Serializ er.java:153) at org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.load(S impleDbPersistenceManager.java:455) ... 59 more org.apache.jackrabbit.core.state.ItemStateException: failed to read node state: cafebabe-cafe-babe-cafe-babecafebabe: null at org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.load(S impleDbPersistenceManager.java:464) at org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState (SharedItemStateManager.java:751) at org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtual ItemState(SharedItemStateManager.java:678) at org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(Shared ItemStateManager.java:174) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getItemStateP rovider(RepositoryImpl.java:1218) at org.apache.jackrabbit.core.RepositoryImpl.getWorkspaceStateManager(Re positoryImpl.java:588) at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:240) at org.apache.jackrabbit.core.SystemSession.<init>(SystemSession.java:69 ) at org.apache.jackrabbit.core.SystemSession.create(SystemSession.java:57 ) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSystemSess ion(RepositoryImpl.java:1201) at org.apache.jackrabbit.core.RepositoryImpl.getSystemSession(Repository Impl.java:648) at org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(RepositoryImp l.java:449) at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java: 227) at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java: 430)