[
https://jira.jboss.org/jira/browse/DNA-505?page=com.atlassian.jira.plugin...
]
Randall Hauch commented on DNA-505:
-----------------------------------
One of the NPE issues (DNA-505) was more easily fixed by returning an empty collection;
the other was fixed as prescribed in the patch (though there was another situation that
required a similar change). A test case was added to the 'dna-connector-svn'
project to test using the DNA SVN repository, and this made apparent several other issues.
First, the children for a directory were being computed incorrectly; all of the child
directories were fine, but the locations of the nt:file nodes were being skipped and
instead the path to the nt:file's jcr:content child node were being returned. Second,
much of the JCR implementation relies upon ReadNodeRequest instead of the
ReadAllPropertiesRequest and ReadAllChildrenRequest. Although the default implementation
for ReadNodeRequest uses the other two and is technically correct, it can be quite
inefficient, and this was definitely true for the SVN connector. Therefore, the request
processor code was refactored to have a single method compute the children and/or the
properties for a node. This not only dramatically reduced the class size, but it
dramatically reduced the amount of duplicated code, and it appears to have slightly
improved performance (though I think the SVNKit is still the bottleneck).
Finally, for DNA-240, a new integration test was added to the
'dna-integration-test' project that very minimally tests using JCR on top of the
SVN connector. This may need to be rounded out in the future, but ideally we wouldn't
be hitting a remote SVN repository (simply because of the latency issue).
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
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