<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-2412</id>
	<title>Nabble - Cayenne</title>
	<updated>2008-10-15T12:25:11Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Cayenne-f2412.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-f2412.html" />
	<subtitle type="html">Cayenne is a powerful, full-featured Java Object Relational Mapping framework. It is open source and completely free. One of the main Cayenne distinctions is that it comes with cross-platform modeling GUI tools. This places Cayenne in the league of its own, making it a very attractive choice over both closed source commercial products and traditional 'edit your own XML' open source solutions. Cayenne home is &lt;a href=&quot;http://incubator.apache.org/projects/cayenne.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-20000482</id>
	<title>[jira] Updated: (CAY-1124) DataRowStore blocked</title>
	<published>2008-10-15T12:25:11Z</published>
	<updated>2008-10-15T12:25:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Tore Halset updated CAY-1124:
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Description: 
&lt;br&gt;I have gotten this one a couple of times on our production system running 3.0M3. As far as I see, this code has not been improved since 3.0M3, so I register this as a major bug.
&lt;br&gt;&lt;br&gt;&amp;quot;TP-Processor5&amp;quot; daemon prio=10 tid=0x00002aab798c0400 nid=0xc2e waiting for monitor entry [0x0000000043e64000..0x000000
&lt;br&gt;0043e66bb0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&lt;br&gt;&amp;quot;DefaultQuartzScheduler_Worker-10&amp;quot; prio=10 tid=0x00002aab7afedc00 nid=0xc20 waiting for monitor entry [0x0000000043a62000..0x0000000043a62db0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;quot;DefaultQuartzScheduler_Worker-3&amp;quot; prio=10 tid=0x00002aab7af02c00 nid=0xc19 waiting for monitor entry [0x000000004335b000..0x000000004335be30]
&lt;br&gt;&amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.snapshotsUpdatedForObjects(DataRowStore.java:234)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:125)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:101)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - locked &amp;lt;0x00002aaabb39bb70&amp;gt; (a org.apache.cayenne.access.ObjectStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion(DataDomainQueryAction.java:460)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:129)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; was:
&lt;br&gt;I have gotten this one a couple of times on our production system running 3.0M3. As far as I see, this code has not been improved since 3.0M3, so I register this as a major bug.
&lt;br&gt;&lt;br&gt;&amp;quot;TP-Processor5&amp;quot; daemon prio=10 tid=0x00002aab798c0400 nid=0xc2e waiting for monitor entry [0x0000000043e64000..0x000000
&lt;br&gt;0043e66bb0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; DataRowStore blocked
&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: CAY-1124
&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/cayenne/browse/CAY-1124&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1124&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: 3.0M3
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Tore Halset
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Tore Halset
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have gotten this one a couple of times on our production system running 3.0M3. As far as I see, this code has not been improved since 3.0M3, so I register this as a major bug.
&lt;br&gt;&amp;gt; &amp;quot;TP-Processor5&amp;quot; daemon prio=10 tid=0x00002aab798c0400 nid=0xc2e waiting for monitor entry [0x0000000043e64000..0x000000
&lt;br&gt;&amp;gt; 0043e66bb0]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;gt; 	- waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;gt; 	at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&amp;gt; &amp;quot;DefaultQuartzScheduler_Worker-10&amp;quot; prio=10 tid=0x00002aab7afedc00 nid=0xc20 waiting for monitor entry [0x0000000043a62000..0x0000000043a62db0]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&amp;gt; &amp;quot;DefaultQuartzScheduler_Worker-3&amp;quot; prio=10 tid=0x00002aab7af02c00 nid=0xc19 waiting for monitor entry [0x000000004335b000..0x000000004335be30]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.snapshotsUpdatedForObjects(DataRowStore.java:234)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:125)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:101)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - locked &amp;lt;0x00002aaabb39bb70&amp;gt; (a org.apache.cayenne.access.ObjectStore)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion(DataDomainQueryAction.java:460)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:129)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;gt; &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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1124%29-DataRowStore-blocked-tp20000369p20000482.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20000369</id>
	<title>[jira] Created: (CAY-1124) DataRowStore blocked</title>
	<published>2008-10-15T12:19:12Z</published>
	<updated>2008-10-15T12:19:12Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">DataRowStore blocked
&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: CAY-1124
&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/cayenne/browse/CAY-1124&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1124&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 3.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: 3.0M3
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Tore Halset
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Tore Halset
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 3.0
&lt;br&gt;&lt;br&gt;&lt;br&gt;I have gotten this one a couple of times on our production system running 3.0M3. As far as I see, this code has not been improved since 3.0M3, so I register this as a major bug.
&lt;br&gt;&lt;br&gt;&amp;quot;TP-Processor5&amp;quot; daemon prio=10 tid=0x00002aab798c0400 nid=0xc2e waiting for monitor entry [0x0000000043e64000..0x000000
&lt;br&gt;0043e66bb0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;java.lang.Thread.State: BLOCKED (on object monitor)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - waiting to lock &amp;lt;0x00002aaab91a5c40&amp;gt; (a org.apache.cayenne.access.DataRowStore)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
&lt;br&gt;&lt;br&gt;&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1124%29-DataRowStore-blocked-tp20000369p20000369.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19992303</id>
	<title>[jira] Updated: (CAY-795) Horizontal inheritance</title>
	<published>2008-10-15T05:16:12Z</published>
	<updated>2008-10-15T05:16:12Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Dzmitry Rusak updated CAY-795:
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: Select_union_fixed.patch
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Horizontal inheritance
&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: CAY-795
&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/cayenne/browse/CAY-795&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-795&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ari Maniatis
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: bugfix_for_attr_table.patch, icon-override.gif, inheritance-progress.diff, Inheritance_modeler.patch, modeler_embedded_attributes_fix.patch, Overriding_attributes.patch, Proper_attr_creating_typo.patch, Select_union.patch, Select_union_fixed.patch, Unit_tests_for_horizontal_inheritance.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Implement horizontal inheritance. This requires:
&lt;br&gt;&amp;gt; 1. Allow dbEntityName attribute to be null in &amp;lt;obj-entity ...&amp;gt;
&lt;br&gt;&amp;gt; 2. Modeler changes to allow this to be set. Validation should require that any class set in this way should have at least one subclass.
&lt;br&gt;&amp;gt; 3. Changes, particularly to SelectQuery, which accomodates this change and returns the appropriate objEntities.
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Updated%3A-%28CAY-795%29-Horizontal-inheritance-tp19992303p19992303.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19991371</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-15T04:09:14Z</published>
	<updated>2008-10-15T04:09:14Z</updated>
	<author>
		<name>Kevin Menard-4</name>
	</author>
	<content type="html">Cool. &amp;nbsp;Two more things I wanted to throw out there:
&lt;br&gt;&lt;br&gt;1) I implied it, but I should make it explicit. &amp;nbsp;One of the really
&lt;br&gt;nice thing about git is that I can work on multiple issues at once and
&lt;br&gt;switch between them with ease (things get a little weird when new
&lt;br&gt;files are added or removed, however). &amp;nbsp;This is really nice when
&lt;br&gt;something needs to be reviewed by others, but I still want to move on
&lt;br&gt;with work. &amp;nbsp;I rely on IDEA's shelving feature for that now, but it's
&lt;br&gt;not fool-proof.
&lt;br&gt;&lt;br&gt;2) I haven't used git on a lot of Java projects yet. &amp;nbsp;The Eclipse
&lt;br&gt;plugin looks far from ready for primetime and that may impact things
&lt;br&gt;like refactorings that affect the file name. &amp;nbsp;The CLI will still work
&lt;br&gt;fine, but may be cumbersome. &amp;nbsp;The latest IDEA EAPs have a git provider
&lt;br&gt;bundled, but I haven't had the opportunity to check it out yet.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Kevin
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Oct 15, 2008 at 3:35 AM, Andrus Adamchik &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19991371&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andrus@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; This is ready:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://jukka.zitting.name/git/?p=cayenne.git;a=summary&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jukka.zitting.name/git/?p=cayenne.git;a=summary&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Although I ended up using git svn against this mirror once I got a bit more
&lt;br&gt;&amp;gt; comfortable with Git:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;https://svn.eu.apache.org/repos/asf/cayenne/main/trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.eu.apache.org/repos/asf/cayenne/main/trunk/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jukka's repo is read-only now and is approximately 1 day behind SVN.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Andrus
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Oct 15, 2008, at 4:07 AM, Aristedes Maniatis wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 15/10/2008, at 11:58 AM, Kevin Menard wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; github is very interesting.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Have you seen the messages on infra with the guy who has made a git
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; mirror
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of many of the Apache projects? I think he is looking to keep them
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; fairly
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tightly synchronised to svn.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Nay. &amp;nbsp;I'd be quite interested in it, though. &amp;nbsp;Even though I have SVN
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; commit privs on two projects, git could be nice for local hacking at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the very least.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I just caught up on messages on that list and I see that Andrus has
&lt;br&gt;&amp;gt;&amp;gt; already been chatting to Jukka about &amp;nbsp;a git mirror for Cayenne. I am not
&lt;br&gt;&amp;gt;&amp;gt; sure if this is ready to be advertised publicly since it is still
&lt;br&gt;&amp;gt;&amp;gt; experimental, so I'll send you details off list.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ari
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --------------------------&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ish
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.ish.com.au&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ish.com.au&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; Level 1, 30 Wilson Street Newtown 2042 Australia
&lt;br&gt;&amp;gt;&amp;gt; phone +61 2 9550 5001 &amp;nbsp; fax +61 2 9550 4001
&lt;br&gt;&amp;gt;&amp;gt; GPG fingerprint CBFB 84B4 738D 4E87 5E5C &amp;nbsp;5EFA EF6A 7D2E 3E49 102A
&lt;br&gt;&amp;gt;&amp;gt;
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19991371.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19988342</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-15T00:35:10Z</published>
	<updated>2008-10-15T00:35:10Z</updated>
	<author>
		<name>Andrus Adamchik</name>
	</author>
	<content type="html">This is ready:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://jukka.zitting.name/git/?p=cayenne.git;a=summary&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jukka.zitting.name/git/?p=cayenne.git;a=summary&lt;/a&gt;&lt;br&gt;&lt;br&gt;Although I ended up using git svn against this mirror once I got a bit &amp;nbsp;
&lt;br&gt;more comfortable with Git:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;https://svn.eu.apache.org/repos/asf/cayenne/main/trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.eu.apache.org/repos/asf/cayenne/main/trunk/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Jukka's repo is read-only now and is approximately 1 day behind SVN.
&lt;br&gt;&lt;br&gt;Andrus
&lt;br&gt;&lt;br&gt;On Oct 15, 2008, at 4:07 AM, Aristedes Maniatis wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 15/10/2008, at 11:58 AM, Kevin Menard wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; github is very interesting.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Have you seen the messages on infra with the guy who has made a &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; git mirror
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; of many of the Apache projects? I think he is looking to keep them &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; fairly
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tightly synchronised to svn.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Nay. &amp;nbsp;I'd be quite interested in it, though. &amp;nbsp;Even though I have SVN
&lt;br&gt;&amp;gt;&amp;gt; commit privs on two projects, git could be nice for local hacking at
&lt;br&gt;&amp;gt;&amp;gt; the very least.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I just caught up on messages on that list and I see that Andrus has &amp;nbsp;
&lt;br&gt;&amp;gt; already been chatting to Jukka about &amp;nbsp;a git mirror for Cayenne. I am &amp;nbsp;
&lt;br&gt;&amp;gt; not sure if this is ready to be advertised publicly since it is &amp;nbsp;
&lt;br&gt;&amp;gt; still experimental, so I'll send you details off list.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ari
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --------------------------&amp;gt;
&lt;br&gt;&amp;gt; ish
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.ish.com.au&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ish.com.au&lt;/a&gt;&lt;br&gt;&amp;gt; Level 1, 30 Wilson Street Newtown 2042 Australia
&lt;br&gt;&amp;gt; phone +61 2 9550 5001 &amp;nbsp; fax +61 2 9550 4001
&lt;br&gt;&amp;gt; GPG fingerprint CBFB 84B4 738D 4E87 5E5C &amp;nbsp;5EFA EF6A 7D2E 3E49 102A
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19988342.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19985025</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-14T18:07:27Z</published>
	<updated>2008-10-14T18:07:27Z</updated>
	<author>
		<name>Aristedes Maniatis</name>
	</author>
	<content type="html">&lt;br&gt;On 15/10/2008, at 11:58 AM, Kevin Menard wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; github is very interesting.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Have you seen the messages on infra with the guy who has made a git &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; mirror
&lt;br&gt;&amp;gt;&amp;gt; of many of the Apache projects? I think he is looking to keep them &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; fairly
&lt;br&gt;&amp;gt;&amp;gt; tightly synchronised to svn.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Nay. &amp;nbsp;I'd be quite interested in it, though. &amp;nbsp;Even though I have SVN
&lt;br&gt;&amp;gt; commit privs on two projects, git could be nice for local hacking at
&lt;br&gt;&amp;gt; the very least.
&lt;/div&gt;&lt;br&gt;I just caught up on messages on that list and I see that Andrus has &amp;nbsp;
&lt;br&gt;already been chatting to Jukka about &amp;nbsp;a git mirror for Cayenne. I am &amp;nbsp;
&lt;br&gt;not sure if this is ready to be advertised publicly since it is still &amp;nbsp;
&lt;br&gt;experimental, so I'll send you details off list.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Ari
&lt;br&gt;&lt;br&gt;&lt;br&gt;--------------------------&amp;gt;
&lt;br&gt;ish
&lt;br&gt;&lt;a href=&quot;http://www.ish.com.au&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ish.com.au&lt;/a&gt;&lt;br&gt;Level 1, 30 Wilson Street Newtown 2042 Australia
&lt;br&gt;phone +61 2 9550 5001 &amp;nbsp; fax +61 2 9550 4001
&lt;br&gt;GPG fingerprint CBFB 84B4 738D 4E87 5E5C &amp;nbsp;5EFA EF6A 7D2E 3E49 102A
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19985025.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19984933</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-14T17:58:39Z</published>
	<updated>2008-10-14T17:58:39Z</updated>
	<author>
		<name>Kevin Menard-4</name>
	</author>
	<content type="html">On Tue, Oct 14, 2008 at 7:23 PM, Aristedes Maniatis &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19984933&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ari@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On the downside it makes the development process much less linear and more
&lt;br&gt;&amp;gt; prone to merge issues since there is no longer a clear concept of the one
&lt;br&gt;&amp;gt; true trunk.
&lt;br&gt;&lt;br&gt;My experience has been quite the opposite. &amp;nbsp;git merges much better
&lt;br&gt;than svn does and because it's so easy to merge, it gets done much
&lt;br&gt;more frequently, heading off a lot of conflicts. &amp;nbsp;In our case, we
&lt;br&gt;still have a single authoritative copy that everyone pushes to. &amp;nbsp;This
&lt;br&gt;is a much nicer environment that svnmerge.py. &amp;nbsp;NB: I have not tried
&lt;br&gt;svn 1.5's new merge facilities as I had jumped ship by then.
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; github is very interesting.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Have you seen the messages on infra with the guy who has made a git mirror
&lt;br&gt;&amp;gt; of many of the Apache projects? I think he is looking to keep them fairly
&lt;br&gt;&amp;gt; tightly synchronised to svn.
&lt;br&gt;&lt;br&gt;Nay. &amp;nbsp;I'd be quite interested in it, though. &amp;nbsp;Even though I have SVN
&lt;br&gt;commit privs on two projects, git could be nice for local hacking at
&lt;br&gt;the very least.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Kevin
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19984933.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19984064</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-14T16:23:22Z</published>
	<updated>2008-10-14T16:23:22Z</updated>
	<author>
		<name>Aristedes Maniatis</name>
	</author>
	<content type="html">&lt;br&gt;On 15/10/2008, at 5:41 AM, Andrus Adamchik wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; No, I am still learning the patterns. So I am keeping it close to &amp;nbsp;
&lt;br&gt;&amp;gt; SVN for now and only syncing my local copy with the ASF repo. My &amp;nbsp;
&lt;br&gt;&amp;gt; main motivation for checking it out was to be able to write code on &amp;nbsp;
&lt;br&gt;&amp;gt; the plane, but now I certainly see many more possibilities of the &amp;nbsp;
&lt;br&gt;&amp;gt; dev workflow improvement. If you have any insights on the later, I'd &amp;nbsp;
&lt;br&gt;&amp;gt; be happy to hear.
&lt;br&gt;&lt;br&gt;I'm using git a little on another open source project I'm involved in. &amp;nbsp;
&lt;br&gt;Certainly the nicest feature is the ability to make a series of &amp;nbsp;
&lt;br&gt;commits and only push them back to the server once you are ready/ 
&lt;br&gt;online. This avoids the &amp;quot;I'll only commit once everything is &amp;nbsp;
&lt;br&gt;perfect.... doh! my last 4 hours work was a complete mistake but I &amp;nbsp;
&lt;br&gt;still want to keep the 10 hours work from before that.&amp;quot;
&lt;br&gt;&lt;br&gt;On the downside it makes the development process much less linear and &amp;nbsp;
&lt;br&gt;more prone to merge issues since there is no longer a clear concept of &amp;nbsp;
&lt;br&gt;the one true trunk.
&lt;br&gt;&lt;br&gt;github is very interesting.
&lt;br&gt;&lt;br&gt;Have you seen the messages on infra with the guy who has made a git &amp;nbsp;
&lt;br&gt;mirror of many of the Apache projects? I think he is looking to keep &amp;nbsp;
&lt;br&gt;them fairly tightly synchronised to svn.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;Ari
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--------------------------&amp;gt;
&lt;br&gt;ish
&lt;br&gt;&lt;a href=&quot;http://www.ish.com.au&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ish.com.au&lt;/a&gt;&lt;br&gt;Level 1, 30 Wilson Street Newtown 2042 Australia
&lt;br&gt;phone +61 2 9550 5001 &amp;nbsp; fax +61 2 9550 4001
&lt;br&gt;GPG fingerprint CBFB 84B4 738D 4E87 5E5C &amp;nbsp;5EFA EF6A 7D2E 3E49 102A
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19984064.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19983254</id>
	<title>Git [Was: Re: Cayenne-trunk - Build # 239 - Failure]</title>
	<published>2008-10-14T15:12:03Z</published>
	<updated>2008-10-14T15:12:03Z</updated>
	<author>
		<name>Kevin Menard-4</name>
	</author>
	<content type="html">Well, as you know, I've been an advocate of distributed SCMs for some
&lt;br&gt;time now. &amp;nbsp;I adopted git maybe three or four months ago and have been
&lt;br&gt;quite pleased. &amp;nbsp;The availability of GitHub really made the switch
&lt;br&gt;worthwhile (versus other systems). &amp;nbsp;It's great to be able to work
&lt;br&gt;within an SCM on a project that you don't have commit rights to --
&lt;br&gt;makes the patch submission much better. &amp;nbsp;Being able to yank other
&lt;br&gt;people's patches into my own fork is pretty cool, as well.
&lt;br&gt;&lt;br&gt;I've gotten into the habit of creating a new branch for just about
&lt;br&gt;anything I do. &amp;nbsp;New feature, bug fix, etc. &amp;nbsp;Master stays very stable
&lt;br&gt;in this regard. &amp;nbsp;The ability to commit locally means I can work on a
&lt;br&gt;pet feature with all the wonders of an SCM and only push the final
&lt;br&gt;product when it's not a heaping mess.
&lt;br&gt;&lt;br&gt;In any event, I've found it has really improved the quality of my
&lt;br&gt;projects and my throughput. &amp;nbsp;I've migrated nearly all SVN projects I
&lt;br&gt;have control over to git.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Kevin
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Tue, Oct 14, 2008 at 2:41 PM, Andrus Adamchik &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19983254&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andrus@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; No, I am still learning the patterns. So I am keeping it close to SVN for
&lt;br&gt;&amp;gt; now and only syncing my local copy with the ASF repo. My main motivation for
&lt;br&gt;&amp;gt; checking it out was to be able to write code on the plane, but now I
&lt;br&gt;&amp;gt; certainly see many more possibilities of the dev workflow improvement. If
&lt;br&gt;&amp;gt; you have any insights on the later, I'd be happy to hear.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Andrus
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Oct 14, 2008, at 8:05 PM, Kevin Menard wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Did you set something up on say github? &amp;nbsp;I'd be interested in forking if
&lt;br&gt;&amp;gt;&amp;gt; so.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Kevin
&lt;br&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Git--Was%3A-Re%3A-Cayenne-trunk---Build---239---Failure--tp19983254p19983254.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19979644</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-14T11:41:27Z</published>
	<updated>2008-10-14T11:41:27Z</updated>
	<author>
		<name>Andrus Adamchik</name>
	</author>
	<content type="html">No, I am still learning the patterns. So I am keeping it close to SVN &amp;nbsp;
&lt;br&gt;for now and only syncing my local copy with the ASF repo. My main &amp;nbsp;
&lt;br&gt;motivation for checking it out was to be able to write code on the &amp;nbsp;
&lt;br&gt;plane, but now I certainly see many more possibilities of the dev &amp;nbsp;
&lt;br&gt;workflow improvement. If you have any insights on the later, I'd be &amp;nbsp;
&lt;br&gt;happy to hear.
&lt;br&gt;&lt;br&gt;Andrus
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Oct 14, 2008, at 8:05 PM, Kevin Menard wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Did you set something up on say github? &amp;nbsp;I'd be interested in &amp;nbsp;
&lt;br&gt;&amp;gt; forking if so.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Kevin
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Oct 13, 2008 at 10:12 AM, Andrus Adamchik &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19979644&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;aadamchik@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; My bad. Attempts to use git with Cayenne completely fried my brain, &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; so I
&lt;br&gt;&amp;gt;&amp;gt; forgot to add a new file to SVN. This is fixed now. The next build &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; will
&lt;br&gt;&amp;gt;&amp;gt; hopefully succeed.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Andrus
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19979644.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19977928</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-14T10:05:49Z</published>
	<updated>2008-10-14T10:05:49Z</updated>
	<author>
		<name>Kevin Menard-4</name>
	</author>
	<content type="html">Did you set something up on say github? &amp;nbsp;I'd be interested in forking if so.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Kevin
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Mon, Oct 13, 2008 at 10:12 AM, Andrus Adamchik &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19977928&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;aadamchik@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; My bad. Attempts to use git with Cayenne completely fried my brain, so I
&lt;br&gt;&amp;gt; forgot to add a new file to SVN. This is fixed now. The next build will
&lt;br&gt;&amp;gt; hopefully succeed.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Andrus
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19977928.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19973498</id>
	<title>[jira] Updated: (CAY-795) Horizontal inheritance</title>
	<published>2008-10-14T06:25:12Z</published>
	<updated>2008-10-14T06:25:12Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Dzmitry Rusak updated CAY-795:
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: Select_union.patch
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Horizontal inheritance
&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: CAY-795
&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/cayenne/browse/CAY-795&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-795&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ari Maniatis
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: bugfix_for_attr_table.patch, icon-override.gif, inheritance-progress.diff, Inheritance_modeler.patch, modeler_embedded_attributes_fix.patch, Overriding_attributes.patch, Proper_attr_creating_typo.patch, Select_union.patch, Unit_tests_for_horizontal_inheritance.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Implement horizontal inheritance. This requires:
&lt;br&gt;&amp;gt; 1. Allow dbEntityName attribute to be null in &amp;lt;obj-entity ...&amp;gt;
&lt;br&gt;&amp;gt; 2. Modeler changes to allow this to be set. Validation should require that any class set in this way should have at least one subclass.
&lt;br&gt;&amp;gt; 3. Changes, particularly to SelectQuery, which accomodates this change and returns the appropriate objEntities.
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Updated%3A-%28CAY-795%29-Horizontal-inheritance-tp19973498p19973498.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19970337</id>
	<title>[jira] Resolved: (CAY-457) Cayenne Naming and Sequence Generator Configuration</title>
	<published>2008-10-14T02:55:11Z</published>
	<updated>2008-10-14T02:55:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andrey Razumovsky resolved CAY-457.
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Incomplete
&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 3.0
&lt;br&gt;&lt;br&gt;I hadn't got any feedback for a long time, so i'm closing now this issue (it was committed long ago). Incomplete because &amp;quot;Sequence Generator Configuration&amp;quot; was not implemented (and if should be, this must be a separate JIRA). The patch is quite like Heiko's (but written from the clean sheet)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Cayenne Naming and Sequence Generator Configuration
&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: CAY-457
&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/cayenne/browse/CAY-457&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-457&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.2 [STABLE]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Heiko Erhardt
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: cay-457-fullpatch-src.txt, Patch.zip
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Here is an excerpt from the feature descritpion of the Cayenne xdocs file.
&lt;br&gt;&amp;gt; I felt this becomes important when reengineering databases or creating new objects in the Modeler, so I placed it in the Modeler guide though the implementation resides in the Cayenne core.
&lt;br&gt;&amp;gt; I couldn't place it in the Wiki because the common-tasks-section has not been entered there yet.
&lt;br&gt;&amp;gt; Heiko Erhardt
&lt;br&gt;&amp;gt; ----
&lt;br&gt;&amp;gt; When reverse engineering a database or synchronizing object
&lt;br&gt;&amp;gt; entities with database entities, Cayenne applies various
&lt;br&gt;&amp;gt; rules for converting database names to object, member and
&lt;br&gt;&amp;gt; relationship names. Also, a sequence generator definition may be
&lt;br&gt;&amp;gt; created automatically for each reverse-engineered database entitiy.
&lt;br&gt;&amp;gt; The file cayenne-naming.properties in the .cayenne directory
&lt;br&gt;&amp;gt; in the classpath allows for customizing the behavior of
&lt;br&gt;&amp;gt; the Cayenne modeler and the database loader to some extent.
&lt;br&gt;&amp;gt; The .cayenne/cayenne-naming.properties will be searched
&lt;br&gt;&amp;gt; in the classpath. Just like the cayenne-log.properties file,
&lt;br&gt;&amp;gt; You may copy the file from within the cayenne.jar archive and
&lt;br&gt;&amp;gt; place it into an archive or folder that will be prepended
&lt;br&gt;&amp;gt; to the classpath. Cayenne will read the contents of this
&lt;br&gt;&amp;gt; file only once, so note that you must restart the Cayenne
&lt;br&gt;&amp;gt; modeler if you change the file's contents.
&lt;br&gt;&amp;gt; Strategies.
&lt;br&gt;&amp;gt; The naming algorithm is implemented
&lt;br&gt;&amp;gt; using the strategy pattern, which allows you to plug in your
&lt;br&gt;&amp;gt; own naming implementations. The naming strategy must implement
&lt;br&gt;&amp;gt; the org.objectstyle.cayenne.util.NamingStrategy
&lt;br&gt;&amp;gt; interface and can extend from the default naming strategy
&lt;br&gt;&amp;gt; org.objectstyle.cayenne.util.DefaultNamingStrategy class.
&lt;br&gt;&amp;gt; You may specify the strategy class name in the cayenne-naming.properties
&lt;br&gt;&amp;gt; file.
&lt;br&gt;&amp;gt; Likewise, a key generator strategy may be specified.
&lt;br&gt;&amp;gt; It must implement org.objectstyle.cayenne.access.DbLoaderKeyGeneratorStrategy
&lt;br&gt;&amp;gt; and may extend from DbLoaderPropertyBasedKeyGeneratorStrategy.
&lt;br&gt;&amp;gt; Name Conversion.
&lt;br&gt;&amp;gt; In general, names of
&lt;br&gt;&amp;gt; object entities or object members are generated by converting
&lt;br&gt;&amp;gt; the underscore-based database names to proper Java names.
&lt;br&gt;&amp;gt; This behaviour is hard-coded at the moment.
&lt;br&gt;&amp;gt; However, before this conversion is performed, some modifications
&lt;br&gt;&amp;gt; may be applied.
&lt;br&gt;&amp;gt; Entity Naming.
&lt;br&gt;&amp;gt; Sometimes, database tables are named
&lt;br&gt;&amp;gt; in a plural form whereas Java class names reflect the singular form
&lt;br&gt;&amp;gt; if a term. If your set the &amp;lt;code&amp;gt;Naming.SingularizeObjEntities&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; property to true, the database entity name will be converted to its
&lt;br&gt;&amp;gt; singular form by stripping the traling &amp;quot;s&amp;quot;. For exceptions to this rule
&lt;br&gt;&amp;gt; where this simple operation won't do (e. g. &amp;quot;ADDRESSES&amp;quot;), you may specify
&lt;br&gt;&amp;gt; the singular form of the entity using the &amp;lt;code&amp;gt;Naming.Singular.&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; property prefix (e. g. &amp;lt;code&amp;gt;Naming.Singular.ADDRESSES=ADDRESS&amp;lt;/code&amp;gt;).
&lt;br&gt;&amp;gt; object entities or object members are generated by converting
&lt;br&gt;&amp;gt; the underscore-based database names to proper Java names.
&lt;br&gt;&amp;gt; This behaviour is hard-coded at the moment.
&lt;br&gt;&amp;gt; However, before this conversion is performed, some modifications
&lt;br&gt;&amp;gt; may be applied.
&lt;br&gt;&amp;gt; Attribute Naming.
&lt;br&gt;&amp;gt; It may be desirable to remove an auto-generated
&lt;br&gt;&amp;gt; prefix from database column names before converting the to Java member names
&lt;br&gt;&amp;gt; in order to generate object property names. The &amp;lt;code&amp;gt;Naming.DbAttributeNamePrefixToRemove&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; property supports this. If specified, any text up to (and including) the
&lt;br&gt;&amp;gt; specified prefix will be removed. For example, some database design tools
&lt;br&gt;&amp;gt; automatically add a table-specific prefix to all column names of the table
&lt;br&gt;&amp;gt; like &amp;quot;PERS_FIRST_NAME&amp;quot;. The property entry 
&lt;br&gt;&amp;gt; &amp;lt;code&amp;gt;Naming.DbAttributeNamePrefixToRemove=_&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; will remove everything up to the first underscore, leaving &amp;quot;FIRST_NAME&amp;quot;
&lt;br&gt;&amp;gt; for generating the object attribute name.
&lt;br&gt;&amp;gt; Relationship Naming.
&lt;br&gt;&amp;gt; The relationship naming controls
&lt;br&gt;&amp;gt; the names of the generated relationship getter, setter, addition and removal
&lt;br&gt;&amp;gt; methods of a data object class.
&lt;br&gt;&amp;gt; The default naming strategy of the cayenne-naming.properties file supports specifying 
&lt;br&gt;&amp;gt; prefixes and postfixes for to-one and to-many relations. By default, to-one
&lt;br&gt;&amp;gt; relations will be prefixed by &amp;quot;TO_&amp;quot;, resuling in the method prefix &amp;quot;to&amp;quot; (e. g. a
&lt;br&gt;&amp;gt; relation to the &amp;quot;PAINTING&amp;quot; entity will result in a &amp;quot;setToPainting&amp;quot; setter method.
&lt;br&gt;&amp;gt; To-many relations will have the postfix &amp;quot;_ARRAY&amp;quot;, resuling in &amp;quot;addToPaintingArray&amp;quot;
&lt;br&gt;&amp;gt; adder methods.
&lt;br&gt;&amp;gt; Setting for example
&lt;br&gt;&amp;gt; &amp;lt;code&amp;gt;Naming.ToOneRelationPrefix=&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;lt;code&amp;gt;Naming.ToManyRelationSuffix=_LIST&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; will remove the &amp;quot;to&amp;quot; prefix from to-one relations and change the to-many postfix to &amp;quot;List&amp;quot;.
&lt;br&gt;&amp;gt; The &amp;lt;code&amp;gt;org.objectstyle.cayenne.util.RelationsshipFkNamingStrategy&amp;lt;/code&amp;gt; naming strategy
&lt;br&gt;&amp;gt; extends the default naming strategy. It will add the name of the foreign key of a relationship
&lt;br&gt;&amp;gt; before the target entity name to the relationsship name. This has two advantages:
&lt;br&gt;&amp;gt; 1. Relations between the same entities (e. g. two relations between entity A and entity B)
&lt;br&gt;&amp;gt; will have a speaking difference instead of merely a running number appended in order to
&lt;br&gt;&amp;gt; make the unique (e. g. &amp;quot;goodPainting&amp;quot; and &amp;quot;badPainting&amp;quot; instead of &amp;quot;painting&amp;quot; and &amp;quot;painting1&amp;quot;).
&lt;br&gt;&amp;gt; 2. It might be more descriptive than just using the target entity name.
&lt;br&gt;&amp;gt; Similar to &amp;lt;code&amp;gt;Naming.DbAttributeNamePrefixToRemove&amp;lt;/code&amp;gt;, the
&lt;br&gt;&amp;gt; Similar to &amp;lt;code&amp;gt;Naming.Relationship.AttrNamePrefixToRemove&amp;lt;/code&amp;gt; allows to remove
&lt;br&gt;&amp;gt; a prefix from the foreign key before applying it to the name conversion.
&lt;br&gt;&amp;gt; For example, for foreign keys like &amp;quot;PAINTING_ID_GOOD&amp;quot;, the property entry
&lt;br&gt;&amp;gt; &amp;lt;code&amp;gt;Naming.Relationship.AttrNamePrefixToRemove=_ID_&amp;lt;/code&amp;gt; will leave the &amp;quot;GOOD&amp;quot;
&lt;br&gt;&amp;gt; text for relationship name generation, resulting in a method name like
&lt;br&gt;&amp;gt; &amp;quot;setGoodPainting&amp;quot;.
&lt;br&gt;&amp;gt; Key Generator Settings.
&lt;br&gt;&amp;gt; As with Cayenne object naming, a key generator
&lt;br&gt;&amp;gt; definition can be bound to each reverse-engineered database entity using a pluggable
&lt;br&gt;&amp;gt; strategy class, which must implement the
&lt;br&gt;&amp;gt; org.objectstyle.cayenne.access.DbLoaderKeyGeneratorStrategy interface.
&lt;br&gt;&amp;gt; The default implementation is the 
&lt;br&gt;&amp;gt; org.objectstyle.cayenne.access.DbLoaderPropertyBasedKeyGeneratorStrategy class.
&lt;br&gt;&amp;gt; The properties of the cayenne-naming.properties file allow to specify
&lt;br&gt;&amp;gt; the generator type, key cache size and the name of the generator (i. e. the name
&lt;br&gt;&amp;gt; of the sequence). It may be generated from the table name or the entire name or a prefix of
&lt;br&gt;&amp;gt; the key attribute.
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Resolved%3A-%28CAY-457%29-Cayenne-Naming-and-Sequence-Generator-Configuration-tp19970337p19970337.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19970313</id>
	<title>[jira] Closed: (CAY-402) Entity/Attribute/Relationship naming improvements on rverse-engineering</title>
	<published>2008-10-14T02:53:11Z</published>
	<updated>2008-10-14T02:53:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andrey Razumovsky closed CAY-402.
&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: &amp;nbsp; &amp;nbsp; (was: UNDEFINED FUTURE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3.0
&lt;br&gt;&lt;br&gt;I hadn't got no feedback for a long time, so i'm closing now this issue (it was committed long ago). 
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Entity/Attribute/Relationship naming improvements on rverse-engineering
&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: CAY-402
&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/cayenne/browse/CAY-402&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-402&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library, CayenneModeler GUI
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: UNDEFINED FUTURE
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Users should be given some flexibility when it comes to default names generated during reverse engineering. E.g. there were requests to automatically change plural form to singular (&amp;quot;product_groups&amp;quot; -&amp;gt; &amp;quot;ProductGroup&amp;quot;). There maybe other user-specific cases for transforming DB name to Java name. 
&lt;br&gt;&amp;gt; Suggested solution was to allow entering regex-based rules in the Modeler:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://objectstyle.org/cayenne/lists/cayenne-user/2005/11/0104.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://objectstyle.org/cayenne/lists/cayenne-user/2005/11/0104.html&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; Another related request suggested to have an option for naming relationships using attribute names instead of target entity names. This may also be one of the rules:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://objectstyle.org/cayenne/lists/cayenne-user/2005/11/0106.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://objectstyle.org/cayenne/lists/cayenne-user/2005/11/0106.html&lt;/a&gt;&lt;br&gt;&amp;gt; Another suggestion by Cris - store the rules in DataMap for possible reverse engineering with Ant. This should allow model synching directly against the database (but would of course require a special Ant task)
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Closed%3A-%28CAY-402%29-Entity-Attribute-Relationship-naming-improvements-on-rverse-engineering-tp19970313p19970313.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19955717</id>
	<title>Re: Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-13T07:12:53Z</published>
	<updated>2008-10-13T07:12:53Z</updated>
	<author>
		<name>Andrus Adamchik-4</name>
	</author>
	<content type="html">My bad. Attempts to use git with Cayenne completely fried my brain, so &amp;nbsp;
&lt;br&gt;I forgot to add a new file to SVN. This is fixed now. The next build &amp;nbsp;
&lt;br&gt;will hopefully succeed.
&lt;br&gt;&lt;br&gt;Andrus
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Oct 13, 2008, at 4:52 PM, Apache Hudson Server wrote:
&lt;br&gt;&amp;gt; The Apache Hudson build system has built Cayenne-trunk (build #239)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Status: Failure
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Check console output at &lt;a href=&quot;http://hudson.zones.apache.org/hudson//job/Cayenne-trunk/239/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson//job/Cayenne-trunk/239/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp;to view the results.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19955717.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19955489</id>
	<title>Cayenne-trunk - Build # 239 - Failure</title>
	<published>2008-10-13T06:52:17Z</published>
	<updated>2008-10-13T06:52:17Z</updated>
	<author>
		<name>Apache Hudson Server</name>
	</author>
	<content type="html">The Apache Hudson build system has built Cayenne-trunk (build #239)
&lt;br&gt;&lt;br&gt;Status: Failure
&lt;br&gt;&lt;br&gt;Check console output at &lt;a href=&quot;http://hudson.zones.apache.org/hudson//job/Cayenne-trunk/239/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson//job/Cayenne-trunk/239/&lt;/a&gt;&amp;nbsp;to view the results.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cayenne-trunk---Build---239---Failure-tp19955489p19955489.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19954416</id>
	<title>[jira] Closed: (CAY-1110) fetchLimit + DistinctResultIterator = fewer rows in the result</title>
	<published>2008-10-13T05:56:11Z</published>
	<updated>2008-10-13T05:56:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andrus Adamchik closed CAY-1110.
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; fetchLimit + DistinctResultIterator = fewer rows in the result
&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: CAY-1110
&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/cayenne/browse/CAY-1110&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1110&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: limit.txt, limitIterator.txt, limitIterator_1.txt, test_v_2.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I don't have a test case yet, but I noticed in a SelectQuery with implicit DISTINCT (due to a qualifier on to-many), if the root entity has columns that force Cayenne into outside-of-db distinct check (e.g. CLOB columns), I am getting fewer results than the fetch limit. This is due to fetch limit being applied inside the inner result iterator (JDBCResultIterator) not the outer filtering iterator (DistinctResultIterator)
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1110%29-fetchLimit-%2B-DistinctResultIterator-%3D-fewer-rows-in-the-result-tp19634298p19954416.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19954251</id>
	<title>[jira] Updated: (CAY-1110) fetchLimit + DistinctResultIterator = fewer rows in the result</title>
	<published>2008-10-13T05:47:11Z</published>
	<updated>2008-10-13T05:47:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Loiko Dima updated CAY-1110:
&lt;br&gt;----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: limitIterator_1.txt
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; fetchLimit + DistinctResultIterator = fewer rows in the result
&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: CAY-1110
&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/cayenne/browse/CAY-1110&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1110&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: limit.txt, limitIterator.txt, limitIterator_1.txt, test_v_2.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I don't have a test case yet, but I noticed in a SelectQuery with implicit DISTINCT (due to a qualifier on to-many), if the root entity has columns that force Cayenne into outside-of-db distinct check (e.g. CLOB columns), I am getting fewer results than the fetch limit. This is due to fetch limit being applied inside the inner result iterator (JDBCResultIterator) not the outer filtering iterator (DistinctResultIterator)
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1110%29-fetchLimit-%2B-DistinctResultIterator-%3D-fewer-rows-in-the-result-tp19634298p19954251.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19953681</id>
	<title>[jira] Commented: (CAY-1123) Add UUID support</title>
	<published>2008-10-13T05:08:11Z</published>
	<updated>2008-10-13T05:08:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13164#action_13164&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13164#action_13164&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andrus Adamchik commented on CAY-1123:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;no problem if it sits there. It is clear what you were trying to say here.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add UUID support
&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: CAY-1123
&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/cayenne/browse/CAY-1123&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: PostgreSQL
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: UUIDType.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To work properly with PostgreSQL's UUID columnt type I use next class which extends ExtendedType:
&lt;br&gt;&amp;gt; package sandbox.orm.cayenne;
&lt;br&gt;&amp;gt; import java.sql.CallableStatement;
&lt;br&gt;&amp;gt; import java.sql.PreparedStatement;
&lt;br&gt;&amp;gt; import java.sql.ResultSet;
&lt;br&gt;&amp;gt; import java.sql.Types;
&lt;br&gt;&amp;gt; import java.util.UUID;
&lt;br&gt;&amp;gt; import org.apache.cayenne.CayenneRuntimeException;
&lt;br&gt;&amp;gt; import org.apache.cayenne.access.types.ExtendedType;
&lt;br&gt;&amp;gt; import org.apache.cayenne.map.DbAttribute;
&lt;br&gt;&amp;gt; import org.apache.cayenne.validation.ValidationResult;
&lt;br&gt;&amp;gt; public class UUIDType implements ExtendedType {
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public String getClassName() {
&lt;br&gt;&amp;gt; 		return UUID.class.getName();
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(ResultSet rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(CallableStatement rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public void setJdbcObject(PreparedStatement statement, Object value,
&lt;br&gt;&amp;gt; 			int pos, int type, int precision) throws Exception {
&lt;br&gt;&amp;gt; 		if (value == null) {
&lt;br&gt;&amp;gt; 			statement.setNull(pos, type);
&lt;br&gt;&amp;gt; 		} else if (value instanceof UUID) {
&lt;br&gt;&amp;gt; 			statement.setObject(pos, value);
&lt;br&gt;&amp;gt; 		} else {
&lt;br&gt;&amp;gt; 			throw new IllegalArgumentException(&amp;quot;Expected java.util.UUID, got &amp;quot;
&lt;br&gt;&amp;gt; 					+ value.getClass().getName());
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public boolean validateProperty(Object source, String property,
&lt;br&gt;&amp;gt; 			Object value, DbAttribute dbAttribute,
&lt;br&gt;&amp;gt; 			ValidationResult validationResult) {
&lt;br&gt;&amp;gt; 		return true;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; Then I register it with Configuration.getSharedConfiguration().getDomain().getNode(&amp;quot;MyNode&amp;quot;).getAdapter().getExtendedTypes().registerType(new UUIDType());
&lt;br&gt;&amp;gt; Wouldn't it better to have same functionality in Cayenne core?
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Artyom
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1123%29-Add-UUID-support-tp19953494p19953681.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19953574</id>
	<title>[jira] Commented: (CAY-1123) Add UUID support</title>
	<published>2008-10-13T05:02:11Z</published>
	<updated>2008-10-13T05:02:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13163#action_13163&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13163#action_13163&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Artyom Sokolov commented on CAY-1123:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;Ooops. Could anybody edit this issue and delete code stuff? I've already attached it. I am a bit new to JIRA, so... sorry :)
&lt;br&gt;&lt;br&gt;Thanks, 
&lt;br&gt;Artyom
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add UUID support
&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: CAY-1123
&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/cayenne/browse/CAY-1123&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: PostgreSQL
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: UUIDType.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To work properly with PostgreSQL's UUID columnt type I use next class which extends ExtendedType:
&lt;br&gt;&amp;gt; package sandbox.orm.cayenne;
&lt;br&gt;&amp;gt; import java.sql.CallableStatement;
&lt;br&gt;&amp;gt; import java.sql.PreparedStatement;
&lt;br&gt;&amp;gt; import java.sql.ResultSet;
&lt;br&gt;&amp;gt; import java.sql.Types;
&lt;br&gt;&amp;gt; import java.util.UUID;
&lt;br&gt;&amp;gt; import org.apache.cayenne.CayenneRuntimeException;
&lt;br&gt;&amp;gt; import org.apache.cayenne.access.types.ExtendedType;
&lt;br&gt;&amp;gt; import org.apache.cayenne.map.DbAttribute;
&lt;br&gt;&amp;gt; import org.apache.cayenne.validation.ValidationResult;
&lt;br&gt;&amp;gt; public class UUIDType implements ExtendedType {
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public String getClassName() {
&lt;br&gt;&amp;gt; 		return UUID.class.getName();
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(ResultSet rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(CallableStatement rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public void setJdbcObject(PreparedStatement statement, Object value,
&lt;br&gt;&amp;gt; 			int pos, int type, int precision) throws Exception {
&lt;br&gt;&amp;gt; 		if (value == null) {
&lt;br&gt;&amp;gt; 			statement.setNull(pos, type);
&lt;br&gt;&amp;gt; 		} else if (value instanceof UUID) {
&lt;br&gt;&amp;gt; 			statement.setObject(pos, value);
&lt;br&gt;&amp;gt; 		} else {
&lt;br&gt;&amp;gt; 			throw new IllegalArgumentException(&amp;quot;Expected java.util.UUID, got &amp;quot;
&lt;br&gt;&amp;gt; 					+ value.getClass().getName());
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public boolean validateProperty(Object source, String property,
&lt;br&gt;&amp;gt; 			Object value, DbAttribute dbAttribute,
&lt;br&gt;&amp;gt; 			ValidationResult validationResult) {
&lt;br&gt;&amp;gt; 		return true;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; Then I register it with Configuration.getSharedConfiguration().getDomain().getNode(&amp;quot;MyNode&amp;quot;).getAdapter().getExtendedTypes().registerType(new UUIDType());
&lt;br&gt;&amp;gt; Wouldn't it better to have same functionality in Cayenne core?
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Artyom
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1123%29-Add-UUID-support-tp19953494p19953574.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19953517</id>
	<title>[jira] Updated: (CAY-1123) Add UUID support</title>
	<published>2008-10-13T04:58:11Z</published>
	<updated>2008-10-13T04:58:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Artyom Sokolov updated CAY-1123:
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: UUIDType.java
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add UUID support
&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: CAY-1123
&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/cayenne/browse/CAY-1123&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: PostgreSQL
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: UUIDType.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To work properly with PostgreSQL's UUID columnt type I use next class which extends ExtendedType:
&lt;br&gt;&amp;gt; package sandbox.orm.cayenne;
&lt;br&gt;&amp;gt; import java.sql.CallableStatement;
&lt;br&gt;&amp;gt; import java.sql.PreparedStatement;
&lt;br&gt;&amp;gt; import java.sql.ResultSet;
&lt;br&gt;&amp;gt; import java.sql.Types;
&lt;br&gt;&amp;gt; import java.util.UUID;
&lt;br&gt;&amp;gt; import org.apache.cayenne.CayenneRuntimeException;
&lt;br&gt;&amp;gt; import org.apache.cayenne.access.types.ExtendedType;
&lt;br&gt;&amp;gt; import org.apache.cayenne.map.DbAttribute;
&lt;br&gt;&amp;gt; import org.apache.cayenne.validation.ValidationResult;
&lt;br&gt;&amp;gt; public class UUIDType implements ExtendedType {
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public String getClassName() {
&lt;br&gt;&amp;gt; 		return UUID.class.getName();
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(ResultSet rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public Object materializeObject(CallableStatement rs, int index, int type)
&lt;br&gt;&amp;gt; 			throws Exception {
&lt;br&gt;&amp;gt; 		UUID uuid = null;
&lt;br&gt;&amp;gt; 		switch (type) {
&lt;br&gt;&amp;gt; 		case Types.NULL:
&lt;br&gt;&amp;gt; 			uuid = null;
&lt;br&gt;&amp;gt; 			break;
&lt;br&gt;&amp;gt; 		default:
&lt;br&gt;&amp;gt; 			try {
&lt;br&gt;&amp;gt; 				uuid = UUID.fromString(rs.getObject(index).toString());
&lt;br&gt;&amp;gt; 			} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;gt; 				throw new CayenneRuntimeException(
&lt;br&gt;&amp;gt; 						&amp;quot;Expected an instance of java.util.UUID, instead got &amp;quot;
&lt;br&gt;&amp;gt; 								+ uuid.getClass().getName()
&lt;br&gt;&amp;gt; 								+ &amp;quot;, column index: &amp;quot; + index);
&lt;br&gt;&amp;gt; 			}
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 		return uuid;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public void setJdbcObject(PreparedStatement statement, Object value,
&lt;br&gt;&amp;gt; 			int pos, int type, int precision) throws Exception {
&lt;br&gt;&amp;gt; 		if (value == null) {
&lt;br&gt;&amp;gt; 			statement.setNull(pos, type);
&lt;br&gt;&amp;gt; 		} else if (value instanceof UUID) {
&lt;br&gt;&amp;gt; 			statement.setObject(pos, value);
&lt;br&gt;&amp;gt; 		} else {
&lt;br&gt;&amp;gt; 			throw new IllegalArgumentException(&amp;quot;Expected java.util.UUID, got &amp;quot;
&lt;br&gt;&amp;gt; 					+ value.getClass().getName());
&lt;br&gt;&amp;gt; 		}
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; 	@Override
&lt;br&gt;&amp;gt; 	public boolean validateProperty(Object source, String property,
&lt;br&gt;&amp;gt; 			Object value, DbAttribute dbAttribute,
&lt;br&gt;&amp;gt; 			ValidationResult validationResult) {
&lt;br&gt;&amp;gt; 		return true;
&lt;br&gt;&amp;gt; 	}
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; Then I register it with Configuration.getSharedConfiguration().getDomain().getNode(&amp;quot;MyNode&amp;quot;).getAdapter().getExtendedTypes().registerType(new UUIDType());
&lt;br&gt;&amp;gt; Wouldn't it better to have same functionality in Cayenne core?
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Artyom
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1123%29-Add-UUID-support-tp19953494p19953517.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19953494</id>
	<title>[jira] Created: (CAY-1123) Add UUID support</title>
	<published>2008-10-13T04:56:11Z</published>
	<updated>2008-10-13T04:56:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">Add UUID support
&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: CAY-1123
&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/cayenne/browse/CAY-1123&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1123&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Cayenne
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: New Feature
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: PostgreSQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Artyom Sokolov
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Andrus Adamchik
&lt;br&gt;&lt;br&gt;&lt;br&gt;To work properly with PostgreSQL's UUID columnt type I use next class which extends ExtendedType:
&lt;br&gt;&lt;br&gt;package sandbox.orm.cayenne;
&lt;br&gt;&lt;br&gt;import java.sql.CallableStatement;
&lt;br&gt;import java.sql.PreparedStatement;
&lt;br&gt;import java.sql.ResultSet;
&lt;br&gt;import java.sql.Types;
&lt;br&gt;import java.util.UUID;
&lt;br&gt;&lt;br&gt;import org.apache.cayenne.CayenneRuntimeException;
&lt;br&gt;import org.apache.cayenne.access.types.ExtendedType;
&lt;br&gt;import org.apache.cayenne.map.DbAttribute;
&lt;br&gt;import org.apache.cayenne.validation.ValidationResult;
&lt;br&gt;&lt;br&gt;public class UUIDType implements ExtendedType {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String getClassName() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return UUID.class.getName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Object materializeObject(ResultSet rs, int index, int type)
&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; throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UUID uuid = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (type) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case Types.NULL:
&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; uuid = null;
&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; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:
&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; try {
&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;nbsp; &amp;nbsp; uuid = UUID.fromString(rs.getObject(index).toString());
&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; } catch (IllegalArgumentException e) {
&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;nbsp; &amp;nbsp; throw new CayenneRuntimeException(
&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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Expected an instance of java.util.UUID, instead got &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;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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + uuid.getClass().getName()
&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;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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot;, column index: &amp;quot; + index);
&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; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return uuid;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Object materializeObject(CallableStatement rs, int index, int type)
&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; throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UUID uuid = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (type) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case Types.NULL:
&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; uuid = null;
&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; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:
&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; try {
&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;nbsp; &amp;nbsp; uuid = UUID.fromString(rs.getObject(index).toString());
&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; } catch (IllegalArgumentException e) {
&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;nbsp; &amp;nbsp; throw new CayenneRuntimeException(
&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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Expected an instance of java.util.UUID, instead got &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;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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + uuid.getClass().getName()
&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;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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot;, column index: &amp;quot; + index);
&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; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return uuid;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void setJdbcObject(PreparedStatement statement, Object value,
&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; int pos, int type, int precision) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (value == null) {
&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; statement.setNull(pos, type);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (value instanceof UUID) {
&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; statement.setObject(pos, value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&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; throw new IllegalArgumentException(&amp;quot;Expected java.util.UUID, got &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;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + value.getClass().getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public boolean validateProperty(Object source, String property,
&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; Object value, DbAttribute dbAttribute,
&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; ValidationResult validationResult) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Then I register it with Configuration.getSharedConfiguration().getDomain().getNode(&amp;quot;MyNode&amp;quot;).getAdapter().getExtendedTypes().registerType(new UUIDType());
&lt;br&gt;&lt;br&gt;Wouldn't it better to have same functionality in Cayenne core?
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Artyom
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1123%29-Add-UUID-support-tp19953494p19953494.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19952745</id>
	<title>[jira] Commented: (CAY-1122) Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class</title>
	<published>2008-10-13T03:58:11Z</published>
	<updated>2008-10-13T03:58:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13162#action_13162&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13162#action_13162&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andrus Adamchik commented on CAY-1122:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;then it is a different kind of bug. Let me look into that.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class
&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: CAY-1122
&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/cayenne/browse/CAY-1122&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Currently to achieve the same functionality we need to write next code:
&lt;br&gt;&amp;gt; 			SQLTemplate query = (SQLTemplate) dataContext.getEntityResolver().lookupQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; It could be much better to write just this:
&lt;br&gt;&amp;gt; 			NamedQuery query = new NamedQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; Code without casts looks more pretty and clean... doesn't it? :)
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1122%29-Add-setColumnNamesCapitalization%28String-columnNameCapitalization%29-method-to-NamedQuery-class-tp19949848p19952745.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19951758</id>
	<title>Re: Thanks for fixing ROP Rollback</title>
	<published>2008-10-13T02:54:30Z</published>
	<updated>2008-10-13T02:54:30Z</updated>
	<author>
		<name>Andrey Razumovsky</name>
	</author>
	<content type="html">Hi Tarik!
&lt;br&gt;&lt;br&gt;I've some changes in rollback procedure today too, so I recommend to use
&lt;br&gt;fresh-built Cayenne jar with all changes.
&lt;br&gt;&lt;br&gt;Andrey
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---User-f2414.html&quot; embed=&quot;fixTarget[2414]&quot; target=&quot;_top&quot; &gt;Cayenne - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Accepting-DOs-from-a-Spring-service-tp19854352p19951758.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19951749</id>
	<title>[jira] Closed: (CAY-1118) ROP: setToXXX(null) does not update reverse rel</title>
	<published>2008-10-13T02:53:11Z</published>
	<updated>2008-10-13T02:53:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andrey Razumovsky closed CAY-1118.
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;Unsetting of to-many relationships worked incorrectly in ROP and is now fixed
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ROP: setToXXX(null) does not update reverse rel
&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: CAY-1118
&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/cayenne/browse/CAY-1118&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1118&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Following test fails. The reason is that setToXXX(null) causes an invalidation on reverse property but not a removal of reverse object
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientMtTable1 o1 = context.newObject(ClientMtTable1.class);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientMtTable2 o2 = context.newObject(ClientMtTable2.class);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; o2.setTable1(o1);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(1, o1.getTable2Array().size());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.commitChanges(); //important line!
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; o2.setTable1(null);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(0, o1.getTable2Array().size());
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1118%29-ROP%3A-setToXXX%28null%29-does-not-update-reverse-rel-tp19901186p19951749.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19951424</id>
	<title>[jira] Commented: (CAY-1122) Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class</title>
	<published>2008-10-13T02:30:11Z</published>
	<updated>2008-10-13T02:30:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13160#action_13160&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13160#action_13160&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Artyom Sokolov commented on CAY-1122:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;Hi Andrus,
&lt;br&gt;&lt;br&gt;Unfortunately &amp;quot;&amp;lt;property name=&amp;quot;cayenne.SQLTemplate.columnNameCapitalization&amp;quot; value=&amp;quot;upper&amp;quot;/&amp;gt;&amp;quot; seems not to work for me in 3.0M4. It looks like Cayenne simple ignores this construction at all. This is the reason why I use explicit capitalization in code :)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Artyom
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class
&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: CAY-1122
&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/cayenne/browse/CAY-1122&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Currently to achieve the same functionality we need to write next code:
&lt;br&gt;&amp;gt; 			SQLTemplate query = (SQLTemplate) dataContext.getEntityResolver().lookupQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; It could be much better to write just this:
&lt;br&gt;&amp;gt; 			NamedQuery query = new NamedQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; Code without casts looks more pretty and clean... doesn't it? :)
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1122%29-Add-setColumnNamesCapitalization%28String-columnNameCapitalization%29-method-to-NamedQuery-class-tp19949848p19951424.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19951281</id>
	<title>[jira] Assigned: (CAY-1118) ROP: setToXXX(null) does not update reverse rel</title>
	<published>2008-10-13T02:17:11Z</published>
	<updated>2008-10-13T02:17:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andrey Razumovsky reassigned CAY-1118:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Assignee: Andrey Razumovsky &amp;nbsp;(was: Andrus Adamchik)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ROP: setToXXX(null) does not update reverse rel
&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: CAY-1118
&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/cayenne/browse/CAY-1118&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1118&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&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: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrey Razumovsky
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 3.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Following test fails. The reason is that setToXXX(null) causes an invalidation on reverse property but not a removal of reverse object
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientMtTable1 o1 = context.newObject(ClientMtTable1.class);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientMtTable2 o2 = context.newObject(ClientMtTable2.class);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; o2.setTable1(o1);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(1, o1.getTable2Array().size());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.commitChanges(); //important line!
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; o2.setTable1(null);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(0, o1.getTable2Array().size());
&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;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Cayenne---Dev-f2413.html&quot; embed=&quot;fixTarget[2413]&quot; target=&quot;_top&quot; &gt;Cayenne - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAY-1118%29-ROP%3A-setToXXX%28null%29-does-not-update-reverse-rel-tp19901186p19951281.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19950802</id>
	<title>[jira] Commented: (CAY-1122) Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class</title>
	<published>2008-10-13T01:39:11Z</published>
	<updated>2008-10-13T01:39:11Z</updated>
	<author>
		<name>Cayenne - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13159#action_13159&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=13159#action_13159&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andrus Adamchik commented on CAY-1122:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;Hi Artem,
&lt;br&gt;&lt;br&gt;NamedQuery main intent is to accessed shared queries mapped in the Modeler where you can set column name capitalization using &amp;quot;Row Label Case&amp;quot; dropdown. Will this work for you?
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Andrus
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add setColumnNamesCapitalization(String columnNameCapitalization) method to NamedQuery class
&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: CAY-1122
&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/cayenne/browse/CAY-1122&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/cayenne/browse/CAY-1122&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Cayenne
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Cayenne Core Library
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 3.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Artyom Sokolov
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andrus Adamchik
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Currently to achieve the same functionality we need to write next code:
&lt;br&gt;&amp;gt; 			SQLTemplate query = (SQLTemplate) dataContext.getEntityResolver().lookupQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; It could be much better to write just this:
&lt;br&gt;&amp;gt; 			NamedQuery query = new NamedQuery(&amp;quot;GetUris&amp;quot;);
&lt;br&gt;&amp;gt; 			query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
&lt;br&gt;&amp;gt; 			List&amp;lt;Uri&amp;gt; uris = dataContext.performQuery(query);
&lt;br&gt;&amp;gt; Code without casts looks more pretty and clean... doesn't it? :)
&