rather bizarre bug that we're having problems nailing down.
Customer has BEA weblogic running in a cluster with JDK 1.3.1_07. machines are the same and configures the same. Sun Netra T4 (2 X UltraSPARC-III), 2 CPU, 4GB MEM, 2x 36GB disk Only one of them shows this error. It used to be a backup so they weren't too concerned about the exception, but now it's been moved into production. This gets thrown once a second.
This shows up in 1.3.1_03 and also 1.3.1_08(only other versions tested)
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <kernel> <000802> <ExecuteRequest failed
java.lang.RuntimeException: Assertion botch: excessivly large digit 891908706
java.lang.RuntimeException: Assertion botch: excessivly large digit 891908706
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <HTTP> <101214> <Included resource or file "/managed_content/webapp/components/dev2dev/docs/jmsfaq.html" not found from requested resource "/docs/jmsfaq.jsp".>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <kernel> <000802> <ExecuteRequest failed
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
The snippet of code that is producing the problem is
long milsec = System.currentTimeMillis() -
metrics.getInvokeTime();
Float sec = new Float(milsec / 1000.0);
try {
buff.append(sec.toString());
.......
now the really bizarre thing is that when we put a debug line
(system.out.println("The value is" + value) ) in to see what the value actually is the problem goes away.
Running with -Xint the problem goes from once a second to about 4-5 times per day so this doesn't appear to be JIT specific.
Looks like it could be timing related.
Customer has BEA weblogic running in a cluster with JDK 1.3.1_07. machines are the same and configures the same. Sun Netra T4 (2 X UltraSPARC-III), 2 CPU, 4GB MEM, 2x 36GB disk Only one of them shows this error. It used to be a backup so they weren't too concerned about the exception, but now it's been moved into production. This gets thrown once a second.
This shows up in 1.3.1_03 and also 1.3.1_08(only other versions tested)
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <kernel> <000802> <ExecuteRequest failed
java.lang.RuntimeException: Assertion botch: excessivly large digit 891908706
java.lang.RuntimeException: Assertion botch: excessivly large digit 891908706
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <HTTP> <101214> <Included resource or file "/managed_content/webapp/components/dev2dev/docs/jmsfaq.html" not found from requested resource "/docs/jmsfaq.jsp".>
<Apr 23, 2003 1:03:09 PM PDT> <Error> <kernel> <000802> <ExecuteRequest failed
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
java.lang.RuntimeException: Assertion botch: excessivly large digit 20
at java.lang.FloatingDecimal.dtoa(FloatingDecimal.java:760)
at java.lang.FloatingDecimal.<init>(FloatingDecimal.java:500)
at java.lang.Float.toString(Float.java:124)
at java.lang.String.valueOf(String.java:2152)
at java.lang.Float.toString(Float.java:278)
at weblogic.servlet.logging.TimeLogField.logField(TimeLogField.java:37)
at weblogic.servlet.logging.ELFLogger.log(ELFLogger.java:138)
at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:324)
at weblogic.servlet.internal.HttpServer.log(HttpServer.java:954)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1198)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2549)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
The snippet of code that is producing the problem is
long milsec = System.currentTimeMillis() -
metrics.getInvokeTime();
Float sec = new Float(milsec / 1000.0);
try {
buff.append(sec.toString());
.......
now the really bizarre thing is that when we put a debug line
(system.out.println("The value is" + value) ) in to see what the value actually is the problem goes away.
Running with -Xint the problem goes from once a second to about 4-5 times per day so this doesn't appear to be JIT specific.
Looks like it could be timing related.
- relates to
-
JDK-4916788 Double.toString generates "Assertion botch" RuntimeException
-
- Closed
-