  lev Napoleon is always right Premium,Ex-mod 2002-08 join:2001-05-30 Chicago, IL clubs: 
·AT&T Midwest
| Java errors with SBC Speedtest
For a long time, many of us have had slow starts with the SBC Speedtest, or complete failures.
I'm using JRE version 1.5.0_02 Java HotSpot(TM) Client VM on Mac OS X 10.4.2, with Firefox 1.0.6, and decided to open up the Java console to see why the test freezes.
I got the following for Elmhurst:
[starting up Java Applet Security @ Sat Aug 13 06:29:57 CDT 2005] Exception in thread "Thread-7" java.lang.NullPointerException at java.applet.Applet.getParameter(Applet.java:168) at speed.run(speed.java:142) at java.lang.Thread.run(Thread.java:613) Sat Aug 13 06:29:58 CDT 2005 JEP creating applet speed (http://speedtest-emhril.emhril.sbc *global.net/speedtest/)
(*) WARNING 1 long line(s) split I get this for Chicago
Exception in thread "Thread-11" java.lang.NullPointerException at java.applet.Applet.getParameter(Applet.java:168) at speed.run(speed.java:142) at java.lang.Thread.run(Thread.java:613) Sat Aug 13 06:34:11 CDT 2005 JEP creating applet speed (http://speedtest-chcgil.chcgil.sbc *global.net/speedtest/)
(*) WARNING 1 long line(s) split The second time through, I'll just see:
Sat Aug 13 06:37:10 CDT 2005 JEP creating applet speed (http://speedtest-emhril.emhril.sbc *global.net/speedtest/)
(*) WARNING 1 long line(s) split and everything works fine.
Can anyone else with first-time failures open up a Java console and see if they're getting similar errors? |
|
  WaukMan Premium join:2004-01-01 Waukesha, WI
·AT&T Midwest
2 edits | I have been having problems with the speed test for months and have been seeing the following error:
Exception in thread "Thread-6" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source)
Of course, I see other odd problems of late with things that are running java so I had assumed it was something specific to my machine. I have also found that if you hit reload that the test will restart and usually succeed at that point.
Here is the full trace info: basic: Registered modality listener liveconnect: Invoking JS method: document liveconnect: Invoking JS method: URL basic: Referencing classloader: sun.plugin.ClassLoaderInfo@15bdc50, refcount=1 basic: Added progress listener: sun.plugin.util.GrayBoxPainter@9e5c73 basic: Loading applet ... basic: Initializing applet ... basic: Starting applet ... network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with proxy=DIRECT network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with cookie "speedtest=1" basic: Loading »speedtest-emhril.emhril.sbcgloba···ed.class from cache Exception in thread "Thread-36" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source) network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with proxy=DIRECT network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with cookie "speedtest=1" basic: Loading »speedtest-emhril.emhril.sbcgloba···ed.class from cache
One other interesting observation:
In a successful run the first network connect is as follows: network: Connecting »speedtest-emhril.emhril.sbcgloba···test/56k with proxy=DIRECT network: Connecting »speedtest-emhril.emhril.sbcgloba···test/56k with cookie "speedtest=1"
vs the network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with proxy=DIRECT network: Connecting »speedtest-emhril.emhril.sbcgloba···ed.class with cookie "speedtest=1"
It is hard to exactly speculate what is going on without see the underling code, but it looks like when the failure occurs the connect string that is created is not being created correctly. Since in a good run you don't see the .../speedtest/speed.class statement. |
|
  Chopstix
join:2000-06-12 Monroe, MI | reply to lev Whenever I do a fresh install, one of the things I install is MS Java Virtual Machine. Speed test runs fine thereafter. |
|
  lev Napoleon is always right Premium,Ex-mod 2002-08 join:2001-05-30 Chicago, IL clubs:  | MS Java virtual machine doesn't install on non-Windows environments. |
|
 trader22 Premium join:2003-11-12 Nashotah, WI
1 edit | reply to lev A null pointer exception is surely the result of a programming error in the java applet. An intermittent or a not always reproduceable null pointer exception is very likely caused by a thread synchronization error.
Java is multithreaded. Thread A initializes a parameter that thread B needs. But someone forgot to make sure thread A always executes before thread B. If B executes before A, the parameter is not initialized and there is a null pointer exception.
Unsynchronized thread execution order can vary somewhat randomly. But the order can be effected by things such as which VM version is being used, what OS and OS version is being used, what specific hardware the VM runs on, and just plain other random factors.
Edit:
Someone should tell SBC their applet is buggy and has a programming error. |
|
  lev Napoleon is always right Premium,Ex-mod 2002-08 join:2001-05-30 Chicago, IL clubs: 
·AT&T Midwest
| said by trader22 :Someone should tell SBC their applet is buggy and has a programming error. Hence, this thread. I just wanted to make certain this problem wasn't limited to the Mac version of Java 1.5. |
|
  DyerUser Premium join:2004-01-29 Dyer, IN
·AT&T Yahoo
| Exception in thread "Thread-13" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source) Chicago speedtest. Win XP. Sun's JRE version 1.5.0_04. |
|
 trader22 Premium join:2003-11-12 Nashotah, WI
| reply to lev Ok.
But even if it just exposed itself in Mac JVM 1.5 doesn't mean it might not surface in some other VM at some other time. Its still a programming error. Multithreaded programming environments, including Java, never guarantee the order of thread execution without explict thread synchronization.
Any competent Java programmer should be able to recognize that your error message results from a programming error in the applet. Even if only happens 1 in a 1000 cases. Thread synch issues are sometimes like that and can be hard to pin down until you capture the actual error message. Your error message even tells them the exact line number in the exact source file where the error originates. Should be easy to fix. |
|
  lev Napoleon is always right Premium,Ex-mod 2002-08 join:2001-05-30 Chicago, IL clubs:  | Easy to fix, yes.
Easy to get someone to fix it? Ah... therein the problem lies.
Still, it's about time we try. |
|
 trader22 Premium join:2003-11-12 Nashotah, WI
| Well, if its quantity you want to get them to do something, here's this using Mozilla Firefox 1.0.6 and using this OS:
$ uname -a Linux ns0 2.6.12-gentoo-r4 #1 SMP Fri Jul 8 06:59:38 CDT 2005 i686 Int el(R) Pentium(R) 4 CPU 2.80GHz GenuineIntel GNU/Linux
Java Plug-in 1.5.0_04 Using JRE version 1.5.0_04 Java HotSpot(TM) Client VM
Exception in thread "Thread-6" java.lang.NullPointerException at java.applet.Applet.getParameter(Applet.java:168) at speed.run(speed.java:142) at java.lang.Thread.run(Thread.java:595)
(This is actually the first time the speed test has hung for me in a long time) |
|
  wavguy2003 370's Forever Premium join:2004-03-18 Saint Charles, IL
·AT&T Yahoo
·AT&T Midwest
| reply to lev Here's what I get. Looks like the same thing:
Exception in thread "Thread-6" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source)
Firefox 1.0.6 with JRE 1.5.0_04 on WXP SP2. |
|
  wayjac Premium,MVM join:2001-12-22 Indy
·AT&T Midwest
| reply to lev IE 6.0.2900 with SP2
Java Plug-in 1.5.0_04 Using JRE version 1.5.0_04 Java HotSpot(TM) Client VM Exception in thread "Thread-5" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source)
Speed test works every time on computer with Yahoo browser/IE 6.0.2900 with SP2 -- God bless our troops |
|
  xzr1tv
join:2000-05-26 Dayton, OH | Have you tried updating and seeing what is available? Recently for Windows, a -b05 patch level has been made available... |
|
  wavguy2003 370's Forever Premium join:2004-03-18 Saint Charles, IL 1 edit | Tried it. No difference.
It's coming down to a problem with the applet and not Java itself. |
|
 audiog
join:2004-08-09 Detroit, MI
| i just started to get this error when java upgraded to 1.5.0_04. I tried a fresh install but still the same error.
Exception in thread "Thread-6" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source) I have FireFox 1.0.6 and IE6 sp2 with Java 1.5.0_04. and windows xp sp2 |
|
  xzr1tv
join:2000-05-26 Dayton, OH | reply to wavguy2003 ok, Have you tried deleting the applet, or going to a site that you have never gone to for the speedtest? Java stores the applets in cache and for some reason, there is one for each site... |
|
 jeffkrol
join:2004-02-22 Stevens Point, WI
·AT&T Midwest
1 edit | There's a Windows program that is installed by default in XP home (don't think it's installed in XP pro) that causes all sorts of JAVA problems. Will let you know as soon as I find it again. It's called Windows messenger (but not WINDOWS Messenger, confusing but true) One way to remove it is in add/remove but you have to make it visible. Think the executable is msmngr.exe, or msmgr.exe. It's a PIA to remove sort of. Had JAVA problems for years till I removed it. You can stop the executable in ctrl/alt/del but it will return on reboot. Will dig up the old info but anyone w/ this executable running can have massive JAVA headaches. Or at least I did. Haven't had any since. There's an old thread here about it somewhere. Found it: Two links: Myitforum is a good way. I can easily re-install (have no clue why I would)through Add/ remove Windows components. »myitforum.techtarget.com/article···?id=7033 »www.wilderssecurity.com/showthre···?t=29167 |
|
  wavguy2003 370's Forever Premium join:2004-03-18 Saint Charles, IL
·AT&T Yahoo
·AT&T Midwest
| reply to xzr1tv I deleted everything from the cache. All applets. It still fails the first time.
Exception in thread "Thread-5" java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at speed.run(speed.java:142) at java.lang.Thread.run(Unknown Source) |
|
  WaukMan Premium join:2004-01-01 Waukesha, WI | Based on my experience this is not a cache problem. It really looks like the string to the website is not formed correctly. |
|
 trader22 Premium join:2003-11-12 Nashotah, WI
1 edit | This is a thread syncronization issue. No more, no less.
When an Applet is loaded into a browser, it calls the function init(). In this Applet, the init function initializes some parameters. In the meantime, this Applet as been configured to start a thread to do the actual speed test. It starts right away. It does not wait for the init() function to complete which is running in a different thread. It attempts to access some parameters using the getParameter() call. If init() hasn't finished and hasn't initialized the relevant parameters, the result is a NullPointerException when getParameter() is called, as shown in all the error messages posted . The speed test thread stops at that point and doesn't complete.
The reason it works sometimes and not others is that sometimes the init() function has completed early enough, before the test thread starts (or gets very far along) so the parameters are initialized.
Its a programming error by whoever wrote the applet for SBC.
Lots of factors can affect when the speed test thread starts relative to the completion of the init() call. It can be different with different VMs. Different hardware. Different OSs. Different loads on the machine. Different invocations/restarts of the applet. And, a zillion other factors.
The only way to solve this problem reliably is for SBC to reprogram the applet.
Edit:
This problem can be solved by moving a single line of code in the applet from one location to another and recompiling the applet. Should take less than 60 seconds to fix. All they need to do is start the speed test thread at the end of the init() function, as recommended in the Sun Java documentation, rather than in the speed class constructor. |
|