Re: [jira] Updated: (JDO-257) Change return type of makePersistent from void to Object

2006-01-01 Thread Craig L Russell
Hi Michael,Looks good. Just one petty comment.CraigIndex: src/java/javax/jdo/listener/AttachCallback.java===--- src/java/javax/jdo/listener/AttachCallback.java	(Revision 360481)+++ src/java/javax/jdo/listener/AttachCallback.java	(Arbeitskopie)@@ -32,17 +32,18 @@          /**      * This method is called during the execution of-     * [EMAIL PROTECTED] PersistenceManager#attachCopy} before the copy is made.+     * [EMAIL PROTECTED] PersistenceManager#makePersistent} on the detached parameterI'd remove "parameter" since it might be a reached instance not a parameter instance.+     * instance before the copy is made.      * @since 2.0      */     public void jdoPreAttach();     /**      * This method is called during the execution of-     * [EMAIL PROTECTED] PersistenceManager#attachCopy} on the persistent+     * [EMAIL PROTECTED] PersistenceManager#makePersistent} on the persistent      * instance after the copy is made.      * @param attached	The corresponding (non-attached) instance that was-     * attached in the call to [EMAIL PROTECTED] PersistenceManager#attachCopy}.+     * attached in the call to [EMAIL PROTECTED] PersistenceManager#makePersistent}.      * @since 2.0      */     public void jdoPostAttach(Object attached);Index: src/java/javax/jdo/listener/AttachLifecycleListener.java===--- src/java/javax/jdo/listener/AttachLifecycleListener.java	(Revision 360481)+++ src/java/javax/jdo/listener/AttachLifecycleListener.java	(Arbeitskopie)@@ -33,19 +33,23 @@     extends InstanceLifecycleListener {          /**-     * This method is called during the execution of-     * [EMAIL PROTECTED] PersistenceManager#attachCopy} before the copy is made.-     * It is called before the method [EMAIL PROTECTED] AttachCallback#jdoPreAttach}-     * is invoked on the instance to be attached.+     * This method is called before a detached instance is attached, via the+     * [EMAIL PROTECTED] PersistenceManager#makePersistent} method. The source instance+     * is the detached instance. This method is called before the+     * corresponding [EMAIL PROTECTED] AttachCallback#jdoPreAttach} on the detached+     * instance.      * @param event the attach event.      * @since 2.0-	 */+     */     void preAttach (InstanceLifecycleEvent event);          /**-     * This method is called during the execution of-     * [EMAIL PROTECTED] PersistenceManager#attachCopy} on the persistent-     * instance after the copy is made.+     * This method is called after a detached instance is attached, via the+     * [EMAIL PROTECTED] PersistenceManager#makePersistent} method. The source+     * instance is the corresponding persistent instance in the cache; the+     * target instance is the detached instance. This method is called after+     * the corresponding [EMAIL PROTECTED] AttachCallback#jdoPostAttach} on the+     * persistent instance.      * @param event the attach event.      * @since 2.0      */On Jan 1, 2006, at 10:52 AM, Michael Bouschen (JIRA) wrote:     [ http://issues.apache.org/jira/browse/JDO-257?page=all ]Michael Bouschen updated JDO-257:-    Attachment: attachInterfaces.patchAttached you find a patch (attachInterfaces.patch) for review. It removes javadoc references to PM.attachCopy which has been removed.  Change return type of makePersistent from void to Object         Key: JDO-257         URL: http://issues.apache.org/jira/browse/JDO-257     Project: JDO        Type: New Feature  Components: api20    Reporter: Craig Russell    Assignee: Craig Russell     Fix For: JDO 2 beta Attachments: attachInterfaces.patch, persistencemanager.patchThe signatures of makePersistent and makePersistentAll are changed to return the persistent instances. This change was adopted by the expert group 8-Dec-2005. -- This message is automatically generated by JIRA.-If you think it was sent incorrectly contact one of the administrators:   http://issues.apache.org/jira/secure/Administrators.jspa-For more information on JIRA, see:   http://www.atlassian.com/software/jira  Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!  

smime.p7s
Description: S/MIME cryptographic signature


[jira] Resolved: (JDO-248) JPOX generates illegal SQL for queries using result class java.util.Map.

2006-01-01 Thread Craig Russell (JIRA)
 [ http://issues.apache.org/jira/browse/JDO-248?page=all ]
 
Craig Russell resolved JDO-248:
---

Fix Version: JDO 2 beta
 Resolution: Fixed
  Assign To: Craig Russell  (was: Erik Bengtson)

Committed revision 360562.

I changed the query to return named fields to be put into the Map.

The test still fails due to JDO-247 and JDO-249 but this case is closed.

> JPOX generates illegal SQL for queries using result class java.util.Map.
> 
>
>  Key: JDO-248
>  URL: http://issues.apache.org/jira/browse/JDO-248
>  Project: JDO
> Type: Bug
>   Components: tck20
> Reporter: Michael Watzek
> Assignee: Craig Russell
>  Fix For: JDO 2 beta

>
> Test case ResultClassRequirements fails because JPOX generates illegal SQL 
> for the query below. The query uses result class java.util.Map. The FROM 
> caluse of the generated SQL is empty.
> 14:23:04,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT 
> phoneNumbers INTO java.util.Map FROM 
> org.apache.jdo.tck.pc.company.FullTimeEmployee 
> 14:23:04,687 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or 
> runtest: 
> javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT  FROM 
> applicationidentity0.PERSONS THIS WHERE THIS.DISCRIMINATOR = ?" : Syntax 
> error: Encountered "FROM" at line 1, column 9.
> ERROR 42X01: Syntax error: Encountered "FROM" at line 1, column 9.
>   at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>   at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown 
> Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
>   at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
>  Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(Unknown 
> Source)
>   at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at 
> com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:190)
>   at org.jpox.store.StatementText.prepareStatement(StatementText.java:199)
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:678)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   at org.jpox.store.query.Query.execute(Query.java:862)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
>   at 
> org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
>   at 
> org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:324)
>   at junit.framework.TestCase.runTest(TestCase.java:154)
>   at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>   at junit.framework.TestResult$1.protect(TestResult.java:106)
>   at junit.framework.TestResult.runProtected(TestResult.java:124)
>   at junit.framework.TestResult.run(TestResult.java:109)
>   at junit.framework.TestCase.run(TestCase.java:118)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.textui.TestRunner.doRun(TestRunner.java:116)
>   at junit.textui.TestRunner.doRun(TestRunner.java:109)
>   at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
>   at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
> .
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:747)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   

Re: You can now debug tck20!

2006-01-01 Thread Michael Bouschen

Hi Matthew,

thanks for adding debug support to maven.xml, this is great!

I would like to propose two improvements:
- I always get a message "JVM will wait until debugger attaches on port 
..." even if I call runtck.jdori. I think the check whether property 
debugJvmargs is set needs to use the empty operator instead of comparing 
!= ''

 
- I noticed the goals debugtck.iut and debugtck.jdori use the same code 
to set the debug properties. I refactored the goals and added a separate 
goal setDebugProps managing the debug properties.


You find a patch attached. Please give it a try and let me know what you 
think.


Regards Michael


There are now two new targets in trunk/tck20/maven.xml that cause the forked
JVM to include debugging arguments:  debugtck.jdori and debugtck.iut.
They're simply convenience goals that set simply set the property
"jdo.tck.debug.jvmargs" if it's not set, then attain the runtck.jdori or
runtck.iut, respectively, which are now sensitive to jdo.tck.debug.jvmargs.

The default debug transport is dt_socket.  For convenience, if you do not
set a port, the default is 8787, but you can set the port via the property
"jdo.tck.debug.port".  So, for example, to debug a configuration of your
choice, in any IDE you like, simply exec on the command line

maven -Djdo.tck.cfglist=detach.conf debugtck.jdori

Wait for the message that the JVM is waiting for a debugger to attach, then
attach your IDE to the port given using dt_socket transport.  If you want to
set the port, execute

maven -Djdo.tck.cfglist=detach.conf -Djdo.tck.debug.port=7859 debugtck.jdori

If you want to control the entire set of debug jvm arguments, execute

maven -Djdo.tck.cfglist=detach.conf -Djdo.tck.debug.jvmargs="-Xdebug
-Xnoagent ..." runtck.jdori

You can also use the target debugtck.jdori instead of runtck.jdori, but
it'll just end up calling runtck.jdori.

I hope this helps everyone out!

--matthew



Matthew T. Adams
Corporate Technical Advisor & Senior Consultant
Mobile:  +1 253 732 1051
Phone:  +1 206 331 3833
Fax:  +1 815 331 0952
[EMAIL PROTECTED]
P.O. Box 24163
Federal Way, WA  98093
www.xcalia.com



Xcalia makes implementing SOA easy with agile business intermediation
software that combines heterogeneous data with services to easily develop
and deploy transactional composite applications.  Enterprises can quickly
respond to changing business requirements and dramatically reduce the costs
of data access and service integration.

 




--
Michael Bouschen[EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED]http://www.tech.spree.de/
Tel.:++49/30/235 520-33 Buelowstr. 66   
Fax.:++49/30/2175 2012  D-10783 Berlin  

Index: maven.xml
===
--- maven.xml   (Revision 360481)
+++ maven.xml   (Arbeitskopie)
@@ -150,6 +150,23 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+Using debug arguments:
+${jdo.tck.debug.jvmargs}
+
+
 
 
 
@@ -217,21 +234,7 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-Using debug arguments:
-${jdo.tck.debug.jvmargs}
-
+
 
 
 
@@ -273,21 +276,7 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-Using debug arguments:
-${jdo.tck.debug.jvmargs}
-
+
 
 
 
@@ -346,7 +335,7 @@
 
 
 
-
+
 JVM will wait until debugger attaches on port 
${jdo.tck.debug.port}...
 
 
@@ -404,7 +393,7 @@
 
 
 
-
+
 JVM will wait until debugger attaches on port 
${jdo.tck.debug.port}...
 
 


[jira] Updated: (JDO-257) Change return type of makePersistent from void to Object

2006-01-01 Thread Michael Bouschen (JIRA)
 [ http://issues.apache.org/jira/browse/JDO-257?page=all ]

Michael Bouschen updated JDO-257:
-

Attachment: attachInterfaces.patch

Attached you find a patch (attachInterfaces.patch) for review. It removes 
javadoc references to PM.attachCopy which has been removed. 

> Change return type of makePersistent from void to Object
> 
>
>  Key: JDO-257
>  URL: http://issues.apache.org/jira/browse/JDO-257
>  Project: JDO
> Type: New Feature
>   Components: api20
> Reporter: Craig Russell
> Assignee: Craig Russell
>  Fix For: JDO 2 beta
>  Attachments: attachInterfaces.patch, persistencemanager.patch
>
> The signatures of makePersistent and makePersistentAll are changed to return 
> the persistent instances. This change was adopted by the expert group 
> 8-Dec-2005.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



[jira] Resolved: (JDO-252) JPOX throws JDOFatalInternalException for queries using numeric operators in the result clause.

2006-01-01 Thread Andy Jefferson (JIRA)
 [ http://issues.apache.org/jira/browse/JDO-252?page=all ]
 
Andy Jefferson resolved JDO-252:


Resolution: Fixed
 Assign To: Andy Jefferson  (was: Erik Bengtson)

Fixed in JPOX CVS - builds 02/01/2006 or later.

> JPOX throws JDOFatalInternalException for queries using numeric operators in 
> the result clause.
> ---
>
>  Key: JDO-252
>  URL: http://issues.apache.org/jira/browse/JDO-252
>  Project: JDO
> Type: Bug
>   Components: tck20
> Reporter: Michael Watzek
> Assignee: Andy Jefferson

>
> Test case ResultExpressions fails for the query below. The query uses a + 
> operator in the result clause.
> 14:23:26,203 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT 
> personid + 1 FROM org.apache.jdo.tck.pc.company.Person 
> 14:23:26,218 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or 
> runtest: 
> javax.jdo.JDOFatalInternalException: The expression NumericExpression 
> "THIS.PERSONID + 1" is not supported in results.
>   at 
> org.jpox.store.query.ResultExpressionsQueryable.newResultObjectFactory(ResultExpressionsQueryable.java:251)
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:642)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   at org.jpox.store.query.Query.execute(Query.java:862)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
>   at 
> org.apache.jdo.tck.query.result.ResultExpressions.executeQuery(ResultExpressions.java:483)
>   at 
> org.apache.jdo.tck.query.result.ResultExpressions.testFieldExpression(ResultExpressions.java:440)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:324)
>   at junit.framework.TestCase.runTest(TestCase.java:154)
>   at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>   at junit.framework.TestResult$1.protect(TestResult.java:106)
>   at junit.framework.TestResult.runProtected(TestResult.java:124)
>   at junit.framework.TestResult.run(TestResult.java:109)
>   at junit.framework.TestCase.run(TestCase.java:118)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.textui.TestRunner.doRun(TestRunner.java:116)
>   at junit.textui.TestRunner.doRun(TestRunner.java:109)
>   at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
>   at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



[jira] Resolved: (JDO-253) JPOX generates illegal SQL for queries accessing fields of parameter in the result clause.

2006-01-01 Thread Andy Jefferson (JIRA)
 [ http://issues.apache.org/jira/browse/JDO-253?page=all ]
 
Andy Jefferson resolved JDO-253:


Resolution: Fixed
 Assign To: Andy Jefferson  (was: Erik Bengtson)

Fixed in JPOX CVS - builds 02/01/2006 or later.

> JPOX generates illegal SQL for queries accessing fields of parameter in the 
> result clause.
> --
>
>  Key: JDO-253
>  URL: http://issues.apache.org/jira/browse/JDO-253
>  Project: JDO
> Type: Bug
>   Components: tck20
> Reporter: Michael Watzek
> Assignee: Andy Jefferson

>
> Test case ResultExpressions fails for the query below. The query selects a 
> field of a parameter in the result clause. The type of the parameter is a pc 
> class.
> 14:23:30,734 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT 
> project.projid FROM org.apache.jdo.tck.pc.company.Employee WHERE personid == 
> 1 PARAMETERS Project project 
> 14:23:30,796 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or 
> runtest: 
> javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT  FROM 
> applicationidentity0.PERSONS THIS WHERE (THIS.DISCRIMINATOR = ? OR 
> THIS.DISCRIMINATOR = ? OR THIS.DISCRIMINATOR = ?) AND THIS.PERSONID = 1" : 
> Syntax error: Encountered "FROM" at line 1, column 9.
> ERROR 42X01: Syntax error: Encountered "FROM" at line 1, column 9.
>   at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>   at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown 
> Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
>   at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
>  Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(Unknown 
> Source)
>   at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at 
> com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:190)
>   at org.jpox.store.StatementText.prepareStatement(StatementText.java:199)
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:678)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1153)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
>   at 
> org.apache.jdo.tck.query.result.ResultExpressions.executeQuery(ResultExpressions.java:483)
>   at 
> org.apache.jdo.tck.query.result.ResultExpressions.testNavigationalExpressionParameter(ResultExpressions.java:459)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:324)
>   at junit.framework.TestCase.runTest(TestCase.java:154)
>   at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>   at junit.framework.TestResult$1.protect(TestResult.java:106)
>   at junit.framework.TestResult.runProtected(TestResult.java:124)
>   at junit.framework.TestResult.run(TestResult.java:109)
>   at junit.framework.TestCase.run(TestCase.java:118)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.textui.TestRunner.doRun(TestRunner.java:116)
>   at junit.textui.TestRunner.doRun(TestRunner.java:109)
>   at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
>   at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
> .
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:747)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1153)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAP

[jira] Commented: (JDO-248) JPOX generates illegal SQL for queries using result class java.util.Map.

2006-01-01 Thread Andy Jefferson (JIRA)
[ 
http://issues.apache.org/jira/browse/JDO-248?page=comments#action_12361484 ] 

Andy Jefferson commented on JDO-248:


The test has  a query "SELECT phoneNumbers FROM FullTimeEmployee INTO 
java.util.Map
where "phoneNumbers" is a Map field.

The test seems to think that selecting a field that is a Map will mean that 
this will be loaded into the result class Map for each result row. That is not 
my understanding of why java.util.Map was added to the JDO2 spec as a valid 
result class. It was added so that all fields/columns in the result spec can be 
added to the Map using the put(key, value) method with the key being the field 
name. Perhaps the test should be changed to select some real fields and then 
test that they have been loaded into the result Map correctly.

> JPOX generates illegal SQL for queries using result class java.util.Map.
> 
>
>  Key: JDO-248
>  URL: http://issues.apache.org/jira/browse/JDO-248
>  Project: JDO
> Type: Bug
>   Components: tck20
> Reporter: Michael Watzek
> Assignee: Erik Bengtson

>
> Test case ResultClassRequirements fails because JPOX generates illegal SQL 
> for the query below. The query uses result class java.util.Map. The FROM 
> caluse of the generated SQL is empty.
> 14:23:04,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT 
> phoneNumbers INTO java.util.Map FROM 
> org.apache.jdo.tck.pc.company.FullTimeEmployee 
> 14:23:04,687 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or 
> runtest: 
> javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT  FROM 
> applicationidentity0.PERSONS THIS WHERE THIS.DISCRIMINATOR = ?" : Syntax 
> error: Encountered "FROM" at line 1, column 9.
> ERROR 42X01: Syntax error: Encountered "FROM" at line 1, column 9.
>   at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>   at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown 
> Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
>   at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
>   at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
>  Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(Unknown 
> Source)
>   at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown 
> Source)
>   at 
> com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:190)
>   at org.jpox.store.StatementText.prepareStatement(StatementText.java:199)
>   at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:678)
>   at org.jpox.store.query.Query.executeWithMap(Query.java:966)
>   at org.jpox.store.query.Query.executeWithArray(Query.java:939)
>   at org.jpox.store.query.Query.execute(Query.java:862)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)
>   at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)
>   at 
> org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)
>   at 
> org.apache.jdo.tck.query.result.ResultClassRequirements.executeQuery(ResultClassRequirements.java:464)
>   at 
> org.apache.jdo.tck.query.result.ResultClassRequirements.testMap(ResultClassRequirements.java:424)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:324)
>   at junit.framework.TestCase.runTest(TestCase.java:154)
>   at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>   at junit.framework.TestResult$1.protect(TestResult.java:106)
>   at junit.framework.TestResult.runProtected(TestResult.java:124)
>   at junit.framework.TestResult.run(TestResult.java:109)
>   at junit.framework.TestCase.run(TestCase.java:118)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at junit.textui.TestRunner.doRun(TestRunner.java:116)
>   at junit.textui.TestRunner.doRun(TestRunner.java:109)
>   a

Re: svn commit: r360206 - /db/jdo/trunk/tck20/maven.xml

2006-01-01 Thread Craig L Russell
Hi Matthew,This is great. Debugging the TCK with a real debugger. Imagine!CraigOn Dec 30, 2005, at 4:24 PM, [EMAIL PROTECTED] wrote:Author: madamsDate: Fri Dec 30 16:24:19 2005New Revision: 360206URL: http://svn.apache.org/viewcvs?rev=360206&view=revLog:added debugability with goals "debugtck.jdori" and "debugtck.iut"Modified:    db/jdo/trunk/tck20/maven.xmlModified: db/jdo/trunk/tck20/maven.xmlURL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/maven.xml?rev=360206&r1=360205&r2=360206&view=diff==--- db/jdo/trunk/tck20/maven.xml (original)+++ db/jdo/trunk/tck20/maven.xml Fri Dec 30 16:24:19 2005@@ -33,23 +33,38 @@              Custom goals for this project are:           installSchema - installs the database schema+                   enhance.iut - enhances persistence capable classes with the implementation under test enhancer if enhancement is not up to date           enhance.jdori - enhances persistence capable classes with the JDO Reference Implementation enhancer if enhancement is not up to date+                   runtck.iut - runs the TCK on the implementation under test           runtck.jdori - runs the TCK on the JDO Reference Implementation         +          debugtck.jdori - waits for a debugger to attach and then runs the TCK on the JDO RI+          debugtck.iut - waits for a debugger to attach and then runs the TCK on the implementation under test+        +                 Options for this project are:           -Djdo.tck.cfglist=xxx - a list of configuration files (must be in test/conf)           -Djdo.tck.dblist=xxx - a list of databases           -Djdo.tck.identitytypes=xxx - a list of identity types (applicationidentity, datastoreidentity)           -Djdo.tck.cleanupaftertest=xxx - true/false. Setting it to false will retain data in database after test. This will allow inspection of data after test is run. Default is true+          -Djdo.tck.debug.port=# - the port number the JVM should listen for a debugger on (default 8787)+          -Djdo.tck.debug.jvmargs=xxx - the "-Xdebug ..." arguments in the event you want to supply your own debug directives                  Examples:           maven -Djdo.tck.identitytypes=datastoreidentity installSchema               Installs the database schema for datastore identity for all supported databases+                   maven -Djdo.tck.cfglist="alltests.conf cfg1.conf" runtck.jdori               Runs the test configurations specified in alltests.conf and cfg1.conf on the JDORI, using all supported identity types and databases.          +          maven -Djdo.tck.cfglist=detach.conf debugtck.jdori+              Runs the test detach.conf configuration, waiting for a debugger to attach on the default port+        +          maven -Djdo.tck.cfglist=detach.conf -Djdo.tck.debug.port=9343 debugtck.jdori+              Runs the test detach.conf configuration, waiting for a debugger to attach on port 9343+                 Note:           By default, the database schema is NOT installed when the custom goals runtck.iut and runtck.jdori are run.           maven build installs the database schema and runs the TCK on the JDO Reference Implementation.@@ -201,6 +216,25 @@          +    +        +        +            +            +                +            ++            +                value="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${jdo.tck.debug.port}"+            />+        ++        Using debug arguments:+        ${jdo.tck.debug.jvmargs}++        +    +                       @@ -238,6 +272,25 @@              +    +        +        +            +            +                +            ++            +                value="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${jdo.tck.debug.port}"+            />+        ++        Using debug arguments:+        ${jdo.tck.debug.jvmargs}++        +    +                       @@ -290,6 +343,13 @@             javax.jdo.option.Mapping=${jdo.tck.database}${jdo.tck.mapping}             javax.jdo.mapping.Schema=${schemaname}         +        ++        +        +            JVM will wait until debugger attaches on port ${jdo.tck.debug.port}...+        +                                classname="${jdo.tck.testrunnerclass}">             @@ -319,8 +379,11 @@                          value="${jdo.tck.cleanupaftertest}"/>                                                    value="${jdo.tck.requiredOptions}"/>+                                                   +            +                                       @@ -339,6 +402,12 @@             javax.jdo.option.Mapping=${jdo.tck.database}${jdo.tck.mapping}             javax.jdo.mapping.Schema=${schemaname}         +        +        +        +            JVM will wait until debugger attaches on port ${jdo.tck.debug.port}...+        +                                 value="org.apache.jdo.tck.util.BatchTe

Re: [jira] Resolved: (JDO-240) JPOX throws JDOQLQuery$Compiler$ExpressionSyntaxException when DISTINCT is specified inside an aggregate function.

2006-01-01 Thread Craig L Russell
Wohoo! You're really knocking down these bugs!Happy New Year,CraigOn Dec 31, 2005, at 10:14 AM, Andy Jefferson (JIRA) wrote:     [ http://issues.apache.org/jira/browse/JDO-240?page=all ]Andy Jefferson resolved JDO-240:    Resolution: Fixed     Assign To: Andy Jefferson  (was: Erik Bengtson)JPOX CVS now has support for COUNT(DISTINCT ...), AVG(DISTINCT ...), SUM(DISTINCT ...).  Builds dated 01/01/2006 or later will have it. Happy New Year.Another 3 TCK tests now pass. JPOX throws JDOQLQuery$Compiler$ExpressionSyntaxException when DISTINCT is specified inside an aggregate function.--         Key: JDO-240         URL: http://issues.apache.org/jira/browse/JDO-240     Project: JDO        Type: Bug  Components: tck20    Reporter: Michael Watzek    Assignee: Andy Jefferson  The test case AggregateResult fails throwing the exception below when DISTINCT is specified inside an aggregate function. The exception is thrown for COUNT, SUM, and AVG.14:22:43,625 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT AVG(DISTINCT manager.salary) FROM org.apache.jdo.tck.pc.company.FullTimeEmployee 14:22:43,625 (main) INFO  [org.apache.jdo.tck] - Exception during setUp or runtest: org.jpox.store.query.JDOQLQuery$Compiler$ExpressionSyntaxException: ')' expected at character 14 in "AVG(DISTINCT manager.salary)"	at org.jpox.store.query.JDOQLQuery$Compiler.compilePrimary(JDOQLQuery.java:1667)	at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpressionNotPlusMinus(JDOQLQuery.java:1598)	at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpression(JDOQLQuery.java:1579)	at org.jpox.store.query.JDOQLQuery$Compiler.compileMultiplicativeExpression(JDOQLQuery.java:1532)	at org.jpox.store.query.JDOQLQuery$Compiler.compileAdditiveExpression(JDOQLQuery.java:1509)	at org.jpox.store.query.JDOQLQuery$Compiler.compileRelationalExpression(JDOQLQuery.java:1469)	at org.jpox.store.query.JDOQLQuery$Compiler.compileEqualityExpression(JDOQLQuery.java:1446)	at org.jpox.store.query.JDOQLQuery$Compiler.compileAndExpression(JDOQLQuery.java:1434)	at org.jpox.store.query.JDOQLQuery$Compiler.compileExclusiveOrExpression(JDOQLQuery.java:1422)	at org.jpox.store.query.JDOQLQuery$Compiler.compileInclusiveOrExpression(JDOQLQuery.java:1410)	at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalAndExpression(JDOQLQuery.java:1398)	at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalOrExpression(JDOQLQuery.java:1380)	at org.jpox.store.query.JDOQLQuery$Compiler.compileExpression(JDOQLQuery.java:1357)	at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionFromString(JDOQLQuery.java:1287)	at org.jpox.store.query.JDOQLQuery$Compiler.compileExpressionsFromString(JDOQLQuery.java:1341)	at org.jpox.store.query.JDOQLQuery$Compiler.compileResult(JDOQLQuery.java:1044)	at org.jpox.store.query.JDOQLQuery$Compiler.performCompile(JDOQLQuery.java:917)	at org.jpox.store.query.JDOQLQuery$Compiler.executionCompile(JDOQLQuery.java:905)	at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:622)	at org.jpox.store.query.Query.executeWithMap(Query.java:966)	at org.jpox.store.query.Query.executeWithArray(Query.java:939)	at org.jpox.store.query.Query.execute(Query.java:862)	at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1151)	at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1029)	at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:966)	at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:946)	at org.apache.jdo.tck.query.result.AggregateResult.executeQuery(AggregateResult.java:627)	at org.apache.jdo.tck.query.result.AggregateResult.testAVG(AggregateResult.java:613)	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)	at java.lang.reflect.Method.invoke(Method.java:324)	at junit.framework.TestCase.runTest(TestCase.java:154)	at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)	at junit.framework.TestResult$1.protect(TestResult.java:106)	at junit.framework.TestResult.runProtected(TestResult.java:124)	at junit.framework.TestResult.run(TestResult.java:109)	at junit.framework.TestCase.run(TestCase.java:118)	at junit.framework.TestSuite.runTest(TestSuite.java:208)	at junit.framework.TestSuite.run(TestSuite.java:203)	at junit.framework.TestSuite.runTest(TestSuite.java:208)	at junit.framework.TestSuite.run(TestSuite.java:203)	at junit.textui.TestRunner.doRun(TestRunner.java:116)	at junit.textui.TestRunner.doRun(TestRunner.java:109)	at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)	at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95) -- This message is automatically generated by JIRA.-If you think it was sent incorrectly