You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2009/10/16 20:42:55 UTC
svn commit: r826028 - in /cayenne/main/trunk: docs/doc/src/main/resources/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/
framework/cay...
Author: aadamchik
Date: Fri Oct 16 18:42:55 2009
New Revision: 826028
URL: http://svn.apache.org/viewvc?rev=826028&view=rev
Log:
CAY-1293 Beta 1 Test Failures
patch #2 by Olga Tkachova
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=826028&r1=826027&r2=826028&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Fri Oct 16 18:42:55 2009
@@ -58,6 +58,7 @@
CAY-1279 Passing null values in query parameters
CAY-1285 Update Cayenne Modeler's code generation panel to resize correctly.
CAY-1286 Update Cayenne Modeler's validation errors panel to resize correctly.
+CAY-1293 Beta 1 Test Failures
----------------------------------
Release: 3.0M6
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java?rev=826028&r1=826027&r2=826028&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java Fri Oct 16 18:42:55 2009
@@ -28,14 +28,13 @@
import org.apache.cayenne.exp.parser.ASTIn;
import org.apache.cayenne.exp.parser.ASTList;
import org.apache.cayenne.exp.parser.ASTNegate;
-import org.apache.cayenne.exp.parser.ASTNot;
import org.apache.cayenne.exp.parser.ASTNotIn;
import org.apache.cayenne.exp.parser.ASTPath;
import org.apache.commons.collections.Transformer;
/**
- * Oracle qualifier translator. In particular, trims INs with more than 1000 elements
- * to an OR-set of INs with <= 1000 elements
+ * Oracle qualifier translator. In particular, trims INs with more than 1000 elements to
+ * an OR-set of INs with <= 1000 elements
*/
public class OracleQualifierTranslator extends TrimmingQualifierTranslator {
@@ -48,43 +47,33 @@
if (rootNode == null) {
return;
}
-
- boolean isNot = false;
- if (rootNode instanceof ASTNot) {
- if (rootNode.getOperandCount() == 1) {
- rootNode = ((Expression) rootNode.getOperand(0));
- isNot = true;
- }
- }
-
rootNode = rootNode.transform(new INTrimmer());
-
- if (isNot) {
- rootNode = rootNode.notExp();
- }
-
rootNode.traverse(this);
}
-
+
public static class INTrimmer implements Transformer {
+
public Expression trimmedInExpression(Expression exp, int maxInSize) {
Expression list = (Expression) exp.getOperand(1);
Object[] objects = (Object[]) list.evaluate(null);
-
+
if (objects.length <= maxInSize) {
return exp;
}
-
- Expression trimmed = trimmedInExpression((ASTPath) exp.getOperand(0), objects, maxInSize);
+
+ Expression trimmed = trimmedInExpression(
+ (ASTPath) exp.getOperand(0),
+ objects,
+ maxInSize);
if (exp instanceof ASTNotIn) {
return new ASTNegate(trimmed);
}
return trimmed;
}
-
+
Expression trimmedInExpression(ASTPath path, Object[] values, int maxInSize) {
Expression res = null;
-
+
List<Object> in = new ArrayList<Object>(maxInSize);
for (Object v : values) {
in.add(v);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java?rev=826028&r1=826027&r2=826028&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java Fri Oct 16 18:42:55 2009
@@ -53,7 +53,12 @@
// no children or a single child
switch (condition.getOperandCount()) {
case 1 :
- return condition.getOperand(0);
+ if (condition instanceof ASTNot) {
+ return condition;
+ }
+ else {
+ return condition.getOperand(0);
+ }
case 0 :
return PRUNED_NODE;
default :
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java?rev=826028&r1=826027&r2=826028&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java Fri Oct 16 18:42:55 2009
@@ -21,7 +21,6 @@
import java.sql.Connection;
import java.sql.Statement;
-import java.util.Map;
import junit.framework.TestCase;
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java?rev=826028&r1=826027&r2=826028&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java Fri Oct 16 18:42:55 2009
@@ -26,6 +26,7 @@
import org.apache.art.Artist;
import org.apache.cayenne.access.MockOperationObserver;
+import org.apache.cayenne.query.CapsStrategy;
import org.apache.cayenne.query.SQLTemplate;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.unit.CayenneCase;
@@ -58,7 +59,7 @@
Map<String, Object> selectResult = selectForQuery(sql);
assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME"));
+ assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME").toString().trim());
}
public void testWithMixedDirectiveUse1() throws Exception {
@@ -69,7 +70,7 @@
Map<String, Object> selectResult = selectForQuery(sql);
assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME"));
+ assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME").toString().trim());
}
public void testWithMixedDirectiveUse2() throws Exception {
@@ -85,6 +86,7 @@
private Map<String, Object> selectForQuery(String sql) {
SQLTemplate template = new SQLTemplate(Artist.class, sql);
+ template.setColumnNamesCapitalization(CapsStrategy.UPPER);
MockOperationObserver observer = new MockOperationObserver();
getDomain().performQueries(Collections.singletonList(template), observer);