From 3662a4e402af131d2ecde9d3963b55453af6580c Mon Sep 17 00:00:00 2001 From: chenson42 Date: Sun, 20 Jul 2014 22:51:02 +0000 Subject: [PATCH] 0001814: NullPointerException in AbstractTriggerTemplate.createInitalLoadSql --- .../symmetric/service/impl/DataExtractorService.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java index 91ca484d17..b86d7ab3ec 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java @@ -904,8 +904,17 @@ protected Table lookupAndOrderColumnsAccordingToTriggerHistory(String routerId, Table table = null; if (useDatabaseDefinition) { table = platform.getTableFromCache(catalogName, schemaName, tableName, false); + + if (table != null && table.getColumnCount() < triggerHistory.getParsedColumnNames().length) { + /* + * If the column count is less than what trigger history reports, then + * chances are the table cache is out of date. + */ + table = platform.getTableFromCache(catalogName, schemaName, tableName, true); + } + if (table != null) { - table = table.copyAndFilterColumns(triggerHistory.getParsedColumnNames(), + table = table.copyAndFilterColumns(triggerHistory.getParsedColumnNames(), triggerHistory.getParsedPkColumnNames(), true); } else { throw new SymmetricException("Could not find the following table. It might have been dropped: %s", Table.getFullyQualifiedTableName(catalogName, schemaName, tableName));