[ https://issues.apache.org/jira/browse/JCR-1664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613997#action_12613997 ]
Stefan Guggisberg commented on JCR-1664: ---------------------------------------- the contract of javax.naming.Reference is pretty clear, i.e. it maintains an ordered list of RefAddr objects. jackrabbit always adds the RefAddr objects in the same order. it seems like this is a glassfish issue not handling Reference's correctly. i'm therefore tempted to resolve this issue as 'Invalid'. > Also, another problem is that getReference is binding the class name to > BindableRepository class implementation and not javax.jcr.Repository. This > again causes them not to match if you follow the example on the wiki on > setting up the JNDI reference and use javax.jcr.Repository as the type. BindableRepository does implement javax.jcr.Repository. what WIKI page are you refering to? > JNDI Referencable Issues > ------------------------ > > Key: JCR-1664 > URL: https://issues.apache.org/jira/browse/JCR-1664 > Project: Jackrabbit > Issue Type: Bug > Components: jackrabbit-core > Affects Versions: core 1.4.5, 1.5 > Environment: linux glassfish jndi spring > Reporter: Nicholas Stuart > Fix For: 1.5 > > Attachments: out.patch > > > I'm questioning the use of Referencable in the BindableResource and > BindableResourceFactory classes for the JNDI lookup process. Reason for this > is because Referencable needs the Addrs to be in the EXACT order in order for > it to be considered the same. (see > http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Reference.html#equals(java.lang.Object) > ) > In order for me to get the JNDI reference to be found correctly I had to > change the BindableResource.getReference method to swap the order the > StringReferences were added to match up what was being passed in by > glassfish. This seems EXTREMELY fragile to me as I don't know what order, say > JBoss, would pass the StringRefences in in the Reference object for the > Factory method. > Also, another problem is that getReference is binding the class name to > BindableRepository class implementation and not javax.jcr.Repository. This > again causes them not to match if you follow the example on the wiki on > setting up the JNDI reference and use javax.jcr.Repository as the type. This > can either be fixed by changing the JNDI reference to use the > BindableRepository class or the change the BindableRepository class to set > that to the Repository interface. Not sure which would be considered 'better' > I have a patch that fixes the first issue (at least for glassfish), but not > the second. Again, this seems like a really 'breakable' setup right now and > not sure what would be better to make sure this is avoided. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.