[dna-issues] [JBoss JIRA] Commented: (DNA-505) Svn Repository Source with NPE and other issues while opening connection through Jcr
Randall Hauch (JIRA)
jira-events at lists.jboss.org
Thu Sep 3 16:56:23 EDT 2009
[ https://jira.jboss.org/jira/browse/DNA-505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12484465#action_12484465 ]
Randall Hauch commented on DNA-505:
-----------------------------------
Yes, that was indeed the problem (though it's not the 'jcr:data' child node, it's 'jcr:content' - oops). And I was able to reproduce this in the integration test.
There really isn't a durable UUID available for each file in SVN (there is a single UUID for each repository, though). And so the SVN connector does not return a 'jcr:uuid' property for the 'jcr:content' node, and this fouls up the SessionCache implementation. However, while 'nt:file' and 'nt:folder' are not referenceable, 'nt:resource' is. But lucky for us that the JCR spec does not require that the 'jcr:content' node has a type of 'nt:resource'; it merely says:
"A common approach is to make the jcr:content a node of type nt:resource." (Section 6.7.22.6 of the 1.0.1 version of the JCR specification, page 160.)
So, a solution is to do the same thing we did in the file system connector: use a 'dna:resource' node type that is identical to 'nt:resource' except that it does not extend 'mix:referenceable'. This appears to have fixed the problem.
> Svn Repository Source with NPE and other issues while opening connection through Jcr
> ------------------------------------------------------------------------------------
>
> Key: DNA-505
> URL: https://jira.jboss.org/jira/browse/DNA-505
> Project: DNA
> Issue Type: Bug
> Components: Connectors
> Affects Versions: 0.6
> Environment: Mac OS X 10.5 - Jvm 1.5 - Maven 2
> Reporter: Luiz Fernando Teston
> Assignee: Randall Hauch
> Fix For: 0.6
>
> Attachments: 0001-fixing-a-few-null-pointer-exeptions.patch, DnaSvnUsingJcrWithProgramaticConfigurationTest.java
>
>
> Durring a test run to read data from some svn repository using Jcr api from DNA, it throws NullPointerException when trying to read jcr:content for nodes of type folder. This NPEs was really easy to solve. So, I created a patch for this. After this patch, when running the same unit test, it throws a repository source exception saying "svnRepositorySource does not allow same name siblings on nodes: read children of /{http://www.jcp.org/jcr/1.0}content[2] in the ""http://hamcrest.googlecode.com/svn/trunk/hamcrest-java"" workspace".
> The stack trace is here also:
> org.jboss.dna.graph.connector.RepositorySourceException: svnRepositorySource does not allow same name siblings on nodes: read children of /{http://www.jcp.org/jcr/1.0}content[2] in the ""http://hamcrest.googlecode.com/svn/trunk/hamcrest-java"" workspace
> at org.jboss.dna.connector.svn.SVNRepositoryRequestProcessor.checkThePath(SVNRepositoryRequestProcessor.java:1000)
> at org.jboss.dna.connector.svn.SVNRepositoryRequestProcessor.process(SVNRepositoryRequestProcessor.java:151)
> at org.jboss.dna.graph.request.processor.RequestProcessor.process(RequestProcessor.java:641)
> at org.jboss.dna.graph.request.processor.RequestProcessor.process(RequestProcessor.java:239)
> at org.jboss.dna.graph.request.processor.RequestProcessor.process(RequestProcessor.java:298)
> at org.jboss.dna.graph.request.processor.RequestProcessor.process(RequestProcessor.java:219)
> at org.jboss.dna.connector.svn.SVNRepositoryConnection.execute(SVNRepositoryConnection.java:176)
> at org.jboss.dna.graph.connector.federation.ForkRequestProcessor$Channel$3.call(ForkRequestProcessor.java:318)
> at org.jboss.dna.graph.connector.federation.ForkRequestProcessor$Channel$3.call(ForkRequestProcessor.java:314)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
> at java.lang.Thread.run(Thread.java:613)
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the dna-issues
mailing list