Axel,

it's your decision after all. It's a shame 'cause 1:M relations are working
with Castor JDO and have been doing so for quite some yrs. Unless of course
users get things wrong .. ;-).

Werner
> 
> Werner,
> 
> Since I have to get things up and running pretty soon I decided to use
> Apache OJB as O/R mapping tool but continue to use Castor XML for XML
> binding.
>  From a previous project I knew that 1:n relations in OJB are working
> without problems the way I wouold expect them to work.
> Thanks again for the help you offered!
> 
> Axel
> 
> Werner Guttmann wrote:
> 
> >Axel,
> >
> >just looking at your problem right now, but it seems I still need some
> classes to get this to compiel and run correctly. Here's a list of classes
I
> seem to be 
> >missing:
> >
> >com.ibm.rfid.testcontroller.ValueRange
> >com.ibm.rfid.testcontroller.PersistenceException;
> >com.ibm.rfid.testcontroller.PersistenceUtil;
> >com.ibm.rfid.testcontroller.UrlObjectTreeProvider;
> >com.ibm.rfid.testcontroller.TestcaseException
> >com.ibm.rfid.testcontroller.TestRun
> >
> >Thanks for your help. Feel free to send these files to me privately ...
> >Werner
> >
> >On Sun, 08 Aug 2004 20:44:03 +0200, Werner Guttmann wrote:
> >
> >  
> >
> >>Thanks, Axel. I'll let you know about any progress I make ...
> >>
> >>Werner
> >>
> >>On Sun, 08 Aug 2004 08:25:28 +0200, Axel Mueller wrote:
> >>
> >>    
> >>
> >>>Werner,
> >>>
> >>>Werner Guttmann wrote:
> >>>
> >>>      
> >>>
> >>>>Axel,
> >>>>
> >>>>On Sat, 07 Aug 2004 09:18:47 +0200, Axel Mueller wrote:
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>Werner,
> >>>>>
> >>>>>Thanks for your reply! From your post I conclude that there is no 
> >>>>>obvious mistake I made.
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>Well, actually, this is not the case. Whilst I have not spotted any
> mistakes so far, it could equally be that there is ... hence my desire to
> 'replay' your 
> >>>>scenario. Speaking of which, could be you please post your Java
> classes as well ?
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>So there is still hope the Castor rocks but the user doesn't ;-)
> >>>Below are the classes (straight forward I would think). You can run the
> >>>Junit test class TestcaseFactoryTest in order to replay the test.
> >>>
>
>>>----------------------------------------------------------------------------------------------
> >>>package com.ibm.rfid.testcontroller;
> >>>
> >>>import org.apache.commons.logging.Log;
> >>>import org.apache.commons.logging.LogFactory;
> >>>import org.exolab.castor.jdo.Database;
> >>>
> >>>/**
> >>>* @author Axel Mueller
> >>>*/
> >>>public abstract class PersistentObjectFactory {
> >>>
> >>>   private static Log logger = 
> >>>LogFactory.getLog(PersistentObjectFactory.class);
> >>>
> >>>   protected ClassLoader classLoader = null;
> >>>
> >>>   protected Database db = null;
> >>>
> >>>   protected boolean useExternalTransaction = false;
> >>>
> >>>
> >>>   public PersistentObjectFactory(ClassLoader classLoader) {
> >>>       this.classLoader = classLoader;
> >>>   }
> >>>
> >>>   public void setDatabase(Database db) {
> >>>       this.db = db;
> >>>       useExternalTransaction = true;
> >>>       logger.debug("Using external transaction.");
> >>>   }
> >>>
> >>>}
> >>>
>
>>>----------------------------------------------------------------------------------------------
> >>>
> >>>package com.ibm.rfid.testcontroller.testcase;
> >>>
> >>>import java.util.Iterator;
> >>>import java.util.Vector;
> >>>
> >>>import org.apache.commons.logging.Log;
> >>>import org.apache.commons.logging.LogFactory;
> >>>import org.exolab.castor.jdo.OQLQuery;
> >>>import org.exolab.castor.jdo.QueryResults;
> >>>
> >>>import com.ibm.rfid.testcontroller.PersistenceException;
> >>>import com.ibm.rfid.testcontroller.PersistenceUtil;
> >>>import com.ibm.rfid.testcontroller.PersistentObjectFactory;
> >>>import com.ibm.rfid.testcontroller.UrlObjectTreeProvider;
> >>>
> >>>/**
> >>>* @author Axel Mueller
> >>>*/
> >>>public class TestcaseFactory extends PersistentObjectFactory {
> >>>
> >>> private static Log logger = LogFactory.getLog(TestcaseFactory.class);
> >>>
> >>> public TestcaseFactory(ClassLoader classLoader) {
> >>>   super(classLoader);
> >>> }
> >>>
> >>> public Testcase getTestcase(String urlString) throws TestcaseException
> {
> >>>   return this.getTestcaseFromUrl(urlString);
> >>> }
> >>>
> >>>   public Testcase getTestcaseFromDatabase(String urlString) throws 
> >>>TestcaseException {
> >>>       Testcase testcase = null;
> >>>       try {
> >>>           if (!useExternalTransaction) {
> >>>               db = 
> >>>PersistenceUtil.getDatabase(this.getClass().getClassLoader());
> >>>               db.begin();
> >>>           }
> >>>           OQLQuery oql = db.getOQLQuery("SELECT tc FROM 
> >>>com.ibm.rfid.testcontroller.testcase.Testcase tc WHERE source = $1");
> >>>           oql.bind(urlString);
> >>>           QueryResults results = oql.execute();
> >>>           logger.debug("Number of testcases: " + results.size());
> >>>           while(results.hasMore()) {
> >>>                testcase = (Testcase) results.next();
> >>>                logger.debug("Number of testcase variables: " + 
> >>>testcase.getTestcaseVariables().size());
> >>>                Vector variables = testcase.getTestcaseVariables();
> >>>                for (Iterator iter = variables.iterator(); 
> >>>iter.hasNext(); ) {
> >>>                       TestcaseVariable variable = (TestcaseVariable) 
> >>>iter.next();
> >>>                       logger.debug (variable);
> >>>                }
> >>>           }
> >>>           results.close();
> >>>           if (!useExternalTransaction) {
> >>>               db.commit();
> >>>           }
> >>>       }
> >>>       catch (Throwable t) {
> >>>           throw new TestcaseException(t);
> >>>       }
> >>>       finally {
> >>>           if (!useExternalTransaction) {
> >>>               try {
> >>>                   db.close();
> >>>               }
> >>>               catch (org.exolab.castor.jdo.PersistenceException e) {
> >>>                   logger.error("Error closing database: ", e);
> >>>               }
> >>>           }
> >>>       }
> >>>       return testcase;
> >>>   }
> >>>
>
>>>----------------------------------------------------------------------------------------------
> >>>
> >>>package com.ibm.rfid.testcontroller.testcase;
> >>>
> >>>import junit.framework.Assert;
> >>>import junit.framework.TestCase;
> >>>
> >>>/**
> >>>* @author Axel Mueller
> >>>*/
> >>>public class TestcaseFactoryTest extends TestCase {
> >>>
> >>> /**
> >>>  * Constructor for TestcaseTest.
> >>>  * @param arg0
> >>>  */
> >>> public TestcaseFactoryTest(String arg0) {
> >>>   super(arg0);
> >>> }
> >>>
> >>>   public void testAll() throws Exception {
> >>>       String url = "file:///c:/Program 
>
>>>Files/DeviceDeveloper5.6/workspace/SOMT_TestController/definitions/palettentest.xml";
> >>>       TestcaseFactory factory = new 
> >>>TestcaseFactory(this.getClass().getClassLoader());
> >>>//        Testcase testcase = factory.getTestcaseFromUrl(url);
> >>>//        Assert.assertNotNull(testcase);
> >>>//
> >>>//        factory.writeTestcaseToDatabase(testcase);
> >>>      
> >>>       Testcase testcase = factory.getTestcaseFromDatabase(url);
> >>>       Assert.assertNotNull(testcase);
> >>>       Assert.assertEquals(2, testcase.getTestcaseVariables().size());
> >>>   }
> >>>}
> >>>
>
>>>----------------------------------------------------------------------------------------------
> >>>
> >>>package com.ibm.rfid.testcontroller.testcase;
> >>>
> >>>import java.util.Iterator;
> >>>import java.util.Vector;
> >>>
> >>>import org.apache.commons.logging.Log;
> >>>import org.apache.commons.logging.LogFactory;
> >>>import org.exolab.castor.jdo.TimeStampable;
> >>>
> >>>import com.ibm.rfid.testcontroller.PersistenceException;
> >>>import com.ibm.rfid.testcontroller.TestRun;
> >>>
> >>>/**
> >>>* @author Axel Mueller
> >>>*/
> >>>public class Testcase implements TimeStampable {
> >>>
> >>> private static Log logger = LogFactory.getLog(Testcase.class);
> >>>
> >>> private Integer id;
> >>> private String source;
> >>>   private String description;
> >>> private long timeStamp;
> >>>
> >>> //
> >>> // Begin Castor managed relations
> >>> //
> >>>
> >>> private Vector testcaseVariables;
> >>> private Vector testRuns;
> >>>
> >>> /**
> >>>  * @return
> >>>  */
> >>> public Vector getTestcaseVariables() {
> >>>   return this.testcaseVariables;
> >>> }
> >>>
> >>> /**
> >>>  * @param vector
> >>>  */
> >>> public void setTestcaseVariables(Vector testcaseVariables) {
> >>>   this.testcaseVariables = testcaseVariables;
> >>>   if (testcaseVariables != null) {
> >>>     Iterator itTestcaseVariables = this.testcaseVariables.iterator();
> >>>     while (itTestcaseVariables.hasNext()) {
> >>>       TestcaseVariable testcaseVariable = (TestcaseVariable) 
> >>>itTestcaseVariables.next();
> >>>       testcaseVariable.setTestcase(this);
> >>>     }
> >>>   }
> >>> }
> >>>
> >>> public Vector getTestRuns() {
> >>>   return this.testRuns;
> >>> }
> >>>
> >>> /**
> >>>  * @param vector
> >>>  */
> >>> public void setTestRuns(Vector testRuns) {
> >>>   this.testRuns = testRuns;
> >>>   Iterator itTestRuns = this.testRuns.iterator();
> >>>   while (itTestRuns.hasNext()) {
> >>>     TestRun testRun = (TestRun) itTestRuns.next();
> >>>     testRun.setTestcase(this);
> >>>   }
> >>> }
> >>>
> >>> public TestRun createTestRun() throws PersistenceException {
> >>>   TestRun testRun = new TestRun();
> >>>   testRun.setTestcase(this);
> >>>   if (this.testRuns == null) {
> >>>     this.testRuns = new Vector();
> >>>   }
> >>>   this.testRuns.add(testRun);
> >>>   return testRun;
> >>> }
> >>>
> >>> //
> >>> // End Castor managed relations
> >>> //
> >>>
> >>> /**
> >>>  * @return
> >>>  */
> >>> public Integer getId() {
> >>>   return this.id;
> >>> }
> >>>
> >>> /**
> >>>  * @param i
> >>>  */
> >>> public void setId(Integer id) {
> >>>   this.id = id;
> >>> }
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public String getSource() {
> >>>       return source;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param string
> >>>    */
> >>>   public void setSource(String string) {
> >>>       source = string;
> >>>   }
> >>>
> >>> /**
> >>>  * @return
> >>>  */
> >>> public String getDescription() {
> >>>   return description;
> >>> }
> >>>
> >>> /**
> >>>  * @param string
> >>>  */
> >>> public void setDescription(String string) {
> >>>   description = string;
> >>> }
> >>>
> >>> /* (non-Javadoc)
> >>>  * @see org.exolab.castor.jdo.TimeStampable#jdoSetTimeStamp(long)
> >>>  */
> >>> public void jdoSetTimeStamp(long timeStamp) {
> >>>   this.timeStamp = timeStamp;
> >>> }
> >>>
> >>> /* (non-Javadoc)
> >>>  * @see org.exolab.castor.jdo.TimeStampable#jdoGetTimeStamp()
> >>>  */
> >>> public long jdoGetTimeStamp() {
> >>>   return this.timeStamp;
> >>> }
> >>>
> >>>   public String toString() {
> >>>       return " [ID] " + id + " [SOURCE] " + source + " [DESCRIPTION] "
> >>>+ description;
> >>>   }
> >>>
> >>>}
> >>>
>
>>>----------------------------------------------------------------------------------------------
> >>>
> >>>package com.ibm.rfid.testcontroller.testcase;
> >>>
> >>>import org.exolab.castor.jdo.TimeStampable;
> >>>
> >>>
> >>>/**
> >>>* @author Axel Mueller
> >>>*/
> >>>public class TestcaseVariable implements TimeStampable {
> >>>
> >>>   private Integer id;
> >>>   private int testcaseId;
> >>>   private String label;
> >>>   private String description;
> >>>   private long timeStamp;
> >>>
> >>>  
> >>>
> >>>   //
> >>>   // Begin Castor managed relations
> >>>   //
> >>> private Testcase testcase;
> >>>   private ValueRange valueRange;
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public Testcase getTestcase() {
> >>>       return testcase;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param testcase
> >>>    */
> >>>   public void setTestcase(Testcase testcase) {
> >>>       this.testcase = testcase;
> >>>   }
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public ValueRange getValueRange() {
> >>>       return this.valueRange;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param vector
> >>>    */
> >>>   public void setValueRange(ValueRange valueRange) {
> >>>       this.valueRange = valueRange;
> >>>       valueRange.setTestcaseVariable(this);
> >>>   }
> >>>
> >>>   //
> >>>   // End Castor managed relations
> >>>   //
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public int getId() {
> >>>       return this.id.intValue();
> >>>   }
> >>>
> >>>   /**
> >>>    * @param i
> >>>    */
> >>>   public void setId(int id) {
> >>>       this.id = new Integer(id);
> >>>   }
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public int getTestcaseId() {
> >>>       return testcaseId;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param i
> >>>    */
> >>>   public void setTestcaseId(int testcaseId) {
> >>>       this.testcaseId = testcaseId;
> >>>   }
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public String getLabel() {
> >>>       return this.label;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param string
> >>>    */
> >>>   public void setLabel(String label) {
> >>>       this.label = label;
> >>>   }
> >>>
> >>>   /**
> >>>    * @return
> >>>    */
> >>>   public String getDescription() {
> >>>       return this.description;
> >>>   }
> >>>
> >>>   /**
> >>>    * @param string
> >>>    */
> >>>   public void setDescription(String description) {
> >>>       this.description = description;
> >>>   }
> >>>
> >>>   public String toString() {
> >>>           return
> >>>                   " [ID] "
> >>>               + id
> >>>               + " [LABEL]"
> >>>               + label
> >>>               + " [DESCRIPTION] "
> >>>               + description;
> >>>       }
> >>>
> >>>   /* (non-Javadoc)
> >>>    * @see org.exolab.castor.jdo.TimeStampable#jdoSetTimeStamp(long)
> >>>    */
> >>>   public void jdoSetTimeStamp(long timeStamp) {
> >>>       this.timeStamp = timeStamp;
> >>>   }
> >>>
> >>>   /* (non-Javadoc)
> >>>    * @see org.exolab.castor.jdo.TimeStampable#jdoGetTimeStamp()
> >>>    */
> >>>   public long jdoGetTimeStamp() {
> >>>       return this.timeStamp;
> >>>   }
> >>>}
> >>>
> >>>I would be happy if you could provide some hint to solve this problem
> :-)
> >>>
> >>>Axel
> >>>
> >>>
> >>>
> >>>      
> >>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>Isn't this 1:n relation thing a very basic feature for any O/R
> mapping 
> >>>>>tool? 
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>Yes, it is, and it might as well turn out that the mistake is with
> 'you' ... configuration-wise or something else.
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>The only O/R tools I used myself are JBoss EJB 2.0 CMR and Object 
> >>>>>Relation Bridge.
> >>>>>However, I consider Castor a mature tool in this area ...
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>So would I, to be honest, despite some minor deficiencies.
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>and would expect 
> >>>>>problems rather on the user side than on the tool side. I choose
> Castor 
> >>>>>for this project since I need XML binding as well as O/R mapping.
> >>>>>
> >>>>>The statements needed to replay the case:
> >>>>>
> >>>>>CREATE TABLE `testcase` (
> >>>>>`id` int(10) unsigned NOT NULL default '0',
> >>>>>`source` varchar(255) default NULL,
> >>>>>`description` varchar(255) default NULL,
> >>>>>PRIMARY KEY  (`id`)
> >>>>>) TYPE=MyISAM;
> >>>>>
> >>>>>#
> >>>>># Dumping data for table `testcase`
> >>>>>#
> >>>>>
> >>>>>INSERT INTO `testcase` VALUES (1, 'file:///c:/Program 
> >>>>>          
> >>>>>
>
>Files/DeviceDeveloper5.6/workspace/SOMT_TestController/definitions/palettentest.xml',
> >  
> >
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>'Einfluss der Geschwindigkeit des Palettendurchgangs');
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>CREATE TABLE `testcase_variable` (
> >>>>>`id` int(10) unsigned NOT NULL default '0',
> >>>>>`testcase_id` int(10) unsigned NOT NULL default '0',
> >>>>>`label` varchar(20) default NULL,
> >>>>>`description` varchar(255) default NULL,
> >>>>>PRIMARY KEY  (`id`),
> >>>>>KEY `testcase_variable_FKIndex1` (`testcase_id`)
> >>>>>) TYPE=MyISAM;
> >>>>>
> >>>>>#
> >>>>># Dumping data for table `testcase_variable`
> >>>>>#
> >>>>>
> >>>>>INSERT INTO `testcase_variable` VALUES (1, 1, 'Geschwindigkeit',
> 'Palettengeschwindigkeit');
> >>>>>INSERT INTO `testcase_variable` VALUES (2, 1, 'Versuch', 'Versuch');
> >>>>>  
> >>>>>
> >>>>>
> >>>>>About iteration:  I forgot to mention it in my original post but I
> was 
> >>>>>surprised to see that results.size() is 2 but only ONE iteration is 
> >>>>>performed using a similar code snipped like below.
> >>>>>After digging around I turned caching off yesterday already (prior my
> >>>>>post) but the behaviour was still the same.
> >>>>>Anyway - below is the snippet's output you asked for:
> >>>>>
> >>>>>
> >>>>>2004-08-07 09:01:55,366 DEBUG [main] engine.KeyGeneratorRegistry 
> >>>>>(KeyGeneratorRegistry.java:114) - Key generator MAX has been 
> >>>>>instantiated, parameters: {}
> >>>>>2004-08-07 09:01:55,496 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1221) - Creating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase using SQL: INSERT INTO 
> >>>>>testcase (id,source,description) VALUES (?,?,?)
> >>>>>2004-08-07 09:01:55,496 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1229) - Removing class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase using SQL: DELETE FROM 
> >>>>>testcase WHERE id=?
> >>>>>2004-08-07 09:01:55,496 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1262) - Updating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase using SQL: UPDATE
> testcase 
> >>>>>SET source=?,description=? WHERE id=? AND source=? AND description=?
> >>>>>2004-08-07 09:01:55,506 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1336) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase using SQL: SELECT 
> >>>>>testcase_variable.id,testcase.source,testcase.description FROM
> testcase 
> >>>>>LEFT OUTER JOIN testcase_variable ON 
> >>>>>testcase.id=testcase_variable.testcase_id WHERE testcase.id=?
> >>>>>2004-08-07 09:01:55,576 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1221) - Creating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> INSERT 
> >>>>>INTO testcase_variable (id,testcase_id,label,description) VALUES
> (?,?,?,?)
> >>>>>2004-08-07 09:01:55,576 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1229) - Removing class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> DELETE 
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>FROM testcase_variable WHERE id=?
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>2004-08-07 09:01:55,576 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1262) - Updating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> UPDATE 
> >>>>>testcase_variable SET testcase_id=?,label=?,description=? WHERE id=?
> AND 
> >>>>>testcase_id=? AND label=? AND description=?
> >>>>>2004-08-07 09:01:55,576 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1336) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> SELECT 
>
>>>>>testcase_variable.testcase_id,variable_value_range.id,testcase_variable.label,testcase_variable.description
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>FROM testcase_variable LEFT OUTER JOIN variable_value_range ON 
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>testcase_variable.id=variable_value_range.id WHERE
> testcase_variable.id=?
> >>>>>2004-08-07 09:01:55,576 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1221) - Creating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: INSERT
> INTO 
> >>>>>variable_value_range 
> >>>>>(id,testcase_variable_id,minValue,maxValue,increment,unit) VALUES 
> >>>>>(?,?,?,?,?,?)
> >>>>>2004-08-07 09:01:55,586 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1229) - Removing class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: DELETE
> FROM 
> >>>>>variable_value_range WHERE id=?
> >>>>>2004-08-07 09:01:55,586 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1262) - Updating class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: UPDATE 
> >>>>>variable_value_range SET 
> >>>>>testcase_variable_id=?,minValue=?,maxValue=?,increment=?,unit=? WHERE
> >>>>>id=? AND testcase_variable_id=? AND minValue=? AND maxValue=? AND 
> >>>>>increment=? AND unit=?
> >>>>>2004-08-07 09:01:55,586 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1336) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: SELECT 
> >>>>>
> >>>>>          
> >>>>>
>
>>variable_value_range.testcase_variable_id,variable_value_range.minValue,variable_value_range.maxValue,variable_value_range.increment,variable
> >>    
> >>
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>_value_range.unit 
> >>>>>>FROM variable_value_range WHERE variable_value_range.id=?
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>2004-08-07 09:01:55,626 DEBUG [main] cache.CacheFactory 
> >>>>>(CacheFactory.java:128) - Creating cache instance for type none
> >>>>>2004-08-07 09:01:55,636 DEBUG [main] cache.CacheFactory 
> >>>>>(CacheFactory.java:128) - Creating cache instance for type none
> >>>>>2004-08-07 09:01:55,636 DEBUG [main] cache.CacheFactory 
> >>>>>(CacheFactory.java:128) - Creating cache instance for type none
> >>>>>2004-08-07 09:01:55,837 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:384) - Create SQL: SELECT 
> >>>>>testcase.id,testcase_variable.id,testcase.source,testcase.description
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>FROM testcase LEFT OUTER JOIN testcase_variable ON 
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>testcase.id=testcase_variable.testcase_id WHERE (testcase.source = ?)
> >>>>>2004-08-07 09:01:57,099 DEBUG [main] engine.SQLEngine$SQLQuery 
> >>>>>(SQLEngine.java:1699) - jdo.executing
> >>>>>2004-08-07 09:01:57,289 DEBUG [main] testcase.TestcaseFactory 
> >>>>>(TestcaseFactory.java:58) - Number of testcases: 2
> >>>>>2004-08-07 09:01:57,309 DEBUG [main] cache.NoCache (NoCache.java:122)
> - 
> >>>>>Removing cache entry for key
> com.ibm.rfid.testcontroller.testcase.Testcase/1
> >>>>>2004-08-07 09:01:57,339 DEBUG [main] cache.NoCache (NoCache.java:122)
> - 
> >>>>>Removing cache entry for key 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1
> >>>>>2004-08-07 09:01:57,339 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1020) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> SELECT 
>
>>>>>testcase_variable.testcase_id,variable_value_range.id,testcase_variable.label,testcase_variable.description
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>FROM testcase_variable LEFT OUTER JOIN variable_value_range ON 
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>testcase_variable.id=variable_value_range.id WHERE
> testcase_variable.id=?
> >>>>>2004-08-07 09:01:57,369 DEBUG [main] cache.NoCache (NoCache.java:122)
> - 
> >>>>>Removing cache entry for key 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1
> >>>>>2004-08-07 09:01:57,369 DEBUG [main] engine.SQLEngine 
> >>>>>(SQLEngine.java:1020) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: SELECT 
> >>>>>
> >>>>>          
> >>>>>
>
>>variable_value_range.testcase_variable_id,variable_value_range.minValue,variable_value_range.maxValue,variable_value_range.increment,variable
> >>    
> >>
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>_value_range.unit 
> >>>>>>FROM variable_value_range WHERE variable_value_range.id=?
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>2004-08-07 09:01:57,399 DEBUG [main] persist.LockEngine 
> >>>>>(LockEngine.java:370) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange with id: 1
> >>>>>2004-08-07 09:01:57,399 DEBUG [main] persist.LockEngine 
> >>>>>(LockEngine.java:370) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable with id: 1
> >>>>>2004-08-07 09:01:57,409 DEBUG [main] persist.LockEngine 
> >>>>>(LockEngine.java:370) - Loading class: 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase with id: 1
> >>>>>2004-08-07 09:01:57,409 DEBUG [main] testcase.TestcaseFactory 
> >>>>>(TestcaseFactory.java:61) - Number of testcase variables: 1
> >>>>>2004-08-07 09:01:57,409 DEBUG [main] testcase.TestcaseFactory 
> >>>>>(TestcaseFactory.java:65) -  [ID] 1 [LABEL]Geschwindigkeit
> [DESCRIPTION] 
> >>>>>Palettengeschwindigkeit
> >>>>>2004-08-07 09:01:57,419 DEBUG [main] persist.ObjectLock 
> >>>>>(ObjectLock.java:821) - Release 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1/0 R/- by 
> >>>>>[EMAIL PROTECTED]
> >>>>>2004-08-07 09:01:57,419 DEBUG [main] cache.NoCache (NoCache.java:93)
> - 
> >>>>>Creating cache entry for key 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1 with value 
> >>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1/0 -/-
> >>>>>2004-08-07 09:01:57,419 DEBUG [main] cache.NoCache (NoCache.java:157)
> - 
> >>>>>Disposing object com.ibm.rfid.testcontroller.testcase.Testcase/1/0
> -/-
> >>>>>2004-08-07 09:01:57,419 DEBUG [main] persist.ObjectLock 
> >>>>>(ObjectLock.java:821) - Release 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 R/- by 
> >>>>>[EMAIL PROTECTED]
> >>>>>2004-08-07 09:01:57,429 DEBUG [main] cache.NoCache (NoCache.java:93)
> - 
> >>>>>Creating cache entry for key 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1 with value 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 -/-
> >>>>>2004-08-07 09:01:57,429 DEBUG [main] cache.NoCache (NoCache.java:157)
> - 
> >>>>>Disposing object 
> >>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 -/-
> >>>>>2004-08-07 09:01:57,429 DEBUG [main] persist.ObjectLock 
> >>>>>(ObjectLock.java:821) - Release 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1/2 R/- by 
> >>>>>[EMAIL PROTECTED]
> >>>>>2004-08-07 09:01:57,429 DEBUG [main] cache.NoCache (NoCache.java:93)
> - 
> >>>>>Creating cache entry for key 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1 with value 
> >>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1/2 -/-
> >>>>>2004-08-07 09:01:57,439 DEBUG [main] cache.NoCache (NoCache.java:157)
> - 
> >>>>>Disposing object com.ibm.rfid.testcontroller.testcase.ValueRange/1/2
> -/-
> >>>>>
> >>>>>Still hoping to solve the problem ;-)
> >>>>>
> >>>>>Axel
> >>>>>
> >>>>>
> >>>>>Werner Guttmann wrote:
> >>>>>
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>Axel,
> >>>>>>
> >>>>>>can you please post the DDL you used to create the testcase and
> testcase_variable tables. I'd like to be able to replay what you've
> experienced.
> >>>>>>
> >>>>>>Just out of curiosity, if you iterated through all
> testCaseVariables, do you at least get all of them returned ? Iow, if you
changed 
> >>>>>>
> >>>>>>OQLQuery oql = db.getOQLQuery("SELECT tc FROM
> com.ibm.rfid.testcontroller.testcase.Testcase tc WHERE source = $1");
> >>>>>>oql.bind(urlString);
> >>>>>>QueryResults results = oql.execute();
> >>>>>>logger.debug("Number of testcases: " + results.size());
> >>>>>>while(results.hasMore()) {
> >>>>>> testcase = (Testcase) results.next();
> >>>>>> logger.debug("Number of testcase variables: " +
> testcase.getTestcaseVariables().size());
> >>>>>> Vector variables = testcase.getTestCaseVariables();
> >>>>>> for (Iterator iter = variables.iterator(); iter.hasNext(); ) {
> >>>>>>    TestCaseVariable variable = (TestCaseVariable) iter.next();
> >>>>>>    logger.debug (variable);
> >>>>>> }
> >>>>>>}
> >>>>>>
> >>>>>>what's the output ?
> >>>>>>
> >>>>>>Werner
> >>>>>>
> >>>>>>On Fri, 06 Aug 2004 18:20:54 +0200, Axel Mueller wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>     
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>Hi,
> >>>>>>>
> >>>>>>>For two tables "testcase" (class Testcase) and "testcase_variable" 
> >>>>>>>(class TestcaseVariable) I have defined a 1:n relation and perform
> a 
> >>>>>>>OQLQuery on the "1" side of that relation (which is Testcase).
> >>>>>>>Table "testcase" contains only one row whereas the table 
> >>>>>>>"testcase_variables" contains 2 rows whose foreign key matches the 
> >>>>>>>primary key of the row in "testcase":
> >>>>>>>
> >>>>>>>mysql> select id from testcase;
> >>>>>>>+----+
> >>>>>>>| id |
> >>>>>>>+----+
> >>>>>>>|  1 |
> >>>>>>>+----+
> >>>>>>>1 row in set (0.00 sec)
> >>>>>>>
> >>>>>>>mysql> select * from testcase_variable;
> >>>>>>>+----+-------------+-----------------+-------------------------+
> >>>>>>>| id | testcase_id | label           | description             |
> >>>>>>>+----+-------------+-----------------+-------------------------+
> >>>>>>>|  1 |           1 | Geschwindigkeit | Palettengeschwindigkeit |
> >>>>>>>|  2 |           1 | Versuch         | Versuch                 |
> >>>>>>>+----+-------------+-----------------+-------------------------+
> >>>>>>>
> >>>>>>>I would expect the query below to return ONE Testcase object and
> the 
> >>>>>>>testcase object to contain TWO TestcaseVariable objects.
> >>>>>>>Actually  results.size() returns 2 and 
> >>>>>>>testcase.getTestcaseVariables().size() returns 1 - exactly the
> opposite 
> >>>>>>>of what I would have expected.
> >>>>>>>What am I doing wrong??? I found some examples of 1:n relations but
> I'm 
> >>>>>>>doing the query the same way the do using the same kind of mapping
> to 
> >>>>>>>express the 1:n relation.
> >>>>>>>
> >>>>>>>
> >>>>>>>         OQLQuery oql = db.getOQLQuery("SELECT tc FROM 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.Testcase tc WHERE source =
> $1");
> >>>>>>>         oql.bind(urlString);
> >>>>>>>         QueryResults results = oql.execute();
> >>>>>>>         logger.debug("Number of testcases: " + results.size());
> >>>>>>>         while(results.hasMore()) {
> >>>>>>>             testcase = (Testcase) results.next();
> >>>>>>>             logger.debug("Number of testcase variables: " + 
> >>>>>>>testcase.getTestcaseVariables().size());
> >>>>>>>         }
> >>>>>>>
> >>>>>>>
> >>>>>>>The relevant section of the mapping descriptor looks like this:
> >>>>>>>
> >>>>>>> <class name="com.ibm.rfid.testcontroller.testcase.Testcase" 
> >>>>>>>identity="id" key-generator="MAX">
> >>>>>>>     <cache-type type="none"/>
> >>>>>>>     <map-to table="testcase" xml="testcase"/>
> >>>>>>>     <field name="testcaseVariables" 
> >>>>>>>type="com.ibm.rfid.testcontroller.testcase.TestcaseVariable" 
> >>>>>>>collection="vector">
> >>>>>>>         <sql many-key="testcase_id"/>
> >>>>>>>         <bind-xml name="testcase-variable" node="element"/>
> >>>>>>>     </field>
> >>>>>>>     <!-- field name="testRuns" 
> >>>>>>>type="com.ibm.rfid.testcontroller.TestRun" collection="vector">
> >>>>>>>         <sql many-key="testcase_id"/>
> >>>>>>>         <bind-xml name="testcase-run" node="element"/>
> >>>>>>>     </field -->
> >>>>>>>     <field name="id">
> >>>>>>>         <sql name="id"/>
> >>>>>>>         <bind-xml name="id" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="source">
> >>>>>>>         <sql name="source"/>
> >>>>>>>         <bind-xml name="source" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="description">
> >>>>>>>         <sql name="description"/>
> >>>>>>>         <bind-xml name="description" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>> </class>
> >>>>>>>
> >>>>>>> <class
> name="com.ibm.rfid.testcontroller.testcase.TestcaseVariable" 
> >>>>>>>identity="id" key-generator="MAX">
> >>>>>>>     <cache-type type="none"/>
> >>>>>>>     <map-to table="testcase_variable" xml="testcase-variable"/>
> >>>>>>>     <field name="testcase" 
> >>>>>>>type="com.ibm.rfid.testcontroller.testcase.Testcase">
> >>>>>>>         <sql name="testcase_id" />
> >>>>>>>         <bind-xml name="testcase-id" node="element"
> reference="true"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="valueRange" 
> >>>>>>>type="com.ibm.rfid.testcontroller.testcase.ValueRange">
> >>>>>>>         <bind-xml name="value-range" node="element"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="id">
> >>>>>>>         <sql name="id"/>
> >>>>>>>         <bind-xml name="id" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="label">
> >>>>>>>         <sql name="label"/>
> >>>>>>>         <bind-xml name="label" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>>     <field name="description">
> >>>>>>>         <sql name="description"/>
> >>>>>>>         <bind-xml name="description" node="attribute"/>
> >>>>>>>     </field>
> >>>>>>> </class>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>Below is the logging of the query code snipped above:
> >>>>>>>
> >>>>>>>
> >>>>>>>2004-08-06 17:38:30,989 DEBUG [main] engine.SQLEngine 
> >>>>>>>(SQLEngine.java:384) - Create SQL: SELECT 
>
>>>>>>>testcase.id,testcase_variable.id,testcase.source,testcase.description
> >>>>>>>  
> >>>>>>>
> >>>>>>>       
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>FROM testcase LEFT OUTER JOIN testcase_variable ON 
> >>>>>>
> >>>>>>
> >>>>>>     
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>testcase.id=testcase_variable.testcase_id WHERE (testcase.source =
> ?)
> >>>>>>>2004-08-06 17:38:31,380 DEBUG [main] engine.SQLEngine$SQLQuery 
> >>>>>>>(SQLEngine.java:1699) - jdo.executing
> >>>>>>>2004-08-06 17:38:31,410 DEBUG [main] testcase.TestcaseFactory 
> >>>>>>>(TestcaseFactory.java:57) - Number of testcases: 2
> >>>>>>>2004-08-06 17:38:31,420 DEBUG [main] cache.NoCache
> (NoCache.java:122) - 
> >>>>>>>Removing cache entry for key
> com.ibm.rfid.testcontroller.testcase.Testcase/1
> >>>>>>>2004-08-06 17:38:31,450 DEBUG [main] cache.NoCache
> (NoCache.java:122) - 
> >>>>>>>Removing cache entry for key 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1
> >>>>>>>2004-08-06 17:38:31,450 DEBUG [main] engine.SQLEngine 
> >>>>>>>(SQLEngine.java:1020) - Loading class: 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable using SQL:
> SELECT 
>
>>>>>>>testcase_variable.testcase_id,variable_value_range.id,testcase_variable.label,testcase_variable.description
> >>>>>>>  
> >>>>>>>
> >>>>>>>       
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>FROM testcase_variable LEFT OUTER JOIN variable_value_range ON 
> >>>>>>
> >>>>>>
> >>>>>>     
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>testcase_variable.id=variable_value_range.id WHERE
> testcase_variable.id=?
> >>>>>>>2004-08-06 17:38:31,460 DEBUG [main] cache.NoCache
> (NoCache.java:122) - 
> >>>>>>>Removing cache entry for key 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1
> >>>>>>>2004-08-06 17:38:31,460 DEBUG [main] engine.SQLEngine 
> >>>>>>>(SQLEngine.java:1020) - Loading class: 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange using SQL: SELECT 
> >>>>>>>
> >>>>>>>       
> >>>>>>>
> >>>>>>>              
> >>>>>>>
>
>>variable_value_range.testcase_variable_id,variable_value_range.minValue,variable_value_range.maxValue,variable_value_range.increment,variable
> >>    
> >>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>>>  
> >>>>>>>
> >>>>>>>       
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>_value_range.unit 
> >>>>>>>>FROM variable_value_range WHERE variable_value_range.id=?
> >>>>>>
> >>>>>>
> >>>>>>     
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>2004-08-06 17:38:31,470 DEBUG [main] persist.LockEngine 
> >>>>>>>(LockEngine.java:370) - Loading class: 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange with id: 1
> >>>>>>>2004-08-06 17:38:31,470 DEBUG [main] persist.LockEngine 
> >>>>>>>(LockEngine.java:370) - Loading class: 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable with id: 1
> >>>>>>>2004-08-06 17:38:31,470 DEBUG [main] persist.LockEngine 
> >>>>>>>(LockEngine.java:370) - Loading class: 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.Testcase with id: 1
> >>>>>>>2004-08-06 17:38:31,490 DEBUG [main] testcase.TestcaseFactory 
> >>>>>>>(TestcaseFactory.java:60) - Number of testcase variables: 1
> >>>>>>>2004-08-06 17:38:31,500 DEBUG [main] persist.ObjectLock 
> >>>>>>>(ObjectLock.java:821) - Release 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1/0 R/- by 
> >>>>>>>[EMAIL PROTECTED]
> >>>>>>>2004-08-06 17:38:31,500 DEBUG [main] cache.NoCache
> (NoCache.java:93) - 
> >>>>>>>Creating cache entry for key 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1 with value 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.Testcase/1/0 -/-
> >>>>>>>2004-08-06 17:38:31,510 DEBUG [main] cache.NoCache
> (NoCache.java:157) - 
> >>>>>>>Disposing object com.ibm.rfid.testcontroller.testcase.Testcase/1/0
> -/-
> >>>>>>>2004-08-06 17:38:31,510 DEBUG [main] persist.ObjectLock 
> >>>>>>>(ObjectLock.java:821) - Release 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 R/- by 
> >>>>>>>[EMAIL PROTECTED]
> >>>>>>>2004-08-06 17:38:31,510 DEBUG [main] cache.NoCache
> (NoCache.java:93) - 
> >>>>>>>Creating cache entry for key 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1 with value 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 -/-
> >>>>>>>2004-08-06 17:38:31,520 DEBUG [main] cache.NoCache
> (NoCache.java:157) - 
> >>>>>>>Disposing object 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.TestcaseVariable/1/1 -/-
> >>>>>>>2004-08-06 17:38:31,520 DEBUG [main] persist.ObjectLock 
> >>>>>>>(ObjectLock.java:821) - Release 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1/2 R/- by 
> >>>>>>>[EMAIL PROTECTED]
> >>>>>>>2004-08-06 17:38:31,520 DEBUG [main] cache.NoCache
> (NoCache.java:93) - 
> >>>>>>>Creating cache entry for key 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1 with value 
> >>>>>>>com.ibm.rfid.testcontroller.testcase.ValueRange/1/2 -/-
> >>>>>>>2004-08-06 17:38:31,520 DEBUG [main] cache.NoCache
> (NoCache.java:157) - 
> >>>>>>>Disposing object
> com.ibm.rfid.testcontroller.testcase.ValueRange/1/2 -/-
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>----------------------------------------------------------- 
> >>>>>>>If you wish to unsubscribe from this mailing, send mail to
> >>>>>>>[EMAIL PROTECTED] with a subject of:
> >>>>>>>     unsubscribe castor-user
> >>>>>>>
> >>>>>>>  
> >>>>>>>
> >>>>>>>       
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>----------------------------------------------------------- 
> >>>>>>If you wish to unsubscribe from this mailing, send mail to
> >>>>>>[EMAIL PROTECTED] with a subject of:
> >>>>>>      unsubscribe castor-user
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>     
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>----------------------------------------------------------- 
> >>>>>If you wish to unsubscribe from this mailing, send mail to
> >>>>>[EMAIL PROTECTED] with a subject of:
> >>>>>      unsubscribe castor-user
> >>>>>
> >>>>>   
> >>>>>
> >>>>>          
> >>>>>
> >>>>
> >>>>----------------------------------------------------------- 
> >>>>If you wish to unsubscribe from this mailing, send mail to
> >>>>[EMAIL PROTECTED] with a subject of:
> >>>>       unsubscribe castor-user
> >>>>
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>
> >>>----------------------------------------------------------- 
> >>>If you wish to unsubscribe from this mailing, send mail to
> >>>[EMAIL PROTECTED] with a subject of:
> >>>       unsubscribe castor-user
> >>>
> >>>      
> >>>
> >>
> >>----------------------------------------------------------- 
> >>If you wish to unsubscribe from this mailing, send mail to
> >>[EMAIL PROTECTED] with a subject of:
> >>       unsubscribe castor-user
> >>
> >>    
> >>
> >
> >
> >
> >----------------------------------------------------------- 
> >If you wish to unsubscribe from this mailing, send mail to
> >[EMAIL PROTECTED] with a subject of:
> >        unsubscribe castor-user
> >
> >
> >  
> >
> 
> 
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-user
> 

-- 
NEU: WLAN-Router f�r 0,- EUR* - auch f�r DSL-Wechsler!
GMX DSL = superg�nstig & kabellos http://www.gmx.net/de/go/dsl



----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Reply via email to