[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