I've put it in Scarab and will get a test case for it put together.

- Stephen

> -----Original Message-----
> From: Alexis HAUMONT [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 22, 2002 1:53 AM
> To: Turbine Torque Users List
> Subject: [Patch-2nd submit] Object.vm for setPrimaryKey( String ) if
complex PK
> 
> Hi,
> 
> Could somenone please test and commit this patch, it's a bug-fix :
given
> one table with a complex PK, <om>.setPrimaryKey( String ) is broken.
> 
> Thanks
> Alexis.
> 
> 
> I wrote on 2002/08/02 :
> 
> >  Hi all,
> >
> > Here is a little patch for a bug found in Object.vm, the generated
> > method setPrimaryKey( String key ) has a bug if your Table has a
> > multiple PK, it won't parse a string representation of a ComboKey
even
> > one acquired by om.getPrimaryKey().toString(), the code always
throws
> > an ArrayIndexOfBoundException..
> > The generated code could only work if your string representation of
a
> > ComboKey ends with a ':', the reason for this is because the code
> > breaks the String between ':' and doesn't consider the end-of-line
as
> > a delimiter.. (btw, why not using a StringTokenizer here ?)
> 
> [../..]
> 
> >
> > regards,
> > Alexis.
> >
>
>-----------------------------------------------------------------------
-
> >
> >Index: Object.vm
> >====================================================
> ===============
> >RCS file:
/home/cvspublic/jakarta-turbine-torque/src/templates/om/Object.vm,v
> >retrieving revision 1.45
> >diff -u -r1.45 Object.vm
> >--- Object.vm        1 Aug 2002 16:51:38 -0000       1.45
> >+++ Object.vm        2 Aug 2002 06:14:43 -0000
> >@@ -1164,11 +1164,17 @@
> >         int prevPos = 0;
> >
> >      #set ($int = "int ")
> >+     #set ($i = 1)
> >      #foreach ($col in $table.PrimaryKeys)
> >-        ${int}colonPos = key.indexOf(':', prevPos);
> >-        set${col.JavaName}(new
${col.JavaNative}(key.substring(prevPos,
> colonPos)));
> >-        prevPos = colonPos + 1;
> >+        #if ( $i < $table.PrimaryKeys.size() )
> >+          ${int}colonPos = key.indexOf(':', prevPos);
> >+          set${col.JavaName}( new
${col.JavaNative}(key.substring(prevPos,
> colonPos)) );
> >+          prevPos = colonPos + 1;
> >+        #else
> >+          set${col.JavaName}( new
${col.JavaNative}(key.substring(prevPos)) );
> >+        #end
> >         #set ($int = "")
> >+        #set ($i = $i +1)
> >      #end
> >     }
> >
> >
> >
> >
> >
>
>-----------------------------------------------------------------------
-
> >
> >--
> >To unsubscribe, e-mail:   <mailto:turbine-torque-user-
> [EMAIL PROTECTED]>
> >For additional commands, e-mail: <mailto:turbine-torque-user-
> [EMAIL PROTECTED]>
> >



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

Reply via email to