-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P4
-
Affects Version/s: 1.1.5, 1.1.6
-
Component/s: vm-legacy
-
1.1.6
-
x86
-
windows_95, windows_nt
-
Verified
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
|---|---|---|---|---|---|---|
| JDK-2020570 | 1.2.0 | Deepa Viswanathan | P4 | Resolved | Fixed | 1.2beta4 |
Name: tb29552 Date: 05/12/98
When the following test program is run, warnings are returned from the JIT.
public class test {
public static void main(String[] args) throws Exception
{
test t = new test();
t.S009();
}
protected void S009() throws Exception
{
int numpages = 10;
Page[] origpage = new Page[numpages];
int[] origrid = new int[numpages];
long[] origpnum = new long[numpages];
T_Row row1 = new T_Row("bax");
for (int i = 0; i < numpages; i++)
{
origpage[i] = new Page(i, 2);
origrid[i] = origpage[i].getrid();
origpnum[i] = origpage[i].getPageNumber();
}
// check that pages are not reused before transaction is committed
for (int i = 0; i < numpages-1; i++)
{
for (int j = i+1; j < numpages; j++)
{
if (origpnum[i] == origpnum[j])
break;
}
}
Page[] newpage = new Page[numpages];
int[] newrid = new int[numpages];
long[] newpnum = new long[numpages];
T_Row row2 = new T_Row("foobar");
for (int i = 0; i < numpages; i++)
{
newpage[i] = new Page(i, 3);
newpnum[i] = newpage[i].getPageNumber();
newrid[i] = newpage[i].getrid();
}
// if any page is reused, make sure the rid is not reused
int reuse = 0;
for (int i = 0; i < numpages; i++)
{
for (int j = 0; j < numpages; j++)
{
if (origpnum[i] == newpnum[j])
{
reuse++;
if (origrid[i] == newrid[j])
break; // inner loop
}
}
}
}
}
class Page
{
int rid, pnum;
Page(int r, int p)
{
rid = r;
pnum = p;
}
int getPageNumber()
{
return pnum;
}
int getrid()
{
return rid;
}
}
class T_Row {
Object[] col;
public T_Row(int numberOfColumns) {
super();
col = new Object[numberOfColumns];
}
public T_Row(String data) {
this(1);
col[0] = data;
}
public Object[] getRow() {
return col;
}
public void setColumn(int columnId, String data)
{
col[columnId] = data;
}
public int nColumns() {
return col.length;
}
public String toString() {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < nColumns(); i++) {
sb.append(col[i].toString());
if (i < (nColumns() - 1))
sb.append(",");
}
sb.append("");
return sb.toString();
}
}
Here is the output from java test:
A nonfatal internal JIT (3.00.039(x)) error 'GetRegisterA' has occurred in :
'test.S009 ()V': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cg
i
(Review ID: 30101)
======================================================================
This still happens with the JIT 3.00.045 (JIT Update for 1.1.6 Early Access 1)
mick.fleming@Ireland 1998-06-03
- backported by
-
JDK-2020570 nonfatal internal JIT (3.00.039(x)) error 'GetRegisterA' has occurred i
-
- Resolved
-