Problematic. Nu încercaţi asta acasă. Cel puţin în configuraţie cu Java 1.5 şi Tomcat 5.5 (Jasper compiler).
Mă trezeam la unele treceri prin cod (în mod consecvent la apelarea scriptului cu aceiaşi parametri, dar nu cu oricare) cu nişte excepţii ciudate. Dădea java.lang.AbstractMethodError atunci când apelam Collections.sort pe o colecţie de obiecte de un anume tip. Metoda care chipurile era abstractă era... mergeSort, din clasa Array. WTF? Nu are cum să fie abstractă, este implementată de Sun!
Nu mi-am putut explica, mai ales că googlind nu am găsit nimic util, dar intuiţia m-a ghidat bine şi am înlocuit generics cu un coding style de pe vremea lui Java 1.4 şi problema s-a rezolvat. Absolut curios. Clasa java generată de compilatorul de JSP arăta foarte sănătos, cu generics la locul lor şi avea sens perfect. Ce mai introduce Jasper în clasele alea sau ce foloseşte ca să compileze class-urile e altă mâncare de peşte şi se pare că în zona asta trebuie umblat cu grijă.
Wednesday, 7 November 2007
Tuesday, 6 November 2007
Aventuri cu OpenOffice
OpenOffice prezintă un API foarte interesant. Cu ajutorul acestuia, se pot converti documente din diverse formate lizibile de OpenOffice (adică atât OpenDocument, cât şi formate Microsoft - Excel, Word, etc) în... alte formate, de exemplu în html sau în imagini.
Lucrând la o aplicaţie care se foloseşte de aceste tehnologii, am actualizat bibliotecile care implementează acel API, aducându-le de la versiunea 1.9 (care era un fel de OOo 2 beta) la cele de 2.0.3.
După un timp, au început să curgă erori. Citind în acest blog, în limba germană, un post tradus paragraf cu paragraf de Altavista Babelfish (care, apropo, funcţionează mai bine decât acum ceva ani, are probleme mai mult de topică), am constatat că buba era de la jar-urile incluse în proiect. Eu le pusesem pe cele de Linux (mai precis cele venite la pachet cu Ubuntu) şi care erau pur şi simplu proaste.
Nu ştiu cine a împachetat acele jar-uri. Dacă sunt cei de la Ubuntu, îmi confirmă nişte păreri privind această distribuţie. Dacă sunt cei de la Sun, nu pot decât să mă mir de compania care a inventat Java şi de felul în care nu ştiu oamenii de acolo să împacheteze jar-urile.
Soluţia evidentă a fost să cotrobăi pe un server după jar-urile venite cu versiunea OpenOffice de Windows şi totul a mers strună.
Lucrând la o aplicaţie care se foloseşte de aceste tehnologii, am actualizat bibliotecile care implementează acel API, aducându-le de la versiunea 1.9 (care era un fel de OOo 2 beta) la cele de 2.0.3.
După un timp, au început să curgă erori. Citind în acest blog, în limba germană, un post tradus paragraf cu paragraf de Altavista Babelfish (care, apropo, funcţionează mai bine decât acum ceva ani, are probleme mai mult de topică), am constatat că buba era de la jar-urile incluse în proiect. Eu le pusesem pe cele de Linux (mai precis cele venite la pachet cu Ubuntu) şi care erau pur şi simplu proaste.
Nu ştiu cine a împachetat acele jar-uri. Dacă sunt cei de la Ubuntu, îmi confirmă nişte păreri privind această distribuţie. Dacă sunt cei de la Sun, nu pot decât să mă mir de compania care a inventat Java şi de felul în care nu ştiu oamenii de acolo să împacheteze jar-urile.
Soluţia evidentă a fost să cotrobăi pe un server după jar-urile venite cu versiunea OpenOffice de Windows şi totul a mers strună.
Friday, 2 November 2007
PreparedStatements în MS SQL
Un exemplu de bad programming văzut de curând ajunsese să genereze un prepared statement cu număr indefinit de parametri. Se pare că nu poţi face aşa ceva, mai ales în MS SQL, unde numărul limită de parametri pe un prepared statement este de 2000.
Subscribe to:
Posts (Atom)