You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Brian Moseley <bc...@osafoundation.org> on 2006/01/02 12:02:46 UTC

corrupted root node state

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)

Re: corrupted root node state

Posted by srinivas reddy <sr...@yahoo.com>.
Brian Moseley <bcm <at> osafoundation.org> writes:

> 
> On 1/3/06, Stefan Guggisberg <stefan.guggisberg <at> gmail.com> wrote:
> 
> > currently i can only think of two possible explanations:
> > 1. you're trying to read data which what was written with an older 
jackrabbit
> >     version. the serialization format has changed a while ago (svn r329841).
> > 2. the power cycle must have happened during the jdbc commit call
> >     (SimpleDbPersistenceManager line 419) which in turn caused a corrupted
> >     node state. although this seems rather unlikely...
> 
> hm, we've been using r354348 for several weeks, and before that
> r330363, so i don't think we're a victim of #1.
> 
> i've written a tool to rebuild my repository based on a list of nodes
> that i know should exist. in the process, i've made an interesting
> discovery: when the root node has 1179 or fewer children, there is no
> problem deserializing its node state, but when it has 1180 or more
> children, the error occurs.
> 
> i have made this happen on my development platform, so now the problem
> seems more like a limit on the number of child nodes for the root
> node, or a limit on the size of the derby column.
> 
> a google search told me that the default size for a derby blob is 1M.
> i modifed the derby.ddl file to make the blob 10M, rebuilt an empty
> repository and inserted 1180 nodes, only to get the deserialization
> error again.
> 
> (due to the steps i take to insure an empty repository with my custom
> node types imported into it, i'm not 100% sure that the 10M change
> made it in to the final repository. i've been trying to use ij to
> examine the table, but i'm having problems getting ij to find the
> database.)
> 
> > if you can provide me the data (derby database) i'll investigate further.
> 
> thanks. i'm checking into whether or not our privacy policy allows me
> to share the database with you.
> 
> 


Hi,

 We are having same problem. We stored nearly 9000 images under a node images.

      root/contenttype/images/ here 9000 images added (9000 nodes). each image 
having properties. all nodes are custom defined.

when i execute the follwing code

 Node na=root.getNode("contenttype/images");
 System.out.println("get Root node name=================?"+na.getName());
 NodeIterator it=na.getNodes();
 System.out.println("Total no of results are ===========>"+it.getSize());

we are getting exception like..

javax.jcr.RepositoryException: failed to retrieve state of intermediary node: fa
iled to read node state: 4be92ad2-7fba-4ed9-9607-94c2999f8364: null: failed to r
ead node state: 4be92ad2-7fba-4ed9-9607-94c2999f8364: null
        at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(Hierarchy
ManagerImpl.java:210)
        at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(Hierarchy
ManagerImpl.java:340)
        at org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(Cachin
gHierarchyManager.java:189)
        at org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(NodeImpl.
java:237)
        at org.apache.jackrabbit.core.NodeImpl.getNode(NodeImpl.java:2204)
        at com.cms.common.ContentStore.fetchAllContent(ContentStore.java:102)
        at com.cms.action.ContentAction.SHOWALL(ContentAction.java:115)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchActio
n.java:280)
        at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:
216)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:484)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:274)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148
2)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.jackrabbit.core.state.ItemStateException: failed to read n
ode state: 4be92ad2-7fba-4ed9-9607-94c2999f8364: null
        at org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.load(S
impleDbPersistenceManager.java:505)
        at org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState
(SharedItemStateManager.java:845)
        at org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtual
ItemState(SharedItemStateManager.java:772)
        at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(
SharedItemStateManager.java:206)
        at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(L
ocalItemStateManager.java:93)
        at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(L
ocalItemStateManager.java:148)
        at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAIt
emStateManager.java:235)
        at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState
(SessionItemStateManager.java:130)
        at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(Hierarch
yManagerImpl.java:119)
        at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(Hierarchy
ManagerImpl.java:265)
        at org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(Cachin
gHierarchyManager.java:127)




Can any body have idea how to solve this problem...

thanks in advace,
srinu





Re: corrupted root node state

Posted by Brian Moseley <bc...@osafoundation.org>.
On 1/3/06, Stefan Guggisberg <st...@gmail.com> wrote:

> currently i can only think of two possible explanations:
> 1. you're trying to read data which what was written with an older jackrabbit
>     version. the serialization format has changed a while ago (svn r329841).
> 2. the power cycle must have happened during the jdbc commit call
>     (SimpleDbPersistenceManager line 419) which in turn caused a corrupted
>     node state. although this seems rather unlikely...

hm, we've been using r354348 for several weeks, and before that
r330363, so i don't think we're a victim of #1.

i've written a tool to rebuild my repository based on a list of nodes
that i know should exist. in the process, i've made an interesting
discovery: when the root node has 1179 or fewer children, there is no
problem deserializing its node state, but when it has 1180 or more
children, the error occurs.

i have made this happen on my development platform, so now the problem
seems more like a limit on the number of child nodes for the root
node, or a limit on the size of the derby column.

a google search told me that the default size for a derby blob is 1M.
i modifed the derby.ddl file to make the blob 10M, rebuilt an empty
repository and inserted 1180 nodes, only to get the deserialization
error again.

(due to the steps i take to insure an empty repository with my custom
node types imported into it, i'm not 100% sure that the 10M change
made it in to the final repository. i've been trying to use ij to
examine the table, but i'm having problems getting ij to find the
database.)

> if you can provide me the data (derby database) i'll investigate further.

thanks. i'm checking into whether or not our privacy policy allows me
to share the database with you.

Re: corrupted root node state

Posted by Brian Moseley <bc...@maz.org>.
On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:

> done (svn r365947).

verified works for me. thanks!

Re: corrupted root node state

Posted by Stefan Guggisberg <st...@gmail.com>.
On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
> sorry, i was all wrong. it's not a derby bug but a bug in my code :(
> i should have used DataInputStream.readFully(byte[]) instead of
> DataInputStream.read(byte[]).
>
> i'll commit a fix asap.

done (svn r365947).

cheers
stefan

>
> cheers
> stefan
>
>
> On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
> > On 1/4/06, Brian Moseley <bc...@osafoundation.org> wrote:
> > > On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
> > >
> > > > your working hypothesis is absolutely correct. the problem is caused by a
> > > > bug in derby's stream implementation returned by ResultSet.getBinaryStream().
> > > > the problem occurs when you read across an internal 32k buffer boundary.
> > > > i suppose the bug is somewhere in derby's MemByteHolder class.
> > > > i also agree with you that this code is, erm..., quite confusing :(
> > >
> > > heh. we had a feeling it was a data structure size issue. i even
> > > looked at MemByteHolder at one point, but i didn't connect the dots.
> > > glad you did!
> > >
> > > > the good news is that your repository data is not corrupt and that
> > > > there's an easy temporary workaround for the derby bug (see attachment).
> > >
> > > awesome. shall i report a derby bug, or have you already done that?
> >
> > thanks, i already did that: http://issues.apache.org/jira/browse/DERBY-797
> >
> > cheers
> > stefan
> >
> > >
> > > > i guess you owe me a beer :)
> > >
> > > i owe you a sixer. if we ever make it to apachecon at the same time, it's yours.
> > >
> > > thanks!
> > >
> >
>

Re: corrupted root node state

Posted by Stefan Guggisberg <st...@gmail.com>.
sorry, i was all wrong. it's not a derby bug but a bug in my code :(
i should have used DataInputStream.readFully(byte[]) instead of
DataInputStream.read(byte[]).

i'll commit a fix asap.

cheers
stefan


On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
> On 1/4/06, Brian Moseley <bc...@osafoundation.org> wrote:
> > On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
> >
> > > your working hypothesis is absolutely correct. the problem is caused by a
> > > bug in derby's stream implementation returned by ResultSet.getBinaryStream().
> > > the problem occurs when you read across an internal 32k buffer boundary.
> > > i suppose the bug is somewhere in derby's MemByteHolder class.
> > > i also agree with you that this code is, erm..., quite confusing :(
> >
> > heh. we had a feeling it was a data structure size issue. i even
> > looked at MemByteHolder at one point, but i didn't connect the dots.
> > glad you did!
> >
> > > the good news is that your repository data is not corrupt and that
> > > there's an easy temporary workaround for the derby bug (see attachment).
> >
> > awesome. shall i report a derby bug, or have you already done that?
>
> thanks, i already did that: http://issues.apache.org/jira/browse/DERBY-797
>
> cheers
> stefan
>
> >
> > > i guess you owe me a beer :)
> >
> > i owe you a sixer. if we ever make it to apachecon at the same time, it's yours.
> >
> > thanks!
> >
>

Re: corrupted root node state

Posted by Stefan Guggisberg <st...@gmail.com>.
On 1/4/06, Brian Moseley <bc...@osafoundation.org> wrote:
> On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
>
> > your working hypothesis is absolutely correct. the problem is caused by a
> > bug in derby's stream implementation returned by ResultSet.getBinaryStream().
> > the problem occurs when you read across an internal 32k buffer boundary.
> > i suppose the bug is somewhere in derby's MemByteHolder class.
> > i also agree with you that this code is, erm..., quite confusing :(
>
> heh. we had a feeling it was a data structure size issue. i even
> looked at MemByteHolder at one point, but i didn't connect the dots.
> glad you did!
>
> > the good news is that your repository data is not corrupt and that
> > there's an easy temporary workaround for the derby bug (see attachment).
>
> awesome. shall i report a derby bug, or have you already done that?

thanks, i already did that: http://issues.apache.org/jira/browse/DERBY-797

cheers
stefan

>
> > i guess you owe me a beer :)
>
> i owe you a sixer. if we ever make it to apachecon at the same time, it's yours.
>
> thanks!
>

Re: corrupted root node state

Posted by Brian Moseley <bc...@osafoundation.org>.
On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:

> your working hypothesis is absolutely correct. the problem is caused by a
> bug in derby's stream implementation returned by ResultSet.getBinaryStream().
> the problem occurs when you read across an internal 32k buffer boundary.
> i suppose the bug is somewhere in derby's MemByteHolder class.
> i also agree with you that this code is, erm..., quite confusing :(

heh. we had a feeling it was a data structure size issue. i even
looked at MemByteHolder at one point, but i didn't connect the dots.
glad you did!

> the good news is that your repository data is not corrupt and that
> there's an easy temporary workaround for the derby bug (see attachment).

awesome. shall i report a derby bug, or have you already done that?

> i guess you owe me a beer :)

i owe you a sixer. if we ever make it to apachecon at the same time, it's yours.

thanks!

Re: corrupted root node state

Posted by Stefan Guggisberg <st...@gmail.com>.
On 1/4/06, Brian Moseley <bc...@osafoundation.org> wrote:
> On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:
>
> > i could reproduce the problem easily so i don't need your data anymore, thanks.
> > i'll keep you posted...
>
> question - do you have any feeling for what the problem might be?
>
> i've spent the last couple of days trying to pin it down and haven't
> had much luck. i've used ij to examine the node_data value for the
> root node inside derby, and it doesn't look malformed. i've stepped
> through with a debugger but been stymied when Serializer descends into
> DataInputReader (as i don't have the sun jdk sources, don't know if
> they're available, and couldn't get jswat to decompile rt.jar).
>
> my current working hypothesis is that there's a bug in the stream
> implementation that derby's handing to me via
> ResultSet.getBinaryStream(). i find those classes extremely confusing
> tho, so following what's going on inside them is extremely slow going.

your working hypothesis is absolutely correct. the problem is caused by a
bug in derby's stream implementation returned by ResultSet.getBinaryStream().
the problem occurs when you read across an internal 32k buffer boundary.
i suppose the bug is somewhere in derby's MemByteHolder class.
i also agree with you that this code is, erm..., quite confusing :(

the good news is that your repository data is not corrupt and that
there's an easy temporary workaround for the derby bug (see attachment).

>
> anyway, every day that i don't get this problem solved is a day our
> production service is down. so if anybody has ideas of what might be
> happening, please share - maybe it will be the jolt i need to find the
> problem and make a fix :)

i guess you owe me a beer :)

cheers
stefan

>
> (to summarize the problem - when i add a large number of nodes to the
> root node, save the session and close the repository, then try to
> re-open the repository, a premature EOF exception is thrown when
> deserializing the root node state loaded from the derby PM,
> specifically when reading the qname of the 1180th child node.)
>

Re: corrupted root node state

Posted by Brian Moseley <bc...@osafoundation.org>.
On 1/4/06, Stefan Guggisberg <st...@gmail.com> wrote:

> i could reproduce the problem easily so i don't need your data anymore, thanks.
> i'll keep you posted...

question - do you have any feeling for what the problem might be?

i've spent the last couple of days trying to pin it down and haven't
had much luck. i've used ij to examine the node_data value for the
root node inside derby, and it doesn't look malformed. i've stepped
through with a debugger but been stymied when Serializer descends into
DataInputReader (as i don't have the sun jdk sources, don't know if
they're available, and couldn't get jswat to decompile rt.jar).

my current working hypothesis is that there's a bug in the stream
implementation that derby's handing to me via
ResultSet.getBinaryStream(). i find those classes extremely confusing
tho, so following what's going on inside them is extremely slow going.

anyway, every day that i don't get this problem solved is a day our
production service is down. so if anybody has ideas of what might be
happening, please share - maybe it will be the jolt i need to find the
problem and make a fix :)

(to summarize the problem - when i add a large number of nodes to the
root node, save the session and close the repository, then try to
re-open the repository, a premature EOF exception is thrown when
deserializing the root node state loaded from the derby PM,
specifically when reading the qname of the 1180th child node.)

Re: corrupted root node state

Posted by Stefan Guggisberg <st...@gmail.com>.
On 1/2/06, Brian Moseley <bc...@osafoundation.org> wrote:
> 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.

currently i can only think of two possible explanations:
1. you're trying to read data which what was written with an older jackrabbit
    version. the serialization format has changed a while ago (svn r329841).
2. the power cycle must have happened during the jdbc commit call
    (SimpleDbPersistenceManager line 419) which in turn caused a corrupted
    node state. although this seems rather unlikely...

if you can provide me the data (derby database) i'll investigate further.

cheers
stefan

>
> 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)
>