@@ -86,7 +86,8 @@ private static boolean isBindException(DataAccessException e) {
8686 SQLException se = (SQLException )cause ;
8787 String sqlMessage = se .getMessage ();
8888 Throwable sqlCause = se .getCause ();
89- isBind = sqlCause instanceof IllegalArgumentException && sqlMessage .contains ("Error while writing value" );
89+ isBind = (sqlCause instanceof IllegalArgumentException || sqlCause instanceof ArrayIndexOutOfBoundsException )
90+ && sqlMessage .contains ("Error while writing value" );
9091 }
9192 return isBind ;
9293 }
@@ -103,13 +104,12 @@ private static void storeViaCodegen(Connection c, WaterSupplyAccounting accounti
103104 }
104105
105106 private static void storeViaManual (Connection c , WaterSupplyAccounting accounting , boolean overrideProtection , String volumeUnitId , String storeRule ) {
106- cwms .cda .data .dao .watersupply .handgen .records .WAT_USR_CONTRACT_ACCT_TAB_T accountingTab = WaterSupplyUtils .toManualWaterUserContractAcctTs (accounting );
107- WATER_USER_CONTRACT_REF_T contractRefT = WaterSupplyUtils
108- .toContractRef (accounting .getWaterUser (), accounting .getContractName ());
109- LOC_REF_TIME_WINDOW_TAB_T pumpTimeWindowTab = WaterSupplyUtils .toTimeWindowTabT (accounting );
107+ var accountingTab = WaterSupplyUtilsShadow .toManualWaterUserContractAcctTs (accounting );
108+ var contractRefT = WaterSupplyUtilsShadow .toContractRef (accounting .getWaterUser (), accounting .getContractName ());
109+ var pumpTimeWindowTab = WaterSupplyUtilsShadow .toTimeWindowTabT (accounting );
110110 String timeZoneId = "UTC" ;
111111 String overrideProt = formatBool (overrideProtection );
112- cwms .cda . data . dao . watersupply . handgen .CWMS_WATER_SUPPLY_PACKAGE .call_STORE_ACCOUNTING_SET (DSL .using (c ).configuration (), accountingTab ,
112+ usace . cwms .db . jooq . codegen_shadow . packages .CWMS_WATER_SUPPLY_PACKAGE .call_STORE_ACCOUNTING_SET (DSL .using (c ).configuration (), accountingTab ,
113113 contractRefT , pumpTimeWindowTab , timeZoneId , volumeUnitId , storeRule , overrideProt );
114114 }
115115
@@ -118,7 +118,6 @@ public List<WaterSupplyAccounting> retrieveAccounting(String contractName, Water
118118 boolean startInclusive , boolean endInclusive , boolean ascendingFlag , int rowLimit ) {
119119
120120 String transferType = null ;
121- WATER_USER_CONTRACT_REF_T contractRefT = WaterSupplyUtils .toContractRef (waterUser , contractName );
122121 Timestamp startTimestamp = Timestamp .from (startTime );
123122 Timestamp endTimestamp = Timestamp .from (endTime );
124123 String timeZoneId = "UTC" ;
@@ -130,23 +129,25 @@ public List<WaterSupplyAccounting> retrieveAccounting(String contractName, Water
130129 return connectionResult (dsl , c -> {
131130 setOffice (c , projectLocation .getOfficeId ());
132131 try {
132+ var contractRefT = WaterSupplyUtils .toContractRef (waterUser , contractName );
133133 return retrieveFromCodegen (units , c , contractRefT , startTimestamp , endTimestamp , timeZoneId , startInclusiveFlag , endInclusiveFlag , ascendingFlagStr , rowLimitBigInt , transferType );
134134 } catch (DataAccessException e ){
135135 if (isInvalidColumn (e )){
136- return retrieveViaManual (units , c , contractRefT , startTimestamp , endTimestamp , timeZoneId , startInclusiveFlag , endInclusiveFlag , ascendingFlagStr , rowLimitBigInt , transferType );
136+ var contractRefT = WaterSupplyUtilsShadow .toContractRef (waterUser , contractName );
137+ return retrieveViaManual (units , c , contractRefT , startTimestamp , endTimestamp , timeZoneId , startInclusiveFlag , endInclusiveFlag , ascendingFlagStr , rowLimitBigInt , transferType );
137138 }
138139 throw e ;
139140 }
140141 });
141142 }
142143
143- private @ NonNull List <WaterSupplyAccounting > retrieveViaManual (String units , Connection c , WATER_USER_CONTRACT_REF_T contractRefT , Timestamp startTimestamp , Timestamp endTimestamp , String timeZoneId , String startInclusiveFlag , String endInclusiveFlag , String ascendingFlagStr , BigInteger rowLimitBigInt , String transferType ) {
144- cwms .cda . data . dao . watersupply . handgen .records .WAT_USR_CONTRACT_ACCT_TAB_T watUsrContractAcctObjTs
145- = cwms .cda . data . dao . watersupply . handgen .CWMS_WATER_SUPPLY_PACKAGE .call_RETRIEVE_ACCOUNTING_SET (DSL .using (c ).configuration (),
144+ private @ NonNull List <WaterSupplyAccounting > retrieveViaManual (String units , Connection c , usace . cwms . db . jooq . codegen_shadow . udt . records . WATER_USER_CONTRACT_REF_T contractRefT , Timestamp startTimestamp , Timestamp endTimestamp , String timeZoneId , String startInclusiveFlag , String endInclusiveFlag , String ascendingFlagStr , BigInteger rowLimitBigInt , String transferType ) {
145+ usace . cwms .db . jooq . codegen_shadow . udt .records .WAT_USR_CONTRACT_ACCT_TAB_T watUsrContractAcctObjTs
146+ = usace . cwms .db . jooq . codegen_shadow . packages .CWMS_WATER_SUPPLY_PACKAGE .call_RETRIEVE_ACCOUNTING_SET (DSL .using (c ).configuration (),
146147 contractRefT , units , startTimestamp , endTimestamp , timeZoneId , startInclusiveFlag ,
147148 endInclusiveFlag , ascendingFlagStr , rowLimitBigInt , transferType );
148149 if (!watUsrContractAcctObjTs .isEmpty ()) {
149- return WaterSupplyUtils .toWaterSupplyAccountingList (c , watUsrContractAcctObjTs );
150+ return WaterSupplyUtilsShadow .toWaterSupplyAccountingList (c , watUsrContractAcctObjTs , units );
150151 } else {
151152 return new ArrayList <>();
152153 }
@@ -171,7 +172,7 @@ private boolean isInvalidColumn(DataAccessException e) {
171172 contractRefT , units , startTimestamp , endTimestamp , timeZoneId , startInclusiveFlag ,
172173 endInclusiveFlag , ascendingFlagStr , rowLimitBigInt , transferType );
173174 if (!watUsrContractAcctObjTs .isEmpty ()) {
174- return WaterSupplyUtils .toWaterSupplyAccountingList (c , watUsrContractAcctObjTs , units );
175+ return WaterSupplyUtils .toWaterSupplyAccountingList (c , watUsrContractAcctObjTs );
175176 } else {
176177 return new ArrayList <>();
177178 }
0 commit comments