<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-371</id>
	<title>Nabble - Jackrabbit - Dev</title>
	<updated>2008-07-24T12:09:32Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Jackrabbit---Dev-f371.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Jackrabbit---Dev-f371.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-18638636</id>
	<title>[jira] Updated: (JCR-1691) Includes new (old) mimetypes that OpenOfficeTextExtractor can handle</title>
	<published>2008-07-24T12:09:32Z</published>
	<updated>2008-07-24T12:09:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1691?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1691?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Leslie H. Watter updated JCR-1691:
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: OpenOfficeTextExtractor-mimetype.patch
&lt;br&gt;&lt;br&gt;patch file to add mimetypes supported.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Includes new (old) mimetypes that OpenOfficeTextExtractor can handle
&lt;br&gt;&amp;gt; --------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1691
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1691&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1691&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-text-extractors
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: core 1.4.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: OS: Linux Debian kernel 2.6.18
&lt;br&gt;&amp;gt; java version &amp;quot;1.5.0_14&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Leslie H. Watter
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Trivial
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: OpenOfficeTextExtractor-mimetype.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The following patch adds the old openoffice (1.0 version) mimetypes to have their contents extracted. 
&lt;br&gt;&amp;gt; I've tested with simple files and it worked here. 
&lt;br&gt;&amp;gt; $ cat OpenOfficeTextExtractor-mimetype.patch
&lt;br&gt;&amp;gt; --- jackrabbit-1.4/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/OpenOfficeTextExtractor.java &amp;nbsp; &amp;nbsp;2007-12-19 12:57:58.000000000 -0200
&lt;br&gt;&amp;gt; +++ jackrabbit-1.4-modified/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/OpenOfficeTextExtractor.java &amp;nbsp;2008-07-24 15:01:08.000000000 -0300
&lt;br&gt;&amp;gt; @@ -54,7 +54,11 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.graphics&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.presentation&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.spreadsheet&amp;quot;,
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.text&amp;quot;});
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.text&amp;quot;,
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.calc&amp;quot;,
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.draw&amp;quot;,
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.impress&amp;quot;,
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.writer&amp;quot;});
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;//-------------------------------------------------------&amp;lt; TextExtractor &amp;gt;
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1691%29-Includes-new-%28old%29-mimetypes-that-OpenOfficeTextExtractor-can-handle-tp18637545p18638636.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18637545</id>
	<title>[jira] Created: (JCR-1691) Includes new (old) mimetypes that OpenOfficeTextExtractor can handle</title>
	<published>2008-07-24T11:11:31Z</published>
	<updated>2008-07-24T11:11:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Includes new (old) mimetypes that OpenOfficeTextExtractor can handle
&lt;br&gt;--------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JCR-1691
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1691&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1691&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jackrabbit
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: jackrabbit-text-extractors
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: core 1.4.5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: OS: Linux Debian kernel 2.6.18
&lt;br&gt;java version &amp;quot;1.5.0_14&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Leslie H. Watter
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Trivial
&lt;br&gt;&lt;br&gt;&lt;br&gt;The following patch adds the old openoffice (1.0 version) mimetypes to have their contents extracted. 
&lt;br&gt;I've tested with simple files and it worked here. 
&lt;br&gt;&lt;br&gt;&lt;br&gt;$ cat OpenOfficeTextExtractor-mimetype.patch
&lt;br&gt;--- jackrabbit-1.4/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/OpenOfficeTextExtractor.java &amp;nbsp; &amp;nbsp;2007-12-19 12:57:58.000000000 -0200
&lt;br&gt;+++ jackrabbit-1.4-modified/jackrabbit-text-extractors/src/main/java/org/apache/jackrabbit/extractor/OpenOfficeTextExtractor.java &amp;nbsp;2008-07-24 15:01:08.000000000 -0300
&lt;br&gt;@@ -54,7 +54,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.graphics&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.presentation&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.spreadsheet&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.text&amp;quot;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.oasis.opendocument.text&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.calc&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.draw&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.impress&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;application/vnd.sun.xml.writer&amp;quot;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//-------------------------------------------------------&amp;lt; TextExtractor &amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1691%29-Includes-new-%28old%29-mimetypes-that-OpenOfficeTextExtractor-can-handle-tp18637545p18637545.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18636179</id>
	<title>[jira] Commented: (JCR-1632) Mixin type loss</title>
	<published>2008-07-24T09:55:31Z</published>
	<updated>2008-07-24T09:55:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616533#action_12616533&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616533#action_12616533&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Grégory Joseph commented on JCR-1632:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;wow that'd be awesome :)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Mixin type loss
&lt;br&gt;&amp;gt; ---------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1632
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4, 1.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Linux 64-Bit (openSUSE 10.3) using Java 1.5.0_12 64-Bit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Frederic Laugier
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: core 1.4.6
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: asf-jackrabbit-tests_src.zip, patch_14
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using a bundle persistence manager, the mixin type information may be corrupted in the lucene index, causing queries like '//element(*, my:mixin)' to fail.
&lt;br&gt;&amp;gt; The problem is that the 'jcr:mixinTypes' may be stored in the bundle. Here is how this could happen :
&lt;br&gt;&amp;gt; First step: Create a node and add a mixin 'A'.
&lt;br&gt;&amp;gt; Everything's fine. The query '//element(*, 'A')' works.
&lt;br&gt;&amp;gt; Second step : Select the node and add a second mixin 'B'.
&lt;br&gt;&amp;gt; When the second mixin is added, the AbstractBundlePersistenceManager#load(PropertyId) is called to get the current mixins for the node. This method will store the PropertyState for 'jcr:mixinTypes' in the bundle (containing only the mixin 'A'). Then the NodeImpl#setMixinTypesProperty() will set the PropertyState for 'jcr:mixinTypes' in the node state (containing the mixins 'A' and 'B').
&lt;br&gt;&amp;gt; When the session is saved, the ChangeLog in AbstractBundlePersistenceManager#store() contains a modification for the 'jcr:mixinTypes' but it's being ignored, leaving the bundle with only mixin 'A'. The NodeIndexer looks into the node state to get the mixin types and indexes the node correctly. The queries '//element(*, 'A')' and '//element(*, 'B')' work.
&lt;br&gt;&amp;gt; Thrid step : Select the node and update a property. 
&lt;br&gt;&amp;gt; When the session is saved, the NodeIndexer asks again for the 'jcr:mixinTypes' property, by calling the AbstractBundlePersistenceManager#load(PropertyId) to load it. The bundle contains this property and returns only mixin 'A' (as it was stored in the second step), causing the index to use only mixin 'A'. The query '//element(*, 'A')' still works but '//element(*, 'B') doesn't work anymore.
&lt;br&gt;&amp;gt; A simple solution to this would be to not store the PropertyState for the 'jcr:mixinTypes' (and 'jcr:uuid' and 'jcr:primaryType', as the class description states) in the bundle when the PropertyState is loaded. It would fix the issue but not the contents on existing repositories. One way to allow the repositories to fix themselves is to not read or write these 3 properties in the BundleBinding#readBundle and BundleBinding#writeBundle methods, but I'm not sure wether or not it would have a performance impact.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1632%29-Mixin-type-loss-tp17555364p18636179.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18634072</id>
	<title>[jira] Commented: (JCR-1216) Unreferenced sessions should get garbage collected</title>
	<published>2008-07-24T08:15:31Z</published>
	<updated>2008-07-24T08:15:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616500#action_12616500&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616500#action_12616500&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Thomas Mueller commented on JCR-1216:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;The problem seems to be TransientRepository.session, which is a HashSet.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Unreferenced sessions should get garbage collected
&lt;br&gt;&amp;gt; --------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1216
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1216&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1216&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Thomas Mueller
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If an application opens many sessions and doesn't close them, they are never garbage collected. After some time, the virtual machine will run out of memory. This code will run out of memory after a few thousand logins:
&lt;br&gt;&amp;gt; Repository rep = new TransientRepository();
&lt;br&gt;&amp;gt; for (int i = 0; ; i++) {
&lt;br&gt;&amp;gt; &amp;nbsp; rep.login(new SimpleCredentials(&amp;quot;&amp;quot;, new char[0]));
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; Using a finalizer to close SessionImpl doesn't work, because it seems there are references from the (hard referenced part of the cache) to the SessionImpl objects. Maybe it is possible to remove those references, or change them to weak references.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1216%29-Unreferenced-sessions-should-get-garbage-collected-tp13751158p18634072.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18633245</id>
	<title>[jira] Updated: (JCR-1632) Mixin type loss</title>
	<published>2008-07-24T07:37:31Z</published>
	<updated>2008-07-24T07:37:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Jukka Zitting updated JCR-1632:
&lt;br&gt;-------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: &amp;nbsp; &amp;nbsp; (was: 1.5)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;core 1.4.6
&lt;br&gt;&lt;br&gt;No problem. Merged to the 1.4 branch in revision 679425. Would you like us to make an official jackrabbit-core 1.4.6 release with this fix?
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Mixin type loss
&lt;br&gt;&amp;gt; ---------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1632
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4, 1.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Linux 64-Bit (openSUSE 10.3) using Java 1.5.0_12 64-Bit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Frederic Laugier
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: core 1.4.6
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: asf-jackrabbit-tests_src.zip, patch_14
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using a bundle persistence manager, the mixin type information may be corrupted in the lucene index, causing queries like '//element(*, my:mixin)' to fail.
&lt;br&gt;&amp;gt; The problem is that the 'jcr:mixinTypes' may be stored in the bundle. Here is how this could happen :
&lt;br&gt;&amp;gt; First step: Create a node and add a mixin 'A'.
&lt;br&gt;&amp;gt; Everything's fine. The query '//element(*, 'A')' works.
&lt;br&gt;&amp;gt; Second step : Select the node and add a second mixin 'B'.
&lt;br&gt;&amp;gt; When the second mixin is added, the AbstractBundlePersistenceManager#load(PropertyId) is called to get the current mixins for the node. This method will store the PropertyState for 'jcr:mixinTypes' in the bundle (containing only the mixin 'A'). Then the NodeImpl#setMixinTypesProperty() will set the PropertyState for 'jcr:mixinTypes' in the node state (containing the mixins 'A' and 'B').
&lt;br&gt;&amp;gt; When the session is saved, the ChangeLog in AbstractBundlePersistenceManager#store() contains a modification for the 'jcr:mixinTypes' but it's being ignored, leaving the bundle with only mixin 'A'. The NodeIndexer looks into the node state to get the mixin types and indexes the node correctly. The queries '//element(*, 'A')' and '//element(*, 'B')' work.
&lt;br&gt;&amp;gt; Thrid step : Select the node and update a property. 
&lt;br&gt;&amp;gt; When the session is saved, the NodeIndexer asks again for the 'jcr:mixinTypes' property, by calling the AbstractBundlePersistenceManager#load(PropertyId) to load it. The bundle contains this property and returns only mixin 'A' (as it was stored in the second step), causing the index to use only mixin 'A'. The query '//element(*, 'A')' still works but '//element(*, 'B') doesn't work anymore.
&lt;br&gt;&amp;gt; A simple solution to this would be to not store the PropertyState for the 'jcr:mixinTypes' (and 'jcr:uuid' and 'jcr:primaryType', as the class description states) in the bundle when the PropertyState is loaded. It would fix the issue but not the contents on existing repositories. One way to allow the repositories to fix themselves is to not read or write these 3 properties in the BundleBinding#readBundle and BundleBinding#writeBundle methods, but I'm not sure wether or not it would have a performance impact.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1632%29-Mixin-type-loss-tp17555364p18633245.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18632889</id>
	<title>Re: Component releases, proposed solution</title>
	<published>2008-07-24T07:20:40Z</published>
	<updated>2008-07-24T07:20:40Z</updated>
	<author>
		<name>Thomas Müller-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; If done correctly, major new development can be done in the trunk
&lt;br&gt;&amp;gt;&amp;gt; without risk.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Sure, if it only concerns a single location or limited set of locations. If
&lt;br&gt;&amp;gt; it touches multiple places, this is not that easy.
&lt;br&gt;&lt;br&gt;USE_DATA_STORE is used in multiple places, I don't think it's a big
&lt;br&gt;problem. And at some point the setting can be removed (I think it
&lt;br&gt;could be removed by now).
&lt;br&gt;&lt;br&gt;&amp;gt; I basically like the idea but have my reservations with respect to system
&lt;br&gt;&amp;gt; property use: It makes it difficult in embedded situations and even almost
&lt;br&gt;&amp;gt; makes it impossible to use in app server or servlet container environments.
&lt;br&gt;&lt;br&gt;This system property is only enabled for testing. If disabled by
&lt;br&gt;default, it can be enabled to test an unreleased feature. If enabled
&lt;br&gt;by default, it can be used as a 'kill switch' to test if this
&lt;br&gt;functionality is responsible for a problem. I don't see a use case
&lt;br&gt;where you want to start multiple repositories with different settings.
&lt;br&gt;&lt;br&gt;&amp;gt; For example: you want to have two repositories in the same Java VM, one with
&lt;br&gt;&amp;gt; &amp;nbsp;and one without data store....
&lt;br&gt;&lt;br&gt;I don't see a use case for that currently. The system property is not
&lt;br&gt;something that people need to or should use (unless they want to
&lt;br&gt;explicitly test).
&lt;br&gt;&lt;br&gt;&amp;gt; If is really just for testing, a &amp;quot;public&amp;quot; field is bad, because this quickly
&lt;br&gt;&amp;gt; becomes (de-facto) API. And a branch may still be better suited.
&lt;br&gt;&lt;br&gt;It is a final field, and initialized only once. The system property is
&lt;br&gt;not final, but if clearly documented I don't think there is a risk
&lt;br&gt;people use it in production. This flag is used instead of branching,
&lt;br&gt;and given the disadvantages of branching I think it is worth thinking
&lt;br&gt;about it.
&lt;br&gt;&lt;br&gt;&amp;gt; Probably better -- also for visibility -- would be to have a functionality
&lt;br&gt;&amp;gt; to provide this kind of setup as part of the Repository descriptors.
&lt;br&gt;&lt;br&gt;In that case there is a bigger risk that people use it in production I
&lt;br&gt;think. Also, it couldn't be used in all components: only in those that
&lt;br&gt;have access to the repository.
&lt;br&gt;&lt;br&gt;&amp;gt; Maybe the use case is slightly wrong in that the InternalValue
&lt;br&gt;&amp;gt; should just use a &amp;quot;store&amp;quot;, which in turn either uses the new data store code
&lt;br&gt;&amp;gt; or the old code and has to be setup somehow)
&lt;br&gt;&lt;br&gt;It is doing that: it is eighter using BLOBValue (the old mechanism) or
&lt;br&gt;BLOBIn* (the new mechanism). InternalValue acts as the factory. Of
&lt;br&gt;course you could add another class that acts as the factory, but it
&lt;br&gt;wouldn't really simplify things.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Thomas
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Component-releases%2C-proposed-solution-tp18586828p18632889.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18632776</id>
	<title>[jira] Commented: (JCR-1632) Mixin type loss</title>
	<published>2008-07-24T07:15:33Z</published>
	<updated>2008-07-24T07:15:33Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616484#action_12616484&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616484#action_12616484&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Grégory Joseph commented on JCR-1632:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;Any chance this could be backported to 1.4 ? 
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Mixin type loss
&lt;br&gt;&amp;gt; ---------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1632
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4, 1.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Linux 64-Bit (openSUSE 10.3) using Java 1.5.0_12 64-Bit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Frederic Laugier
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: asf-jackrabbit-tests_src.zip, patch_14
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using a bundle persistence manager, the mixin type information may be corrupted in the lucene index, causing queries like '//element(*, my:mixin)' to fail.
&lt;br&gt;&amp;gt; The problem is that the 'jcr:mixinTypes' may be stored in the bundle. Here is how this could happen :
&lt;br&gt;&amp;gt; First step: Create a node and add a mixin 'A'.
&lt;br&gt;&amp;gt; Everything's fine. The query '//element(*, 'A')' works.
&lt;br&gt;&amp;gt; Second step : Select the node and add a second mixin 'B'.
&lt;br&gt;&amp;gt; When the second mixin is added, the AbstractBundlePersistenceManager#load(PropertyId) is called to get the current mixins for the node. This method will store the PropertyState for 'jcr:mixinTypes' in the bundle (containing only the mixin 'A'). Then the NodeImpl#setMixinTypesProperty() will set the PropertyState for 'jcr:mixinTypes' in the node state (containing the mixins 'A' and 'B').
&lt;br&gt;&amp;gt; When the session is saved, the ChangeLog in AbstractBundlePersistenceManager#store() contains a modification for the 'jcr:mixinTypes' but it's being ignored, leaving the bundle with only mixin 'A'. The NodeIndexer looks into the node state to get the mixin types and indexes the node correctly. The queries '//element(*, 'A')' and '//element(*, 'B')' work.
&lt;br&gt;&amp;gt; Thrid step : Select the node and update a property. 
&lt;br&gt;&amp;gt; When the session is saved, the NodeIndexer asks again for the 'jcr:mixinTypes' property, by calling the AbstractBundlePersistenceManager#load(PropertyId) to load it. The bundle contains this property and returns only mixin 'A' (as it was stored in the second step), causing the index to use only mixin 'A'. The query '//element(*, 'A')' still works but '//element(*, 'B') doesn't work anymore.
&lt;br&gt;&amp;gt; A simple solution to this would be to not store the PropertyState for the 'jcr:mixinTypes' (and 'jcr:uuid' and 'jcr:primaryType', as the class description states) in the bundle when the PropertyState is loaded. It would fix the issue but not the contents on existing repositories. One way to allow the repositories to fix themselves is to not read or write these 3 properties in the BundleBinding#readBundle and BundleBinding#writeBundle methods, but I'm not sure wether or not it would have a performance impact.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1632%29-Mixin-type-loss-tp17555364p18632776.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18631013</id>
	<title>[jira] Resolved: (JCR-1690) PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-24T05:35:31Z</published>
	<updated>2008-07-24T05:35:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Stefan Guggisberg resolved JCR-1690.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Duplicate
&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 1.5
&lt;br&gt;&lt;br&gt;resolving as duplicate of JCR-1632 which i just fixed.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; PM - Simple vs. Bundle - mixin removal handling
&lt;br&gt;&amp;gt; -----------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1690
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: core 1.4.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Jan Haderka
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Following code (assuming node had mixin mix:versionable before):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; node.removeMixin(&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; node.save();
&lt;br&gt;&amp;gt; leads to difference in stored data based on PM used.
&lt;br&gt;&amp;gt; If you perform the operation above and restart your repository
&lt;br&gt;&amp;gt; call to:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; node.isMixinType(﻿&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; will return false after restart in both cases, but
&lt;br&gt;&amp;gt; doing:
&lt;br&gt;&amp;gt; hasMixin(node, &amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; will return true when repository is using bundled PM. The hasMixin()
&lt;br&gt;&amp;gt; method just iterates over all values of jcr:mixinTypes property:
&lt;br&gt;&amp;gt; public static void hasMixin(Node node, String mixin) {
&lt;br&gt;&amp;gt; &amp;nbsp; try {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Value[] vals = node.getProperty(&amp;quot;jcr:mixinTypes&amp;quot;).getValues();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; vals.length; i++) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; log.debug(vals[i].getString());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (mixin.equals(vals[i].getString())) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; } catch (PathNotFoundException e) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; // property not found == can't contain anything
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; return false;
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; return false;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; I think the difference is caused by following code (JR 1.4.5) in
&lt;br&gt;&amp;gt; AbstractBundledPersistenceManager (which doesn't seem to have equivalent
&lt;br&gt;&amp;gt; in simple PM)
&lt;br&gt;&amp;gt; 557 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// skip primaryType pr mixinTypes properties
&lt;br&gt;&amp;gt; 558 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id.getName().equals(QName.JCR_PRIMARYTYPE)
&lt;br&gt;&amp;gt; 559 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_MIXINTYPES)
&lt;br&gt;&amp;gt; 560 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_UUID)) {
&lt;br&gt;&amp;gt; 561 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;
&lt;br&gt;&amp;gt; 562 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1690%29-PM---Simple-vs.-Bundle---mixin-removal-handling-tp18619900p18631013.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18631019</id>
	<title>[jira] Updated: (JCR-1632) Mixin type loss</title>
	<published>2008-07-24T05:35:31Z</published>
	<updated>2008-07-24T05:35:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Stefan Guggisberg updated JCR-1632:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 1.5
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Mixin type loss
&lt;br&gt;&amp;gt; ---------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1632
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4, 1.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Linux 64-Bit (openSUSE 10.3) using Java 1.5.0_12 64-Bit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Frederic Laugier
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: asf-jackrabbit-tests_src.zip, patch_14
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using a bundle persistence manager, the mixin type information may be corrupted in the lucene index, causing queries like '//element(*, my:mixin)' to fail.
&lt;br&gt;&amp;gt; The problem is that the 'jcr:mixinTypes' may be stored in the bundle. Here is how this could happen :
&lt;br&gt;&amp;gt; First step: Create a node and add a mixin 'A'.
&lt;br&gt;&amp;gt; Everything's fine. The query '//element(*, 'A')' works.
&lt;br&gt;&amp;gt; Second step : Select the node and add a second mixin 'B'.
&lt;br&gt;&amp;gt; When the second mixin is added, the AbstractBundlePersistenceManager#load(PropertyId) is called to get the current mixins for the node. This method will store the PropertyState for 'jcr:mixinTypes' in the bundle (containing only the mixin 'A'). Then the NodeImpl#setMixinTypesProperty() will set the PropertyState for 'jcr:mixinTypes' in the node state (containing the mixins 'A' and 'B').
&lt;br&gt;&amp;gt; When the session is saved, the ChangeLog in AbstractBundlePersistenceManager#store() contains a modification for the 'jcr:mixinTypes' but it's being ignored, leaving the bundle with only mixin 'A'. The NodeIndexer looks into the node state to get the mixin types and indexes the node correctly. The queries '//element(*, 'A')' and '//element(*, 'B')' work.
&lt;br&gt;&amp;gt; Thrid step : Select the node and update a property. 
&lt;br&gt;&amp;gt; When the session is saved, the NodeIndexer asks again for the 'jcr:mixinTypes' property, by calling the AbstractBundlePersistenceManager#load(PropertyId) to load it. The bundle contains this property and returns only mixin 'A' (as it was stored in the second step), causing the index to use only mixin 'A'. The query '//element(*, 'A')' still works but '//element(*, 'B') doesn't work anymore.
&lt;br&gt;&amp;gt; A simple solution to this would be to not store the PropertyState for the 'jcr:mixinTypes' (and 'jcr:uuid' and 'jcr:primaryType', as the class description states) in the bundle when the PropertyState is loaded. It would fix the issue but not the contents on existing repositories. One way to allow the repositories to fix themselves is to not read or write these 3 properties in the BundleBinding#readBundle and BundleBinding#writeBundle methods, but I'm not sure wether or not it would have a performance impact.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1632%29-Mixin-type-loss-tp17555364p18631019.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18630994</id>
	<title>[jira] Resolved: (JCR-1632) Mixin type loss</title>
	<published>2008-07-24T05:33:31Z</published>
	<updated>2008-07-24T05:33:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Stefan Guggisberg resolved JCR-1632.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;fixed in svn r 679389
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Mixin type loss
&lt;br&gt;&amp;gt; ---------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1632
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4, 1.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Linux 64-Bit (openSUSE 10.3) using Java 1.5.0_12 64-Bit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Frederic Laugier
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: asf-jackrabbit-tests_src.zip, patch_14
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When using a bundle persistence manager, the mixin type information may be corrupted in the lucene index, causing queries like '//element(*, my:mixin)' to fail.
&lt;br&gt;&amp;gt; The problem is that the 'jcr:mixinTypes' may be stored in the bundle. Here is how this could happen :
&lt;br&gt;&amp;gt; First step: Create a node and add a mixin 'A'.
&lt;br&gt;&amp;gt; Everything's fine. The query '//element(*, 'A')' works.
&lt;br&gt;&amp;gt; Second step : Select the node and add a second mixin 'B'.
&lt;br&gt;&amp;gt; When the second mixin is added, the AbstractBundlePersistenceManager#load(PropertyId) is called to get the current mixins for the node. This method will store the PropertyState for 'jcr:mixinTypes' in the bundle (containing only the mixin 'A'). Then the NodeImpl#setMixinTypesProperty() will set the PropertyState for 'jcr:mixinTypes' in the node state (containing the mixins 'A' and 'B').
&lt;br&gt;&amp;gt; When the session is saved, the ChangeLog in AbstractBundlePersistenceManager#store() contains a modification for the 'jcr:mixinTypes' but it's being ignored, leaving the bundle with only mixin 'A'. The NodeIndexer looks into the node state to get the mixin types and indexes the node correctly. The queries '//element(*, 'A')' and '//element(*, 'B')' work.
&lt;br&gt;&amp;gt; Thrid step : Select the node and update a property. 
&lt;br&gt;&amp;gt; When the session is saved, the NodeIndexer asks again for the 'jcr:mixinTypes' property, by calling the AbstractBundlePersistenceManager#load(PropertyId) to load it. The bundle contains this property and returns only mixin 'A' (as it was stored in the second step), causing the index to use only mixin 'A'. The query '//element(*, 'A')' still works but '//element(*, 'B') doesn't work anymore.
&lt;br&gt;&amp;gt; A simple solution to this would be to not store the PropertyState for the 'jcr:mixinTypes' (and 'jcr:uuid' and 'jcr:primaryType', as the class description states) in the bundle when the PropertyState is loaded. It would fix the issue but not the contents on existing repositories. One way to allow the repositories to fix themselves is to not read or write these 3 properties in the BundleBinding#readBundle and BundleBinding#writeBundle methods, but I'm not sure wether or not it would have a performance impact.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1632%29-Mixin-type-loss-tp17555364p18630994.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18629812</id>
	<title>Re: Component releases, proposed solution</title>
	<published>2008-07-24T04:16:02Z</published>
	<updated>2008-07-24T04:16:02Z</updated>
	<author>
		<name>Jukka Zitting</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;On Wed, Jul 23, 2008 at 9:35 AM, Felix Meschberger &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18629812&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;fmeschbe@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; As corrolary to these notes, I would add (yes these will be controversial, I
&lt;br&gt;&amp;gt; know):
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;* Branches are used for development and not for releases.
&lt;br&gt;&amp;gt; &amp;nbsp;* Releases are (almost) only cut from trunk
&lt;br&gt;&amp;gt; &amp;nbsp;* In case of an important bugfix to be applied to an old
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;release, a branch will be created from the respective
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;release tag [...]
&lt;br&gt;&lt;br&gt;-1 I'm more a fan of release branches than development branches. Why?
&lt;br&gt;&lt;br&gt;a) It makes it easy to produce patch releases containing just bug
&lt;br&gt;fixes. Such maintenance releases are important as they can be easily
&lt;br&gt;applied in production with low risk of regressions and zero need for
&lt;br&gt;configuration changes.
&lt;br&gt;&lt;br&gt;b) Release branches only require &amp;quot;one-way merging&amp;quot; from trunk. This is
&lt;br&gt;quite simple and pretty well supported by Subversion. Development
&lt;br&gt;branches however require &amp;quot;two-way merging&amp;quot;, first to keep up with
&lt;br&gt;other changes in trunk and then to merge changes back to trunk. The
&lt;br&gt;merge tracking feature in Subversion 1.5 makes this easier, but it's
&lt;br&gt;still tricky.
&lt;br&gt;&lt;br&gt;c) I think it's important that we have all development happening in
&lt;br&gt;the same tree. Any extensive development effort that lasts longer than
&lt;br&gt;a few weeks will require coordination with other developers, and the
&lt;br&gt;easiest way to do that is to keep it in trunk.
&lt;br&gt;&lt;br&gt;Our trunk is (and should be) the place where bleeding edge development
&lt;br&gt;happens. We use branches so that trunk can continue to evolve while a
&lt;br&gt;feature release is being stabilized or maintenance releases are being
&lt;br&gt;prepared.
&lt;br&gt;&lt;br&gt;BR,
&lt;br&gt;&lt;br&gt;Jukka Zitting
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Component-releases%2C-proposed-solution-tp18586828p18629812.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18628596</id>
	<title>Re: PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-24T02:49:13Z</published>
	<updated>2008-07-24T02:49:13Z</updated>
	<author>
		<name>Stefan Guggisberg-2</name>
	</author>
	<content type="html">On Thu, Jul 24, 2008 at 9:59 AM, Marcel Reutegger
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18628596&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;marcel.reutegger@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; not sure, but I think this has already been reported before. this issue
&lt;br&gt;&amp;gt; looks very similar:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&lt;br&gt;right, i agree. it's the same problem:
&lt;br&gt;&lt;br&gt;there's a bug in AbstractBundlePersistenceManager which may lead
&lt;br&gt;to jcr:mixinTypes properties not reflecting the actual set of assigned
&lt;br&gt;mixin types.
&lt;br&gt;&lt;br&gt;cheers
&lt;br&gt;stefan
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; regards
&lt;br&gt;&amp;gt; &amp;nbsp;marcel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jan Haderka wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; it's a bug. thanks for your detailed analysis!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; could please create a jira issue?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; You're welcome. :)
&lt;br&gt;&amp;gt;&amp;gt; Reported on jira as &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt;&amp;gt; Jan
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PM---Simple-vs.-Bundle---mixin-removal-handling-tp18613011p18628596.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18627445</id>
	<title>[jira] Resolved: (JCR-1689) Multiple tests test for locking instead of versioning</title>
	<published>2008-07-24T01:25:31Z</published>
	<updated>2008-07-24T01:25:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Marcel Reutegger resolved JCR-1689.
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Fixed
&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 1.5
&lt;br&gt;&lt;br&gt;Applied patch in revision: 679300
&lt;br&gt;&lt;br&gt;Thank you for reporting this issue and providing a patch.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Multiple tests test for locking instead of versioning
&lt;br&gt;&amp;gt; -----------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1689
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1689&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1689&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-jcr-tests
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: SVN trunk as of 23-Jul-08
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Janne Jalkanen
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: jcr-tck-patch.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Multiple tests claim to check whether versioning is supported, but in reality check for locking. &amp;nbsp;Patch included.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1689%29-Multiple-tests-test-for-locking-instead-of-versioning-tp18613197p18627445.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18627107</id>
	<title>Re: PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-24T00:59:52Z</published>
	<updated>2008-07-24T00:59:52Z</updated>
	<author>
		<name>Marcel Reutegger</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;not sure, but I think this has already been reported before. this issue looks 
&lt;br&gt;very similar:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1632&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1632&lt;/a&gt;&lt;br&gt;&lt;br&gt;regards
&lt;br&gt;&amp;nbsp; marcel
&lt;br&gt;&lt;br&gt;Jan Haderka wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; it's a bug. thanks for your detailed analysis!
&lt;br&gt;&amp;gt;&amp;gt; could please create a jira issue?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; You're welcome. :)
&lt;br&gt;&amp;gt; Reported on jira as &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Jan
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PM---Simple-vs.-Bundle---mixin-removal-handling-tp18613011p18627107.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18626307</id>
	<title>Re: Component releases, proposed solution</title>
	<published>2008-07-23T23:53:37Z</published>
	<updated>2008-07-23T23:53:37Z</updated>
	<author>
		<name>Felix Meschberger-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;Thomas Müller schrieb:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Major new developments -- the implementation of the foreseen JCR 2.0 ACL
&lt;br&gt;&amp;gt;&amp;gt; functionality comes to mind -- should be done on development branches and
&lt;br&gt;&amp;gt;&amp;gt; merged back into trunk as the developer(s) see fit aka ready for release.
&lt;br&gt;&amp;gt;&amp;gt; Regular development still takes place on trunk, of course.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If done correctly, major new development can be done in the trunk
&lt;br&gt;&amp;gt; without risk.
&lt;br&gt;&lt;br&gt;Sure, if it only concerns a single location or limited set of locations. 
&lt;br&gt;If it touches multiple places, this is not that easy.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; How to do that: Use a (static final boolean) constant to
&lt;br&gt;&amp;gt; enable / disable a certain new feature or new code path. It is used in
&lt;br&gt;&amp;gt; the DataStore implementation. At first, it was disabled (only enabled
&lt;br&gt;&amp;gt; when I run tests), and now it is enabled by default:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; class InternalValue {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public static final boolean USE_DATA_STORE =
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Boolean.valueOf(System.getProperty(&amp;quot;org.jackrabbit.useDataStore&amp;quot;,
&lt;br&gt;&amp;gt; &amp;quot;true&amp;quot;)).booleanValue();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; and then, everywhere where it is required, do this:
&lt;br&gt;&amp;gt; if (USE_DATA_STORE) {
&lt;br&gt;&amp;gt; &amp;nbsp; // new code
&lt;br&gt;&amp;gt; } else {
&lt;br&gt;&amp;gt; &amp;nbsp; // old code
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; As an added advantage, it's easy to find out if this feature is
&lt;br&gt;&amp;gt; responsible for a problem, by disabling the system property.
&lt;/div&gt;&lt;br&gt;I basically like the idea but have my reservations with respect to 
&lt;br&gt;system property use: It makes it difficult in embedded situations and 
&lt;br&gt;even almost makes it impossible to use in app server or servlet 
&lt;br&gt;container environments. For example: you want to have two repositories 
&lt;br&gt;in the same Java VM, one with &amp;nbsp;and one without data store....
&lt;br&gt;&lt;br&gt;If is really just for testing, a &amp;quot;public&amp;quot; field is bad, because this 
&lt;br&gt;quickly becomes (de-facto) API. And a branch may still be better suited.
&lt;br&gt;&lt;br&gt;Probably better -- also for visibility -- would be to have a 
&lt;br&gt;functionality to provide this kind of setup as part of the Repository 
&lt;br&gt;descriptors. (And yes, I cannot imagine how to implement this in the 
&lt;br&gt;InternalValue class you presented. Maybe the use case is slightly wrong 
&lt;br&gt;in that the InternalValue should just use a &amp;quot;store&amp;quot;, which in turn 
&lt;br&gt;either uses the new data store code or the old code and has to be setup 
&lt;br&gt;somehow)
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;Felix
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Component-releases%2C-proposed-solution-tp18586828p18626307.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18619949</id>
	<title>Re: PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-23T13:33:35Z</published>
	<updated>2008-07-23T13:33:35Z</updated>
	<author>
		<name>Jan Haderka</name>
	</author>
	<content type="html">&lt;br&gt;&amp;gt; it's a bug. thanks for your detailed analysis!
&lt;br&gt;&amp;gt; could please create a jira issue?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br&gt;You're welcome. :)
&lt;br&gt;Reported on jira as &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690&lt;/a&gt;&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Jan
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PM---Simple-vs.-Bundle---mixin-removal-handling-tp18613011p18619949.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18619900</id>
	<title>[jira] Created: (JCR-1690) PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-23T13:31:31Z</published>
	<updated>2008-07-23T13:31:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">PM - Simple vs. Bundle - mixin removal handling
&lt;br&gt;-----------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JCR-1690
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1690&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1690&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jackrabbit
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: core 1.4.5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Jan Haderka
&lt;br&gt;&lt;br&gt;&lt;br&gt;Following code (assuming node had mixin mix:versionable before):
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.removeMixin(&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.save();
&lt;br&gt;leads to difference in stored data based on PM used.
&lt;br&gt;If you perform the operation above and restart your repository
&lt;br&gt;call to:
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.isMixinType(﻿&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;will return false after restart in both cases, but
&lt;br&gt;doing:
&lt;br&gt;hasMixin(node, &amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;will return true when repository is using bundled PM. The hasMixin()
&lt;br&gt;method just iterates over all values of jcr:mixinTypes property:
&lt;br&gt;&lt;br&gt;public static void hasMixin(Node node, String mixin) {
&lt;br&gt;&amp;nbsp; try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; Value[] vals = node.getProperty(&amp;quot;jcr:mixinTypes&amp;quot;).getValues();
&lt;br&gt;&amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; vals.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; log.debug(vals[i].getString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (mixin.equals(vals[i].getString())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; } catch (PathNotFoundException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; // property not found == can't contain anything
&lt;br&gt;&amp;nbsp; &amp;nbsp; return false;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&amp;nbsp; return false;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;I think the difference is caused by following code (JR 1.4.5) in
&lt;br&gt;AbstractBundledPersistenceManager (which doesn't seem to have equivalent
&lt;br&gt;in simple PM)
&lt;br&gt;&lt;br&gt;557 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// skip primaryType pr mixinTypes properties
&lt;br&gt;558 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id.getName().equals(QName.JCR_PRIMARYTYPE)
&lt;br&gt;559 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_MIXINTYPES)
&lt;br&gt;560 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_UUID)) {
&lt;br&gt;561 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;
&lt;br&gt;562 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1690%29-PM---Simple-vs.-Bundle---mixin-removal-handling-tp18619900p18619900.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18615453</id>
	<title>Re: Component releases, proposed solution</title>
	<published>2008-07-23T09:50:40Z</published>
	<updated>2008-07-23T09:50:40Z</updated>
	<author>
		<name>Thomas Müller-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;gt; Major new developments -- the implementation of the foreseen JCR 2.0 ACL
&lt;br&gt;&amp;gt; functionality comes to mind -- should be done on development branches and
&lt;br&gt;&amp;gt; merged back into trunk as the developer(s) see fit aka ready for release.
&lt;br&gt;&amp;gt; Regular development still takes place on trunk, of course.
&lt;br&gt;&lt;br&gt;If done correctly, major new development can be done in the trunk
&lt;br&gt;without risk. How to do that: Use a (static final boolean) constant to
&lt;br&gt;enable / disable a certain new feature or new code path. It is used in
&lt;br&gt;the DataStore implementation. At first, it was disabled (only enabled
&lt;br&gt;when I run tests), and now it is enabled by default:
&lt;br&gt;&lt;br&gt;class InternalValue {
&lt;br&gt;&amp;nbsp; &amp;nbsp;public static final boolean USE_DATA_STORE =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Boolean.valueOf(System.getProperty(&amp;quot;org.jackrabbit.useDataStore&amp;quot;,
&lt;br&gt;&amp;quot;true&amp;quot;)).booleanValue();
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;and then, everywhere where it is required, do this:
&lt;br&gt;if (USE_DATA_STORE) {
&lt;br&gt;&amp;nbsp; // new code
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; // old code
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;As an added advantage, it's easy to find out if this feature is
&lt;br&gt;responsible for a problem, by disabling the system property.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;* Releases are (almost) only cut from trunk
&lt;br&gt;&amp;gt; &amp;nbsp;* Branches are used for development and not for releases.
&lt;br&gt;&amp;gt; Trunk should always be as stable as possible. Releases are built from tags
&lt;br&gt;&amp;gt; based on trunk. This further simplifies the release procedure as there is no
&lt;br&gt;&amp;gt; more branching and nore more bug fix back porting.
&lt;br&gt;&lt;br&gt;That's a good idea.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Thomas
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Component-releases%2C-proposed-solution-tp18586828p18615453.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18615195</id>
	<title>Re: PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-23T09:39:17Z</published>
	<updated>2008-07-23T09:39:17Z</updated>
	<author>
		<name>Stefan Guggisberg-2</name>
	</author>
	<content type="html">hi jan
&lt;br&gt;&lt;br&gt;On Wed, Jul 23, 2008 at 5:10 PM, Jan Haderka &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18615195&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jan.haderka@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have a question about purpose of perceived difference in handling
&lt;br&gt;&amp;gt; mixins when using Simple or Bundled PM.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Following code (assuming node had mixin mix:versionable before):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;node.removeMixin(&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;node.save();
&lt;br&gt;&amp;gt; leads to difference in stored data based on PM used.
&lt;br&gt;&amp;gt; If you perform the operation above and restart your repository
&lt;br&gt;&amp;gt; call to:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;node.isMixinType(﻿&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; will return false after restart in both cases, but
&lt;br&gt;&amp;gt; doing:
&lt;br&gt;&amp;gt; hasMixin(node, &amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;gt; will return true when repository is using bundled PM. The hasMixin()
&lt;br&gt;&amp;gt; method just iterates over all values of jcr:mixinTypes property:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public static void hasMixin(Node node, String mixin) {
&lt;br&gt;&amp;gt; &amp;nbsp;try {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Value[] vals = node.getProperty(&amp;quot;jcr:mixinTypes&amp;quot;).getValues();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; vals.length; i++) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(vals[i].getString());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (mixin.equals(vals[i].getString())) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp;} catch (PathNotFoundException e) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;// property not found == can't contain anything
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp;return false;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think the difference is caused by following code (JR 1.4.5) in
&lt;br&gt;&amp;gt; AbstractBundledPersistenceManager (which doesn't seem to have equivalent
&lt;br&gt;&amp;gt; in simple PM)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 557 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// skip primaryType pr mixinTypes properties
&lt;br&gt;&amp;gt; 558 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id.getName().equals(QName.JCR_PRIMARYTYPE)
&lt;br&gt;&amp;gt; 559 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_MIXINTYPES)
&lt;br&gt;&amp;gt; 560 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_UUID)) {
&lt;br&gt;&amp;gt; 561 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;
&lt;br&gt;&amp;gt; 562 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm not sure whether it is a bug or not, it doesn't seem to have any
&lt;br&gt;&amp;gt; side effects.
&lt;/div&gt;&lt;br&gt;it's a bug. thanks for your detailed analysis!
&lt;br&gt;could please create a jira issue?
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;stefan
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Can someone explain to me what is the reason for skipping primary and
&lt;br&gt;&amp;gt; mixin types property changes when persisting nodes?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In case it is relevant: I discovered &amp; tested this while working with
&lt;br&gt;&amp;gt; Derby bundle &amp; simple PM and using JR 1.4.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Jan
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PM---Simple-vs.-Bundle---mixin-removal-handling-tp18613011p18615195.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18613179</id>
	<title>[jira] Updated: (JCR-1689) Multiple tests test for locking instead of versioning</title>
	<published>2008-07-23T08:17:31Z</published>
	<updated>2008-07-23T08:17:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Janne Jalkanen updated JCR-1689:
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: jcr-tck-patch.txt
&lt;br&gt;&lt;br&gt;Patch fixes three TCK test cases to make the proper check.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Multiple tests test for locking instead of versioning
&lt;br&gt;&amp;gt; -----------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1689
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1689&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1689&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-jcr-tests
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: SVN trunk as of 23-Jul-08
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Janne Jalkanen
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: jcr-tck-patch.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Multiple tests claim to check whether versioning is supported, but in reality check for locking. &amp;nbsp;Patch included.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1689%29-Multiple-tests-test-for-locking-instead-of-versioning-tp18613197p18613179.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18613197</id>
	<title>[jira] Created: (JCR-1689) Multiple tests test for locking instead of versioning</title>
	<published>2008-07-23T08:17:31Z</published>
	<updated>2008-07-23T08:17:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Multiple tests test for locking instead of versioning
&lt;br&gt;-----------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JCR-1689
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1689&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1689&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jackrabbit
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: jackrabbit-jcr-tests
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: SVN trunk as of 23-Jul-08
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Janne Jalkanen
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Attachments: jcr-tck-patch.txt
&lt;br&gt;&lt;br&gt;Multiple tests claim to check whether versioning is supported, but in reality check for locking. &amp;nbsp;Patch included.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1689%29-Multiple-tests-test-for-locking-instead-of-versioning-tp18613197p18613197.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18613011</id>
	<title>PM - Simple vs. Bundle - mixin removal handling</title>
	<published>2008-07-23T08:10:12Z</published>
	<updated>2008-07-23T08:10:12Z</updated>
	<author>
		<name>Jan Haderka</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I have a question about purpose of perceived difference in handling
&lt;br&gt;mixins when using Simple or Bundled PM.
&lt;br&gt;&lt;br&gt;Following code (assuming node had mixin mix:versionable before):
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.removeMixin(&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.save();
&lt;br&gt;leads to difference in stored data based on PM used.
&lt;br&gt;If you perform the operation above and restart your repository
&lt;br&gt;call to:
&lt;br&gt;&amp;nbsp; &amp;nbsp; node.isMixinType(﻿&amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;will return false after restart in both cases, but
&lt;br&gt;doing:
&lt;br&gt;hasMixin(node, &amp;quot;mix:versionable&amp;quot;);
&lt;br&gt;will return true when repository is using bundled PM. The hasMixin()
&lt;br&gt;method just iterates over all values of jcr:mixinTypes property:
&lt;br&gt;&lt;br&gt;public static void hasMixin(Node node, String mixin) {
&lt;br&gt;&amp;nbsp; try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; Value[] vals = node.getProperty(&amp;quot;jcr:mixinTypes&amp;quot;).getValues();
&lt;br&gt;&amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; vals.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; log.debug(vals[i].getString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (mixin.equals(vals[i].getString())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; } catch (PathNotFoundException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; // property not found == can't contain anything
&lt;br&gt;&amp;nbsp; &amp;nbsp; return false;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&amp;nbsp; return false;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;I think the difference is caused by following code (JR 1.4.5) in
&lt;br&gt;AbstractBundledPersistenceManager (which doesn't seem to have equivalent
&lt;br&gt;in simple PM)
&lt;br&gt;&lt;br&gt;557 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// skip primaryType pr mixinTypes properties
&lt;br&gt;558 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id.getName().equals(QName.JCR_PRIMARYTYPE)
&lt;br&gt;559 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_MIXINTYPES)
&lt;br&gt;560 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| id.getName().equals(QName.JCR_UUID)) {
&lt;br&gt;561 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;
&lt;br&gt;562 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;I'm not sure whether it is a bug or not, it doesn't seem to have any
&lt;br&gt;side effects.
&lt;br&gt;Can someone explain to me what is the reason for skipping primary and
&lt;br&gt;mixin types property changes when persisting nodes?
&lt;br&gt;&lt;br&gt;In case it is relevant: I discovered &amp; tested this while working with
&lt;br&gt;Derby bundle &amp; simple PM and using JR 1.4.5 
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Jan
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PM---Simple-vs.-Bundle---mixin-removal-handling-tp18613011p18613011.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18612973</id>
	<title>[jira] Closed: (JCR-1688) Query parser builds invalid parse tree</title>
	<published>2008-07-23T08:09:31Z</published>
	<updated>2008-07-23T08:09:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Michael Dürig closed JCR-1688.
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;Works great, thanks.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Query parser builds invalid parse tree
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1688
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-spi-commons
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michael Dürig
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Calling org.apache.jackrabbit.spi.commons.query.QueryParser.parse on 
&lt;br&gt;&amp;gt; SELECT prop1 FROM nt:unstructured WHERE prop1 IS NOT NULL ORDER BY prop1 ASC 
&lt;br&gt;&amp;gt; results in the following parse tree
&lt;br&gt;&amp;gt; + Select properties: {}prop1
&lt;br&gt;&amp;gt; &amp;nbsp;+ PathQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;+ LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=true Index=NONE
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ RelationQueryNode: Op: NOT NULL Prop=@{}prop1 Type=STRING Value=%
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ NodeTypeQueryNode: &amp;nbsp;Prop={&lt;a href=&quot;http://www.jcp.org/jcr/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/1.0&lt;/a&gt;}primaryType Value={&lt;a href=&quot;http://www.jcp.org/jcr/nt/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/nt/1.0&lt;/a&gt;}unstructured
&lt;br&gt;&amp;gt; &amp;nbsp;+ OrderQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{}prop1 asc=true
&lt;br&gt;&amp;gt; The RelationQueryNode should not have a second operand since the NOT NULL operator is unary.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1688%29-Query-parser-builds-invalid-parse-tree-tp18606367p18612973.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18612163</id>
	<title>[jira] Commented: (JCR-1456) Database connection pooling</title>
	<published>2008-07-23T07:37:32Z</published>
	<updated>2008-07-23T07:37:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616064#action_12616064&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616064#action_12616064&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Matej Knopp commented on JCR-1456:
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;Thanks a lot for the comment. You're right, there might be a problem with different connections obtained. This could be handled by attaching active connection to current thread, so that the nested calls would always obtain the active connection. Anyway, I will look into it and post a new patch.
&lt;br&gt;&lt;br&gt;I agree that this is a substantial change and will require lot of testing. But i think at some point it will be necessary to bite the bullet and implement connection pooling, whether it will be based on my patch or not. The current situation is rather problematic, keeping opened connection per workspace doesn't scale well at all.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Database connection pooling
&lt;br&gt;&amp;gt; ---------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1456
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1456&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1456&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Jukka Zitting
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: patch-1456-1.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jackrabbit should use database connection pools instead of a single connection per persistence manager, cluster journal, or database data store.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1456%29-Database-connection-pooling-tp15853971p18612163.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18611846</id>
	<title>[jira] Resolved: (JCR-1688) Query parser builds invalid parse tree</title>
	<published>2008-07-23T07:21:31Z</published>
	<updated>2008-07-23T07:21:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Marcel Reutegger resolved JCR-1688.
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Fixed
&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 1.5
&lt;br&gt;&lt;br&gt;Also fixed second issue. svn revision: 679093
&lt;br&gt;&lt;br&gt;Thank you for reporting this issue.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Query parser builds invalid parse tree
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1688
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-spi-commons
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michael Dürig
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Calling org.apache.jackrabbit.spi.commons.query.QueryParser.parse on 
&lt;br&gt;&amp;gt; SELECT prop1 FROM nt:unstructured WHERE prop1 IS NOT NULL ORDER BY prop1 ASC 
&lt;br&gt;&amp;gt; results in the following parse tree
&lt;br&gt;&amp;gt; + Select properties: {}prop1
&lt;br&gt;&amp;gt; &amp;nbsp;+ PathQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;+ LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=true Index=NONE
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ RelationQueryNode: Op: NOT NULL Prop=@{}prop1 Type=STRING Value=%
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ NodeTypeQueryNode: &amp;nbsp;Prop={&lt;a href=&quot;http://www.jcp.org/jcr/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/1.0&lt;/a&gt;}primaryType Value={&lt;a href=&quot;http://www.jcp.org/jcr/nt/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/nt/1.0&lt;/a&gt;}unstructured
&lt;br&gt;&amp;gt; &amp;nbsp;+ OrderQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{}prop1 asc=true
&lt;br&gt;&amp;gt; The RelationQueryNode should not have a second operand since the NOT NULL operator is unary.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1688%29-Query-parser-builds-invalid-parse-tree-tp18606367p18611846.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18610262</id>
	<title>[jira] Updated: (JCR-1672) Adding Event interface and isLocal()</title>
	<published>2008-07-23T06:01:32Z</published>
	<updated>2008-07-23T06:01:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Carsten Ziegeler updated JCR-1672:
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: jackrabbit.patch
&lt;br&gt;&lt;br&gt;New patch adding the ExtendedEvent interface and the isExternal() method.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Adding Event interface and isLocal()
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1672
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1672&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1672&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-api, jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Carsten Ziegeler
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: jackrabbit.patch, localeventlistener.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; when a repository cluster is used, it seems that a common problem many people have is to detect if an observation event is send because of changes on the local instance or a remote instance of the cluster.
&lt;br&gt;&amp;gt; This is especially important if you want to do post processing of data
&lt;br&gt;&amp;gt; based on observation (the post processing should only be done by one instance in the cluster).
&lt;br&gt;&amp;gt; A current solution is to cast the jcr event object to the EventImpl of jackrabbit core which is obviously not a nice solution :)
&lt;br&gt;&amp;gt; So what about adding an event interface to jackrabbit api which extends the jcr event interface and adds the isLocal() method? 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1672%29-Adding-Event-interface-and-isLocal%28%29-tp18323601p18610262.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18610036</id>
	<title>[jira] Commented: (JCR-1671) Support for external datasources with transactions</title>
	<published>2008-07-23T05:49:32Z</published>
	<updated>2008-07-23T05:49:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616001#action_12616001&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12616001#action_12616001&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Jukka Zitting commented on JCR-1671:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt; Is there any documentation around managed transaction and any reference implementation details?
&lt;br&gt;&lt;br&gt;Not much. There are some related threads on the Jackrabbit mailing lists, you can find them by searching at &lt;a href=&quot;http://jackrabbit.markmail.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jackrabbit.markmail.org/&lt;/a&gt;.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Support for external datasources with transactions
&lt;br&gt;&amp;gt; --------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1671
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1671&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1671&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core, transactions
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Websphere application server 6.0, DB2 database
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Badal
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Jukka Zitting
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jackrabbit 1.3.1 should support transactions with external datasources
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1671%29-Support-for-external-datasources-with-transactions-in-1.3.1-tp18321526p18610036.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18610038</id>
	<title>[jira] Reopened: (JCR-1672) Adding Event interface and isLocal()</title>
	<published>2008-07-23T05:49:32Z</published>
	<updated>2008-07-23T05:49:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Carsten Ziegeler reopened JCR-1672:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;As discussed in the mailing list, it's better to have the isExternal() method on an extension of the event interface.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Adding Event interface and isLocal()
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1672
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1672&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1672&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-api, jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.4
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Carsten Ziegeler
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: localeventlistener.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; when a repository cluster is used, it seems that a common problem many people have is to detect if an observation event is send because of changes on the local instance or a remote instance of the cluster.
&lt;br&gt;&amp;gt; This is especially important if you want to do post processing of data
&lt;br&gt;&amp;gt; based on observation (the post processing should only be done by one instance in the cluster).
&lt;br&gt;&amp;gt; A current solution is to cast the jcr event object to the EventImpl of jackrabbit core which is obviously not a nice solution :)
&lt;br&gt;&amp;gt; So what about adding an event interface to jackrabbit api which extends the jcr event interface and adds the isLocal() method? 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1672%29-Adding-Event-interface-and-isLocal%28%29-tp18323601p18610038.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18609977</id>
	<title>Re: Connection pooling</title>
	<published>2008-07-23T05:45:19Z</published>
	<updated>2008-07-23T05:45:19Z</updated>
	<author>
		<name>Stefan Guggisberg-2</name>
	</author>
	<content type="html">hi matej
&lt;br&gt;&lt;br&gt;On Tue, Jul 22, 2008 at 1:39 AM, Matej Knopp &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18609977&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matej.knopp@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The idea of Jackrabbit managing DataSources didn't gain much support,
&lt;br&gt;&amp;gt; so I decided to try implementing something much less intrusive. I have
&lt;br&gt;&amp;gt; abstracted connection creation/closing (ConnectionProvider[1]) from
&lt;br&gt;&amp;gt; the components that use database connections. There is one instance of
&lt;br&gt;&amp;gt; ConnectionProvider per repository, configurable in repository.xml, but
&lt;br&gt;&amp;gt; possibly with a sane default implementation so no configuration is
&lt;br&gt;&amp;gt; necessary.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The rest of jackrabbit (components that touch the database) would use
&lt;br&gt;&amp;gt; ConnectionProvider to get the connections instead of just creating
&lt;br&gt;&amp;gt; them and keeping opened. So far I've converted
&lt;br&gt;&amp;gt; BundleDbPersistenceManager (and it's subclasses) to this approach. I
&lt;br&gt;&amp;gt; would also tweak DatabasePersistenceManager &amp;nbsp;and DbFileSystem to just
&lt;br&gt;&amp;gt; borrow the connections instead of keeping them. As for journal,
&lt;br&gt;&amp;gt; keeping one opened connection per repository probably doesn't make
&lt;br&gt;&amp;gt; much difference.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The benefit of this approach is that there is zero change in
&lt;br&gt;&amp;gt; repository configuration, unless user wants to specify it's own
&lt;br&gt;&amp;gt; ConnectionProvider class, which can be specified as a simple bean with
&lt;br&gt;&amp;gt; element name ConnectionProvider.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ConnectionProvider implementation that supports pooling must take
&lt;br&gt;&amp;gt; different things into account, such as there can be request to various
&lt;br&gt;&amp;gt; connections from different databases with different URLs. The manager
&lt;br&gt;&amp;gt; must be intelligent enough to possibly maintain group of pools (e..g
&lt;br&gt;&amp;gt; per database or even per connection URL)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; There is a SimplePoolingConnectionProvider implementation &amp;nbsp;included in
&lt;br&gt;&amp;gt; the patch that implements connection pooling, but it's only meant as
&lt;br&gt;&amp;gt; proof of concept and doesn't try to substitute &amp;quot;real&amp;quot; connection
&lt;br&gt;&amp;gt; pooling alternatives (dbcp, etc.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've attached the first patch to &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1456&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1456&lt;/a&gt;&lt;/div&gt;&lt;br&gt;thanks for the patch. i added my comments on the jira issue.
&lt;br&gt;&lt;br&gt;cheers
&lt;br&gt;stefan
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Kind regards,
&lt;br&gt;&amp;gt; -Matej
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [1] ConnectionProvider class
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* Class responsible for providing SQL {@link Connection}s.
&lt;br&gt;&amp;gt; &amp;nbsp;* &amp;lt;p&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;* Implementation of this class can do connection pooling, in which case it must
&lt;br&gt;&amp;gt; &amp;nbsp;* take {@link ConnectionProperties} into account and only return connection
&lt;br&gt;&amp;gt; &amp;nbsp;* that matches the specified properties.
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public interface ConnectionProvider {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Returns connection with given properties.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @param properties
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;connection properties
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @return SQL {@link Connection}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @throws RepositoryException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @throws SQLException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public Connection getConnection(ConnectionProperties properties)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws RepositoryException, SQLException;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Closes the given connection. Classes that obtain connections through
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * {@link ConnectionProvider} must never call {@link Connection#close()}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * directly. They are required to call {@link #closeConnection(Connection)}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * instead.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @param connection
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SQL {@link Connection}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @throws SQLException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public void closeConnection(Connection connection) throws SQLException;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Invoked when the repository is being shut down.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * @throws RepositoryException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public void dispose() throws RepositoryException;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Bean that holds properties necessary to create or identify a SQL
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * {@link Connection}.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public final static class ConnectionProperties {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String user;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String password;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String url;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String driver;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getUser() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return user;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUser(String user) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.user = user;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getPassword() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return password;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setPassword(String password) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.password = password;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getUrl() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return url;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUrl(String url) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.url = url;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setDriver(String driver) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.driver = driver;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getDriver() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return driver;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private boolean equals(String s1, String s2) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return s1 == s2 || (s1 != null &amp;&amp; s1.equals(s2));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean equals(Object obj) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (this == obj) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj instanceof ConnectionProperties == false) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConnectionProperties cp = (ConnectionProperties) obj;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return equals(user, cp.user) &amp;&amp; equals(password, cp.password)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; equals(url, cp.url) &amp;&amp; equals(driver, cp.driver);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private int hashCode(String s) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return s != null ? s.hashCode() : 0;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int hashCode() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return hashCode(user) + 37 * hashCode(password) + 373
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp; hashCode(url) + 1187 * hashCode(driver);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Connection-pooling-tp18477866p18609977.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18609946</id>
	<title>[jira] Commented: (JCR-1456) Database connection pooling</title>
	<published>2008-07-23T05:43:34Z</published>
	<updated>2008-07-23T05:43:34Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615997#action_12615997&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615997#action_12615997&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Stefan Guggisberg commented on JCR-1456:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;thanks for the patch, matej. that's very much appreciated.
&lt;br&gt;&lt;br&gt;i quickly browsed through the diff and noticed the following issue:
&lt;br&gt;&lt;br&gt;it seems like a connection is retrieved from the pool in every 
&lt;br&gt;PersistenceManager method. that's probably fine for 
&lt;br&gt;reading methods but that's not gonna work for writing methods
&lt;br&gt;since they need to use the same connection (i.e. transaction).
&lt;br&gt;all method calls within the store(ChangeLog) scope need
&lt;br&gt;to use the same connection (with autoCommit set to false),
&lt;br&gt;otherwise you'll end up with inconsistent/brokem repositories.
&lt;br&gt;&lt;br&gt;i am also a bit concerned about the impact of the proposed change
&lt;br&gt;since it touches a lot of current code. the patch would have to be
&lt;br&gt;thoroughly tested with all currently supported backends...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Database connection pooling
&lt;br&gt;&amp;gt; ---------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1456
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1456&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1456&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Jukka Zitting
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.5
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: patch-1456-1.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jackrabbit should use database connection pools instead of a single connection per persistence manager, cluster journal, or database data store.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1456%29-Database-connection-pooling-tp15853971p18609946.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18607585</id>
	<title>[jira] Commented: (JCR-1688) Query parser builds invalid parse tree</title>
	<published>2008-07-23T03:07:31Z</published>
	<updated>2008-07-23T03:07:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615935#action_12615935&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615935#action_12615935&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Marcel Reutegger commented on JCR-1688:
&lt;br&gt;---------------------------------------
&lt;br&gt;&lt;br&gt;Fixed the first issue in revision: 679054
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Query parser builds invalid parse tree
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1688
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-spi-commons
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michael Dürig
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Calling org.apache.jackrabbit.spi.commons.query.QueryParser.parse on 
&lt;br&gt;&amp;gt; SELECT prop1 FROM nt:unstructured WHERE prop1 IS NOT NULL ORDER BY prop1 ASC 
&lt;br&gt;&amp;gt; results in the following parse tree
&lt;br&gt;&amp;gt; + Select properties: {}prop1
&lt;br&gt;&amp;gt; &amp;nbsp;+ PathQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;+ LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=true Index=NONE
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ RelationQueryNode: Op: NOT NULL Prop=@{}prop1 Type=STRING Value=%
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ NodeTypeQueryNode: &amp;nbsp;Prop={&lt;a href=&quot;http://www.jcp.org/jcr/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/1.0&lt;/a&gt;}primaryType Value={&lt;a href=&quot;http://www.jcp.org/jcr/nt/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/nt/1.0&lt;/a&gt;}unstructured
&lt;br&gt;&amp;gt; &amp;nbsp;+ OrderQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{}prop1 asc=true
&lt;br&gt;&amp;gt; The RelationQueryNode should not have a second operand since the NOT NULL operator is unary.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1688%29-Query-parser-builds-invalid-parse-tree-tp18606367p18607585.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18607066</id>
	<title>[jira] Commented: (JCR-1688) Query parser builds invalid parse tree</title>
	<published>2008-07-23T02:31:34Z</published>
	<updated>2008-07-23T02:31:34Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615927#action_12615927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12615927#action_12615927&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Michael Dürig commented on JCR-1688:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;Another query which creates a bad parse tree:
&lt;br&gt;&lt;br&gt;SELECT * FROM nt:base WHERE jcr:path LIKE '/%' AND NOT jcr:path LIKE '/%/%'
&lt;br&gt;&lt;br&gt;results in
&lt;br&gt;&lt;br&gt;+ Select properties: *
&lt;br&gt;&amp;nbsp; + PathQueryNode
&lt;br&gt;&amp;nbsp; &amp;nbsp; + LocationStepQueryNode: &amp;nbsp;NodeTest={} Descendants=false Index=NONE
&lt;br&gt;&amp;nbsp; &amp;nbsp; + LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=false Index=NONE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; + AndQueryNode
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + NotQueryNode
&lt;br&gt;&lt;br&gt;Note the AndQueryNode having a single operand and the NotQueryNode having no operand at all.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Query parser builds invalid parse tree
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JCR-1688
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jackrabbit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: jackrabbit-spi-commons
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michael Dürig
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Calling org.apache.jackrabbit.spi.commons.query.QueryParser.parse on 
&lt;br&gt;&amp;gt; SELECT prop1 FROM nt:unstructured WHERE prop1 IS NOT NULL ORDER BY prop1 ASC 
&lt;br&gt;&amp;gt; results in the following parse tree
&lt;br&gt;&amp;gt; + Select properties: {}prop1
&lt;br&gt;&amp;gt; &amp;nbsp;+ PathQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;+ LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=true Index=NONE
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ RelationQueryNode: Op: NOT NULL Prop=@{}prop1 Type=STRING Value=%
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ NodeTypeQueryNode: &amp;nbsp;Prop={&lt;a href=&quot;http://www.jcp.org/jcr/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/1.0&lt;/a&gt;}primaryType Value={&lt;a href=&quot;http://www.jcp.org/jcr/nt/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/nt/1.0&lt;/a&gt;}unstructured
&lt;br&gt;&amp;gt; &amp;nbsp;+ OrderQueryNode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{}prop1 asc=true
&lt;br&gt;&amp;gt; The RelationQueryNode should not have a second operand since the NOT NULL operator is unary.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1688%29-Query-parser-builds-invalid-parse-tree-tp18606367p18607066.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18606367</id>
	<title>[jira] Created: (JCR-1688) Query parser builds invalid parse tree</title>
	<published>2008-07-23T01:43:33Z</published>
	<updated>2008-07-23T01:43:33Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Query parser builds invalid parse tree
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JCR-1688
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JCR-1688&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JCR-1688&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jackrabbit
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: jackrabbit-spi-commons
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Michael Dürig
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&lt;br&gt;&lt;br&gt;Calling org.apache.jackrabbit.spi.commons.query.QueryParser.parse on 
&lt;br&gt;&lt;br&gt;SELECT prop1 FROM nt:unstructured WHERE prop1 IS NOT NULL ORDER BY prop1 ASC 
&lt;br&gt;&lt;br&gt;results in the following parse tree
&lt;br&gt;&lt;br&gt;+ Select properties: {}prop1
&lt;br&gt;&amp;nbsp;+ PathQueryNode
&lt;br&gt;&amp;nbsp; &amp;nbsp;+ LocationStepQueryNode: &amp;nbsp;NodeTest=* Descendants=true Index=NONE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;+ RelationQueryNode: Op: NOT NULL Prop=@{}prop1 Type=STRING Value=%
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;+ NodeTypeQueryNode: &amp;nbsp;Prop={&lt;a href=&quot;http://www.jcp.org/jcr/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/1.0&lt;/a&gt;}primaryType Value={&lt;a href=&quot;http://www.jcp.org/jcr/nt/1.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jcp.org/jcr/nt/1.0&lt;/a&gt;}unstructured
&lt;br&gt;&amp;nbsp;+ OrderQueryNode
&lt;br&gt;&amp;nbsp; &amp;nbsp;{}prop1 asc=true
&lt;br&gt;&lt;br&gt;The RelationQueryNode should not have a second operand since the NOT NULL operator is unary.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JCR-1688%29-Query-parser-builds-invalid-parse-tree-tp18606367p18606367.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18605468</id>
	<title>Re: Component releases, proposed solution</title>
	<published>2008-07-23