Monday, July 21, 2008

Changing fan on Thinkpad T41



After four years in service, the fan of my Thinkpad T41 started to fail. The computer either wouldn't boot with "fan error" message at boot time if the fan doesn't start or the fan would whine causing video card to overheat, freezing X11. Time to change the fan.

I found the fan part number at IBM's website, it was "CPU Fan Long", FRU 13N5341. I searched online shops for the part, finding several listing the fan from anywhere from $30 to $80. At three different cheapest stores, I tried to order the fan and failed, each time the store canceling my order because the fan was out of stock. Then, I found the IBM parts store, 1-800-388-7080. At the IBM store, the fan was $58 and 1-2 day shipping via DHL was $15, an amazing deal. They just changed the part number to 91P9252. I ordered the fan on Friday. On Monday I received a new looking fan, nicely packaged, with thermal gel intact (covered with a removable film) and thermal grease pre-applied in the right place (gel above the video card heat sink and the grease above the CPU).

The hardest part was removing the old fan. I had to find just the right screwdriver (Philips #1 from my toolkit having Ph 0..3) and applying drops of WD-40 to the fan screws. Once the fan was out, putting new fan and closing the laptop was a piece of cake. The laptop booted just fine and noise disappeared. Let's hope the thermal gel and grease adhere correctly, but it looks like IBM still got the chops. Let's hope new Chinese owners (Lenovo) won't screw it up.

Friday, July 11, 2008

NoClassDefFoundError: oracle/gss/util/NLSLocale

When I upgraded my Oracle JDBC driver to 10.2.0.4, Oracle XSQL Utility started giving me the following exception when using "-encoding UTF-8"

Exception in thread "main" java.lang.NoClassDefFoundError: oracle/gss/util/NLSLocale
at oracle.xml.sql.XSULocale.getJavaCharset(XSULocale.java:122)
at OracleXML.To_XML(OracleXML.java:1092)
at OracleXML.ExecuteGetXML(OracleXML.java:917)
at OracleXML.main(OracleXML.java:185)

Ok, it turns out that in Oracle 10.2.0.4, some classes that used to be in
orai18n.jar got separated into their own jars, which are shipped with Oracle
XDK, not with Oracle JDBC drivers. For example, oracle.gss.util.NLSLocale is now in $XDKHOME/jlib/orai18n-mapping.jar.