summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--javax/swing/text/html/TableView.java10
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f087b1e74..45f641812 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2006-12-06 Roman Kennke <kennke@aicas.com>
+ * javax/swing/text/html/TableView.java
+ (RowView.layoutMajorAxis): Check column index for invalid value.
+ (updateGrid): Check column index for invalid value.
+
+2006-12-06 Roman Kennke <kennke@aicas.com>
+
* javax/swing/text/html/BlockView.java
(getAlignment): Align blocks horizontally by the superclass.
* javax/swing/text/html/HTMLEditorKit.java
diff --git a/javax/swing/text/html/TableView.java b/javax/swing/text/html/TableView.java
index 0885e6372..f87d7b35f 100644
--- a/javax/swing/text/html/TableView.java
+++ b/javax/swing/text/html/TableView.java
@@ -183,9 +183,10 @@ class TableView
updateGrid();
int numCols = offsets.length;
int realColumn = 0;
+ int colCount = getViewCount();
for (int i = 0; i < numColumns;)
{
- if (! overlap[i])
+ if (! overlap[i] && realColumn < colCount)
{
View v = getView(realColumn);
if (v instanceof CellView)
@@ -785,6 +786,7 @@ class TableView
rowView.rowIndex = r;
rowView.overlap = new boolean[maxColumns];
int colIndex = 0;
+ int colCount = rowView.getViewCount();
for (int c = 0; c < maxColumns;)
{
if (rowSpans[c] > 0)
@@ -793,7 +795,7 @@ class TableView
rowView.overlap[c] = true;
c++;
}
- else
+ else if (colIndex < colCount)
{
View v = rowView.getView(colIndex);
colIndex++;
@@ -816,6 +818,10 @@ class TableView
}
}
}
+ else
+ {
+ c++;
+ }
}
}
}