Hello,

I have noticed that running the appended test case requires 
a small change in BaseContentImpl, the super class of Paper:
add the following accessors:

    public List getQualifiers()
    {
      return qualifiers;
    }

    public void setQualifiers(List qualifiers)
    {
      this.qualifiers = qualifiers;
    }

BTW: the field BaseContentImpl.qualifiers in currently unused.
Intended?

If someone could please verify that this is a bug, then I will
try to fix it.  It currently prevents us from
updating to current CVS head, and I do not want to 
change our application unless I have to.

Olli

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 17, 2003 8:38 AM
> To: [EMAIL PROTECTED]
> Subject: updating n-m relation with rc4
> 
> 
> Hello,
> 
> I have noiticed a change of behaviour from 
> rc3 to rc4 which I consider a bug.
> 
> I have wrote a junit test case that reveals the behaviour.  
> Recall that Paper has a collection of Qualifiers,
> which is mapped to an indirection table.
> The collection-descriptor (in repository_junit.xml)
> has auto-update="false".
> 
>   public void testStorePaper()
>   {
>     String now = new Date().toString();
>     Paper paper = new Paper();
>     paper.setAuthor("Jonny Myers");
>     paper.setDate(now);
>     Qualifier qual = new Topic();
>     qual.setName("qual " + now);
>     paper.setQualifiers(Arrays.asList(new Qualifier[] {qual}));
>     broker.beginTransaction();
>     broker.store(paper); // will appear in the database
>     broker.store(qual);  // will appear in the database
>     Identity paperId = new Identity(paper, broker);
>     broker.commitTransaction();
>       // now the indirection table CONTENT_QUALIFIER is still empty.
> 
>     broker.clearCache();
> 
>     broker.beginTransaction();
>     Paper retPaper = (Paper)broker.getObjectByIdentity(paperId);
>     System.out.println("retrieved: " + retPaper);
>     List qualifiers = retPaper.getQualifiers();  // should 
> contain the above
> qual.
>     System.out.println("ret qualifiers: " + qualifiers);
>     assertEquals(1, qualifiers.size());  // fails, qualifiers 
> is empty !
>     broker.commitTransaction();
>   }
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to