-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
1.2.2
-
x86
-
windows_nt
Name: vi73552 Date: 07/01/99
1. Steps to reproduce problem:
Just run the RunMe.java class. The error that happens is:
2. Source code:
//--- RunMe.java --------------------------------------------
import java.util.*;
public class RunMe
{
public static void main (String[] x) throws Exception
{
String argArray[] = {"true"};
ArrayList args = new ArrayList(Arrays.asList(argArray));
JITBug jitBug = new JITBugSubclass();
jitBug.compileArgs(args);
}
}
//--- DataTypeException.java -----------------------------
public class DataTypeException extends LLAEException
{
public DataTypeException(String s)
{
super(s);
}
}
//--- LLAEException.java -----------------------------
public class LLAEException extends Exception
{
public LLAEException(String s)
{
super(s);
}
}
//--- JITBug.java --------------------------------------------
import java.util.*;
import java.io.*;
public abstract class JITBug implements Serializable {
private List mArgs;
private String mTemplate;
private List mUnresolvedArgIndexes;
public JITBug()
{
mUnresolvedArgIndexes = new Vector();
}
protected List getArgs() {return mArgs;}
protected void setArgs(List pArgs) {mArgs = pArgs;}
public String getTemplate() {return mTemplate;}
public void setTemplate(String pTemplate) {mTemplate = pTemplate;}
protected List getUnresolvedArgIndexes() {return mUnresolvedArgIndexes;}
protected void setUnresolvedArgIndexes(Vector pUnresolvedArgIndexes) {mUnresolvedArgIndexes = pUnresolvedArgIndexes;}
protected abstract void resolveArg(int pArgIx, String pArg) throws LLAEException;
public void compileArgs(List pArgs) throws LLAEException
{
mArgs = pArgs;
String arg;
Object argObject;
ListIterator argIter = pArgs.listIterator();
while (argIter.hasNext())
{
try
{
argObject = argIter.next();
if (argObject instanceof JITBug)
mUnresolvedArgIndexes.add(new Integer(argIter.previousIndex()));
else
{
// should be a string make sure it's not empty and resolve it
arg = (String)argObject;
if (arg.length() > 0)
resolveArg(argIter.previousIndex(),arg);
}
}
catch (DataTypeException e)
{
throw new DataTypeException ("JITBug::CompileArgs - Template ["+getTemplate()+
"] Arg ["+(argIter.previousIndex()+1)+"]\n"+ e.getMessage());
}
catch (LLAEException e)
{
// catch the exceptions from resolveArg and put some CompileArgs text on top.
throw new LLAEException ("JITBug::CompileArgs - Template ["+getTemplate()+
"] Arg ["+(argIter.previousIndex()+1)+"]\n"+ e.getMessage());
}
}
}
}
//--- JITBugSubclass.java -------------------------------------
public class JITBugSubclass extends JITBug
{
private boolean mResult;
public JITBugSubclass()
{
}
protected void resolveArg(int pArgIx, String pArg) throws DataTypeException
{
if (pArgIx == 0)
if (Boolean.valueOf(pArg).booleanValue())
mResult = !Boolean.valueOf(pArg).booleanValue();
else if (pArg.compareToIgnoreCase("false")== 0)
mResult = true;
else
throw new DataTypeException("["+pArg+"] is not a proper boolean value");
return;
}
}
3. Error message:
A nonfatal internal JIT (3.00.078(x)) error 'MA_TryTempStore' has occurred in :
'JITBug.compileArgs (Ljava/util/List;)V': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi
4.
5. D:\>java -version:
java version "1.2.1"
Classic VM (build JDK-1.2.1-A, native threads)
D:\>java -fullversion:
java full version "JDK-1.2.1-A"
6. I'm using symcjit.dll Symantec Java! JustInTime Compiler Version 3.00.078
(Review ID: 85101)
======================================================================