I am trying to create a node (nt:file), save its parent folder, and then
checkin the node. When I do this, I receive a transaction error (see
below). The node does get created, but is corrupt -- it is missing the
jcr:mimeType child node, at least.
If I leave out the checkin, everything works fine.
Here is the code snippet:
Node fileNode = folderNode.addNode (filename, "nt:file");
fileNode.addMixin("mix:versionable");
fileNode.addMixin("mix:referenceable");
fileNode.addMixin("kk:authored");
fileNode.setProperty("kk:authorid", userId);
fileNode.setProperty("kk:filename", filename);
//create the mandatory child node - jcr:content
FileInputStream fis = null;
try
{
fis = new FileInputStream (file);
Node resNode = fileNode.addNode ("jcr:content", "nt:resource");
resNode.setProperty ("jcr:mimeType", getMimeType(file));
resNode.setProperty ("jcr:encoding", encoding);
resNode.setProperty ("jcr:data", fis);
Calendar lastModified = Calendar.getInstance ();
lastModified.setTimeInMillis (file.lastModified ());
resNode.setProperty ("jcr:lastModified", lastModified);
folderNode.save();
fileNode.checkin();
return fileNode;
}
finally
{
if (fis != null) fis.close();
}
and here is the error:
23:46:24,250 WARN [loggerI18N]
[com.arjuna.ats.internal.jta.resources.arjunacore.commitxaerror]
[com.arjuna.ats.internal.jta.resources.arju
nacore.commitxaerror] XAResourceRecord.commit - xa error
XAException.XA_RBOTHER
23:46:24,265 ERROR [SeamPhaseListener] uncaught exception
java.lang.IllegalStateException: Could not commit transaction
at
org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:602)
at
org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsAfterPhase(SeamPhaseListener.java:330)
at
org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:231)
at
org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:182)
at
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
...
Caused by: javax.transaction.HeuristicMixedException
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1395)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
at
org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
at
org.jboss.seam.transaction.UTTransaction.commit(UTTransaction.java:52)
at
org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:592)
... 60 more
Thanks,
ken clark
--
View this message in context:
http://www.nabble.com/Problem-with-node.checkin%28%29-in-same-transaction-node-was-created-tp19601525p19601525.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.