Cool, thanks for the details.

-Patrick

On Apr 9, 2008, at 10:48 AM, Albert Lee wrote:
Patrick,

The patch should not change the current behavior in your example.

   private void parseNamedQueries(AnnotatedElement el, NamedQuery...
queries) {
           ..........
           meta = getRepository().getCachedQueryMetaData(null,
query.name());
           if (meta != null) {
               if (_log.isWarnEnabled())
                   _log.warn(_loc.get("dup-query", query.name(), el));
//                return;
               continue;
           }
   }

If query.name() is found in the repository cache, the "before patch"
behavior is posting a "ignore" warning message and stop parsing the
remaining @NamedQuery in the queries input parameter. Basically it is an no-op. The "after patch" behavior remains the same for @NamedQuery, since there is only one entry in the queries list. The only change in behavior is
for @NamedQueries. If a duplicate NameQuery is found, it used to stop
parsing the remaining @NamedQuery. After the patch, it will ignore the
duplicated entry and continue to parse the remaining entries in the queries
input list.

I am already working on a test case to cover this change.

Albert Lee.

On Wed, Apr 9, 2008 at 10:21 AM, Patrick Linskey <[EMAIL PROTECTED]> wrote:

Hi,

What is the impact of this change for the following pair of classes:

@Entity @NamedQuery(name="findAll", query="select item from LineItem
item")
  public class LineItem { ... }

  @Entity @NamedQuery(name="findAll", query="select p from Person p")
  public class Person { ... }

The system should fail to parse that pair of classes. Do we have a test case that asserts that that's the case? Also, why are we doubly- parsing
these named queries?

In other words, does this change just mask some larger problem?

-Patrick


On Apr 9, 2008, at 9:31 AM, [EMAIL PROTECTED] wrote:

Author: allee8285
Date: Wed Apr  9 07:31:30 2008
New Revision: 646377

URL: http://svn.apache.org/viewvc?rev=646377&view=rev
Log:
OPENJPA-565 - Ignore duplicate NamedQuery definition and continue to
parse the remaining entries in NamedQueries definition.

Modified:

openjpa/branches/1.0.x/openjpa-persistence/src/main/java/org/ apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java

Modified:
openjpa/branches/1.0.x/openjpa-persistence/src/main/java/org/ apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL:
http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=646377&r1=646376&r2=646377&view=diff

= = = = = = = = = = ====================================================================
---
openjpa/branches/1.0.x/openjpa-persistence/src/main/java/org/ apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
(original)
+++
openjpa/branches/1.0.x/openjpa-persistence/src/main/java/org/ apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
Wed Apr  9 07:31:30 2008
@@ -1567,7 +1567,7 @@
          if (meta != null) {
              if (_log.isWarnEnabled())
_log.warn(_loc.get("dup-query", query.name(), el));
-                return;
+                continue;
          }

meta = getRepository().addQueryMetaData(null, query.name());
@@ -1608,7 +1608,7 @@
          if (meta != null) {
              if (_log.isWarnEnabled())
_log.warn(_loc.get("dup-query", query.name(), el));
-                return;
+                continue;
          }

meta = getRepository().addQueryMetaData(null, query.name());



--
Patrick Linskey
202 669 5907







--
Albert Lee.

--
Patrick Linskey
202 669 5907




Reply via email to