Re: JDOQL super keyword
Craig, In JDOQL BNF, it's not a valid field accessor. The same for ClassName.super Current --- FieldAccess: FieldName Primary . FieldName Regards, Erik Bengtson Quoting Craig L Russell <[EMAIL PROTECTED]>: > Hi Erik, > > It is not in the spec because it's already a Java keyword. Please see > 14.4: > > Keywords > Keywords must not be used as package names, class names, parameter > names, or variable names in queries. Keywords are permitted as field > names only if they are on the right side of the . in field access > expressions as defined in the Java Language Specification second > edition, section 15.11. Keywords include the Java language keywords > and the JDOQL keywords. Java keywords are as defined in the Java > language specification section 3.9, plus the boolean literals true > and false, and the null literal. JDOQL keywords maybe written in all > lower case or all upper case. > > What specifically are you interested in knowing? > > Regards, > > Craig > > On Jan 7, 2006, at 3:57 PM, [EMAIL PROTECTED] wrote: > > > Hi, > > > > Is it intentionally not in the spec? > > > > Regards, > > > > Erik Bengtson > > 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! > >
[jira] Assigned: (JDO-249) JPOX throws JDOFatalInternalException for queries using "new MyClass(...)" in result clauses
[ http://issues.apache.org/jira/browse/JDO-249?page=all ] Andy Jefferson reassigned JDO-249: -- Assign To: Andy Jefferson (was: Erik Bengtson) > JPOX throws JDOFatalInternalException for queries using "new MyClass(...)" in > result clauses > > > Key: JDO-249 > URL: http://issues.apache.org/jira/browse/JDO-249 > Project: JDO > Type: Bug > Components: tck20 > Reporter: Michael Watzek > Assignee: Andy Jefferson > > Test case ResultClassRequirements fails for the query below. The query has a > constructor call in the result clause. > 14:23:07,781 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT > new LongString(personid, lastname) FROM > org.apache.jdo.tck.pc.company.FullTimeEmployee IMPORTS import > org.apache.jdo.tck.query.result.classes.LongString; > 14:23:07,781 (main) INFO [org.apache.jdo.tck] - Exception during setUp or > runtest: > javax.jdo.JDOFatalInternalException: The expression NewObjectExpression "" 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.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.testConstructor(ResultClassRequirements.java:436) > 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-249) JPOX throws JDOFatalInternalException for queries using "new MyClass(...)" in result clauses
[ http://issues.apache.org/jira/browse/JDO-249?page=all ] Andy Jefferson resolved JDO-249: Resolution: Fixed Gone to meet its maker. Fixed in JPOX CVS - builds dated 09/01/2006 or later should have this. > JPOX throws JDOFatalInternalException for queries using "new MyClass(...)" in > result clauses > > > Key: JDO-249 > URL: http://issues.apache.org/jira/browse/JDO-249 > Project: JDO > Type: Bug > Components: tck20 > Reporter: Michael Watzek > Assignee: Andy Jefferson > > Test case ResultClassRequirements fails for the query below. The query has a > constructor call in the result clause. > 14:23:07,781 (main) DEBUG [org.apache.jdo.tck] - Executing API query: SELECT > new LongString(personid, lastname) FROM > org.apache.jdo.tck.pc.company.FullTimeEmployee IMPORTS import > org.apache.jdo.tck.query.result.classes.LongString; > 14:23:07,781 (main) INFO [org.apache.jdo.tck] - Exception during setUp or > runtest: > javax.jdo.JDOFatalInternalException: The expression NewObjectExpression "" 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.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.testConstructor(ResultClassRequirements.java:436) > 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
Re: JDOQL super keyword
Hi Erik, do you think we need to support super in JDOQL? You only need it if the cancdidate class hides a supeclass field and if S is the superclass you can write 'super.field' as '((S)this).field'. Regards Michael Craig, In JDOQL BNF, it's not a valid field accessor. The same for ClassName.super Current --- FieldAccess: FieldName Primary . FieldName Regards, Erik Bengtson Quoting Craig L Russell <[EMAIL PROTECTED]>: Hi Erik, It is not in the spec because it's already a Java keyword. Please see 14.4: Keywords Keywords must not be used as package names, class names, parameter names, or variable names in queries. Keywords are permitted as field names only if they are on the right side of the “.” in field access expressions as defined in the Java Language Specification second edition, section 15.11. Keywords include the Java language keywords and the JDOQL keywords. Java keywords are as defined in the Java language specification section 3.9, plus the boolean literals true and false, and the null literal. JDOQL keywords maybe written in all lower case or all upper case. What specifically are you interested in knowing? Regards, Craig On Jan 7, 2006, at 3:57 PM, [EMAIL PROTECTED] wrote: Hi, Is it intentionally not in the spec? Regards, Erik Bengtson 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! -- 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
Issue 153: JDOQL super keyword
Javadogs,I've recorded this as Issue 153. I propose to defer this to a future release.Currently super is not a JDOQL keyword, so there is no way to exactly duplicate the semantics of Java super. In Java, super is used to access a field (or method, but methods are not relevant for JDOQL) that is hidden by a subclass field of the same name. The main use of this in JDOQL would be to access a hidden field where the declaring class is not known. If the declaring class is known, then the field can be accessed by casting “this” to the declaring class in a field navigation _expression_, e.g. ((MySuperclass)this).hiddenFieldCraigOn Jan 8, 2006, at 1:15 PM, Michael Bouschen wrote:Hi Erik,do you think we need to support super in JDOQL? You only need it if the cancdidate class hides a supeclass field and if S is the superclass you can write 'super.field' as '((S)this).field'.Regards Michael Craig,In JDOQL BNF, it's not a valid field accessor. The same for ClassName.superCurrent---FieldAccess:FieldNamePrimary . FieldNameRegards,Erik BengtsonQuoting Craig L Russell <[EMAIL PROTECTED]>: Hi Erik,It is not in the spec because it's already a Java keyword. Please see14.4:KeywordsKeywords must not be used as package names, class names, parameternames, or variable names in queries. Keywords are permitted as fieldnames only if they are on the right side of the “.” in field accessexpressions as defined in the Java Language Specification secondedition, section 15.11. Keywords include the Java language keywordsand the JDOQL keywords. Java keywords are as defined in the Javalanguage specification section 3.9, plus the boolean literals trueand false, and the null literal. JDOQL keywords maybe written in alllower case or all upper case.What specifically are you interested in knowing?Regards,CraigOn Jan 7, 2006, at 3:57 PM, [EMAIL PROTECTED] wrote: Hi,Is it intentionally not in the spec?Regards,Erik Bengtson Craig RussellArchitect, Sun Java Enterprise System http://java.sun.com/products/jdo408 276-5638 mailto:[EMAIL PROTECTED]P.S. A good JDO? O, Gasp! -- Michael Bouschen [EMAIL PROTECTED] Engineering GmbHmailto:[EMAIL PROTECTED] http://www.tech.spree.de/Tel.:++49/30/235 520-33 Buelowstr. 66 Fax.:++49/30/2175 2012 D-10783 Berlin 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] Commented: (JDO-263) TestArrayCollections: Field ArrayOfBigDecimal12 is stored incorrectly
[ http://issues.apache.org/jira/browse/JDO-263?page=comments#action_12362141 ] Craig Russell commented on JDO-263: --- It didn't appear that we were getting much traction on this issue so Michelle and I played JPOX developer for a day. Nice to hear our investigation was appreciated. I think that for field types of byte[ ] it makes most sense to send it "as is" to the datastore. For all the other types it is probably best to use Java serialization instead of a proprietary serialization. This is most portable across JDO implementations (most won't use exactly the JPOX algorithm for serializing). But I also agree that some users might want the more efficient JPOX serialization algorithm compared to Java serialization. So your feature request for JPOX still makes sense to me. And I agree with your solution "to use the serialisation method when the field is marked as serialised, and byte streams otherwise". > TestArrayCollections: Field ArrayOfBigDecimal12 is stored incorrectly > - > > Key: JDO-263 > URL: http://issues.apache.org/jira/browse/JDO-263 > Project: JDO > Type: Bug > Components: tck20 > Reporter: Michelle Caisse > Assignee: Andy Jefferson > Attachments: jdo-263.patch > > test(org.apache.jdo.tck.models.fieldtypes.TestArrayCollections)javax.jdo.JDOUserException: > Field "org.apache.jdo.tck.pc.fieldtypes.ArrayCollections.ArrayOfObject1" is > declared as a reference type (interface/Object) but no implementation classes > of "java.lang.Object" have been found! > at > org.jpox.metadata.MetaDataUtils.getImplementationNamesForReferenceField(MetaDataUtils.java:594) > at > org.jpox.store.rdbms.table.ColumnCreator.createColumnsForReferenceField(ColumnCreator.java:184) > at > org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:296) > at > org.jpox.store.rdbms.table.ColumnCreator.createColumns(ColumnCreator.java:95) > at org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:83) > at > org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2404) > at > org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2033) > at > org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:1893) > at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:479) > at org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:493) > at > org.jpox.store.rdbms.RDBMSManager.getDatastoreClass(RDBMSManager.java:766) > at > org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:781) > at org.jpox.state.StateManagerImpl.(StateManagerImpl.java:584) > at > org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1076) > at > org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1131) > at > org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:93) > at > org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:69) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204) > 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