When running the following code, the line that sets the column width fails, if the table is created with headerRowNumber and headerColumnNumber. It does not fail if the newTable method is called only with the number of rows and columns.
setWidth fails-> OdfTable myTable = OdfTable.newTable(outputOdt, 1, 3, 1, 3);
setWidth works-> OdfTable myTable = OdfTable.newTable(outputOdt, 1, 3);
Here's an example of the code failing...
OdfTable myTable = OdfTable.newTable(outputOdt, 1, numCols, headerRowNumber, headerColumnNumber);
logItem("Template:createTable" + templateFileName + "->HeaderRow=" + myTable.getHeaderRowCount()+ ",HeaderCol=" + myTable.getHeaderColumnCount(), Level.INFO);
logItem("Template:createTable" + templateFileName + "->Row=" + myTable.getRowCount() + ",Col=" + myTable.getColumnCount(),
Level.INFO);
for (Integer integer : listColumnDetails.keySet()) {
System.out.println("Template::CreateTable Integer=" + integer + "->" + listColumnDetails.get(integer).longValue());
myTable.getColumnByIndex(integer-1).setWidth( listColumnDetails.get(integer).longValue());
}
Output is as follows...
2026-04-06,11:05:42:023,INFO ,[pool-17-thread-1],,Template:createTableUserAnalysisReport.odt->HeaderRow=1,HeaderCol=3
2026-04-06,11:05:42:023,INFO ,[pool-17-thread-1],,Template:createTableUserAnalysisReport.odt->Row=1,Col=3
Template::CreateTable Integer=1->120
2026-04-06,11:05:51:339,ERROR,[pool-17-thread-1],,Template::createTable::file:///NetBeans/ITSiMonitor/target/ITSiMonitor-1.0/Resources/ReportTemplates/UserAnalysisReport.odt
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
at org.odftoolkit.odfdom.pkg.OdfElement.insertBefore(OdfElement.java:794)
at org.odftoolkit.odfdom.doc.table.OdfTableColumn.splitRepeatedColumns(OdfTableColumn.java:209)
at org.odftoolkit.odfdom.doc.table.OdfTableColumn.setWidth(OdfTableColumn.java:156)
at com.Utilities.Document.ODFTemplateDocUtilities.createTable(ODFTemplateDocUtilities.java:852)
When running the following code, the line that sets the column width fails, if the table is created with headerRowNumber and headerColumnNumber. It does not fail if the newTable method is called only with the number of rows and columns.
setWidth fails-> OdfTable myTable = OdfTable.newTable(outputOdt, 1, 3, 1, 3);
setWidth works-> OdfTable myTable = OdfTable.newTable(outputOdt, 1, 3);
Here's an example of the code failing...
Output is as follows...
2026-04-06,11:05:42:023,INFO ,[pool-17-thread-1],,Template:createTableUserAnalysisReport.odt->HeaderRow=1,HeaderCol=3
2026-04-06,11:05:42:023,INFO ,[pool-17-thread-1],,Template:createTableUserAnalysisReport.odt->Row=1,Col=3
Template::CreateTable Integer=1->120
2026-04-06,11:05:51:339,ERROR,[pool-17-thread-1],,Template::createTable::file:///NetBeans/ITSiMonitor/target/ITSiMonitor-1.0/Resources/ReportTemplates/UserAnalysisReport.odt
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
at org.odftoolkit.odfdom.pkg.OdfElement.insertBefore(OdfElement.java:794)
at org.odftoolkit.odfdom.doc.table.OdfTableColumn.splitRepeatedColumns(OdfTableColumn.java:209)
at org.odftoolkit.odfdom.doc.table.OdfTableColumn.setWidth(OdfTableColumn.java:156)
at com.Utilities.Document.ODFTemplateDocUtilities.createTable(ODFTemplateDocUtilities.java:852)