Wednesday, December 19, 2007
Done for the term
Finally, I'm done school for the term. Just returned from my last exam. I expected it to be really hard but it turned out to be really easy. :-)
It would be nice to take some time off but thanks to shitty circumstances that I hope improve soon, I don't have that luxury.
Patched Oracle's code
I'm upgrading an old WebObjects 5.2.x application to run on WebObjects 5.4 on Leopard with Java 1.5. The old Oracle classes they were using didn't seem to work with the new stack, so I'm using their latest JDBC jar now. While I can at least connect with the new jar, WebObjects punts when it asks the JDBC driver to fetch the data type metadata from the database.
At first I thought it was a bug in my code, but it turns out it's actually a bug in Oracle's code. Using the debugger, breaking on SqlException and digging around in memory, I found the SQL string that the Oracle code had generated to send to the database, and found a typo in it.
It should have read "SELECT ..., 93 as data_type, ..." but instead it said "SELECT ..., 93as data_type, ...".
Using the javap tool I was able to inspect the JVM instructions the OracleDatabaseMetaData class was using, and confirm there *is* actually a space missing before the word "as" in the SQL and it's out of my control.
Then I got the bright idea to patch the bytecode. :-)
There's a tool called the Class Construction Kit available from the old BCEL site on Sourceforge. It lets you inspect AND modify Java class files.
I loaded the class file using CCK, it was trivially easy to fix the code. Then it was just a matter of putting the exploded jar file into my classpath and bingo, problem solved, no more SqlException, and my application runs!
It's a good thing I just learned the JVM instruction set for our compiler class this term, it would have been a lot harder to diagnose and fix this problem without that experience.
And people say going back to school was a waste. Hardly.
Thursday, December 13, 2007
oil += pringleRecycler.process(garbage)
PopSci's Best of What's New 2007
Wednesday, December 12, 2007
It's _easy_ to install a Subversion Server on Leopard
Sonzea.com: Installing a Secure Subversion Server on Leopard
These instructions are complete, easy to understand, they WORKED the first time, what a great find.
What's really nice is how little you have to install yourself to get this working. Leopard (client) comes with Apache 2 and Subversion 1.4.4 so all there is to it is a little bit of simple configuration. Getting TRAC set up as well is just a bonus.




