[ http://issues.apache.org/jira/browse/JCR-588?page=all ] Stefan Guggisberg reassigned JCR-588: ------------------------------------- Assignee: Stefan Guggisberg > unable to batch create then save 100000 nodes under the root node; it works with 10000 > -------------------------------------------------------------------------------------- > > Key: JCR-588 > URL: http://issues.apache.org/jira/browse/JCR-588 > Project: Jackrabbit > Issue Type: Bug > Affects Versions: 1.0.1 > Environment: Tested both on Linux (Debian testing + sun jdk 1.5) and Windows XP +sun jdk 1.5 both with -Xmx300m > It fails identical on both. > Reporter: Cristian Grozea > Assigned To: Stefan Guggisberg > > When using the JackRabbit with the simplest setup, as described in the "FirstHops", the following code succeeds when the number of node to be created is 10000, but not when it is 100000. > --------------------- > Code: > for (i = 0; i < 100000; i++) { > Node hello = root.addNode("gct" + i); > // Node world = hello.addNode("world"); > hello.setProperty("message", "gctHello, World!" + i); > System.out.println(i); > } > session.save(); > --------------------- > --------------------- > Error: > when run with -Xmx450m > 99997 > 99998 > 99999 > Exception in thread "main" javax.jcr.ItemNotFoundException: 421f4202-66c5-4cc3-950c-09c64bfcfe63/{}message > at org.apache.jackrabbit.core.ItemManager.createItemInstance(ItemManager.java:464) > at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:320) > at org.apache.jackrabbit.core.ItemImpl.restoreTransientItems(ItemImpl.java:708) > at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208) > at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:805) > at FirstHop.main(FirstHop.java:39) > when run with -Xmx300m > 99997 > 99998 > 99999 > Exception in thread "main" javax.jcr.RepositoryException: failed to create transient state: there's already a node state instance with id cafebabe-cafe-babe-cafe-babecafebabe: there's already a node state instance with id cafebabe-cafe-babe-cafe-babecafebabe > at org.apache.jackrabbit.core.NodeImpl.getOrCreateTransientItemState(NodeImpl.java:287) > at org.apache.jackrabbit.core.NodeImpl.restoreTransient(NodeImpl.java:962) > at org.apache.jackrabbit.core.ItemImpl.restoreTransientItems(ItemImpl.java:714) > at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208) > at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:805) > at FirstHop.main(FirstHop.java:39) > Caused by: org.apache.jackrabbit.core.state.ItemStateException: there's already a node state instance with id cafebabe-cafe-babe-cafe-babecafebabe > at org.apache.jackrabbit.core.state.TransientItemStateManager.createNodeState(TransientItemStateManager.java:211) > at org.apache.jackrabbit.core.state.SessionItemStateManager.createTransientNodeState(SessionItemStateManager.java:499) > at org.apache.jackrabbit.core.NodeImpl.getOrCreateTransientItemState(NodeImpl.java:276) > ... 5 more > org.apache.jackrabbit.core.state.ItemStateException: there's already a node state instance with id cafebabe-cafe-babe-cafe-babecafebabe > at org.apache.jackrabbit.core.state.TransientItemStateManager.createNodeState(TransientItemStateManager.java:211) > at org.apache.jackrabbit.core.state.SessionItemStateManager.createTransientNodeState(SessionItemStateManager.java:499) > at org.apache.jackrabbit.core.NodeImpl.getOrCreateTransientItemState(NodeImpl.java:276) > at org.apache.jackrabbit.core.NodeImpl.restoreTransient(NodeImpl.java:962) > at org.apache.jackrabbit.core.ItemImpl.restoreTransientItems(ItemImpl.java:714) > at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208) > at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:805) > at FirstHop.main(FirstHop.java:39) > --------------------- -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira