dlr 2005/01/06 10:36:47 Modified: src/generator/src/templates/om Object.vm ObjectWithManager.vm Log: Fix the Java source code generation failure for OM class whose corresponding table lacks a PK. Observed behavior before this patch: Compilation error in BaseYourObject.setQueryKey(String) due to throws delcaration mismatch between Torque's BaseObject.setPrimaryKey(String) method and lack of generated setPrimaryKey(String) method. Had the override been generated, it would've had a throws declaration of TorqueException, instead of Exception as declared by BaseObject. [javac] .../BaseYourObject.java:392:9:392:26: Semantic Error: The method "void setPrimaryKey(java.lang.String $1) throws java.lang.Exception;" can throw the checked exception "java.lang.Exception", so its invocation must be enclosed in a try statement that catches the exception, or else this method must be declared to throw the exception. * src/generator/src/templates/om/Object.vm * src/generator/src/templates/om/ObjectWithManager.vm Wrap the invocation of setPrimaryKey(String) in a try/catch block to re-throw Exception as TorqueException in the setQueryKey(String) method. CollabNet-internal issue: PCN33929 Revision Changes Path 1.18 +13 -0 db-torque/src/generator/src/templates/om/Object.vm Index: Object.vm =================================================================== RCS file: /home/cvs/db-torque/src/generator/src/templates/om/Object.vm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -u -r1.17 -r1.18 --- Object.vm 20 Oct 2004 01:28:18 -0000 1.17 +++ Object.vm 6 Jan 2005 18:36:47 -0000 1.18 @@ -1424,7 +1424,20 @@ public void setQueryKey(String key) throws TorqueException { + ## Work around the fact that BaseObject.setPrimaryKey() declares + ## that it throws Exception instead of TorqueException. + #set ($tableHasPrimaryKey = $table.PrimaryKey.size() > 0) + #if (!$tableHasPrimaryKey) + try + { + #end setPrimaryKey(key); + #if (!$tableHasPrimaryKey) + } + catch (Exception e) + { + } + #end } #end 1.13 +14 -1 db-torque/src/generator/src/templates/om/ObjectWithManager.vm Index: ObjectWithManager.vm =================================================================== RCS file: /home/cvs/db-torque/src/generator/src/templates/om/ObjectWithManager.vm,v retrieving revision 1.12 retrieving revision 1.13 diff -u -u -r1.12 -r1.13 --- ObjectWithManager.vm 20 Oct 2004 01:28:18 -0000 1.12 +++ ObjectWithManager.vm 6 Jan 2005 18:36:47 -0000 1.13 @@ -1110,7 +1110,8 @@ ${table.JavaName}Peer.doUpdate(($table.JavaName) this, con); } - #if ($table.PrimaryKey.size() > 0) + #set ($tableHasPrimaryKey = $table.PrimaryKey.size() > 0) + #if ($tableHasPrimaryKey) #set ($interfaceName = $table.JavaName) #if ($table.Interface) #set ($interfaceName = $table.Interface) @@ -1400,7 +1401,19 @@ public void setQueryKey(String key) throws TorqueException { + ## Work around the fact that BaseObject.setPrimaryKey() declares + ## that it throws Exception instead of TorqueException. + #if (!$tableHasPrimaryKey) + try + { + #end setPrimaryKey(key); + #if (!$tableHasPrimaryKey) + } + catch (Exception e) + { + } + #end } #end
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]