Jeste upresneni

     - ISO2 kod ceske republiky je "CZ", ISO2 kod cestiny je "cs", dole jsem
 to prehodil... :-)

         Ahoj, Archie.

> ----- Original Message ----- 
> From: "Artur Linhart - Java Communication" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Friday, September 01, 2006 10:10 AM
> Subject: Re: CachedRowSet+nullPointerException
>
>
> > Ahoj,
> >
> >     Nasel jsem k tomu na
> > (http://forum.java.sun.com/thread.jspa?forumID=423&threadID=540624)
> > nasledujici vysvetleni i s dekompilovanym zdrojakem:
> >
> > I encountered your same error with JDBC RowSet trying to run the
> > JdbcRowSetSample example.
> > After having downloaded a Java disassembler (JAD), I decompressed
> rowset.jar
> > in a directory and disassembled the JdbcRowSetResourceBundle class.
> > Luckily the bug in the constructor was very easy to find:
> >
> > private JdbcRowSetResourceBundle()
> > throws IOException
> > {
> > Locale locale = Locale.getDefault();
> > String s = locale.getCountry();
> > if(!s.equals("") && !s.equals("US"))
> > propResBundle = new
> >
>
PropertyResourceBundle(Thread.currentThread().getContextClassLoader().getRes
> > ourceAsStream("com/sun/rowset/RowSetResourceBundle_" + s + "." +
> > "properties"));
> > else
> > propResBundle = new
> >
>
PropertyResourceBundle(Thread.currentThread().getContextClassLoader().getRes
> > ourceAsStream("com/sun/rowset/RowSetResourceBundle.properties"));
> > }
> >
> > In practice the library cannot work on a machine with Locale different
> from
> > US, because the only Resource Bundle present in rowset.jar is
> > RowSetResourceBundle.properties, while on such a machine this class
tries
> to
> > read RowSetResourceBundle_<Locale.getCountry()>.properties.
> > So I copied the RowSetResourceBundle.properties file, renamed the copy
in
> > RowSetResourceBundle_<Locale.getCountry()>.properties and added it to
the
> > rowset.jar archive.
> > Now everything works perfectly !
> > Alternatively you could change your Locale to US locale.
> >
> > Happy to have solved a problem to you (and to me of course) !
> >
> >
> > Cili jedna se o RowSetResourceBundle, coz jsi asi zjistil - ale hlavni
> > problem je IMHO v tom, ze na misto _<LOCALE> se tady odcividne dosazuje
> > country code a ne language code, coz mi teda neni jasne, myslel jsem, ze
> > jako prvni se pise vzdycky language - Tzn. zjisti si countrycode z
> > aktualniho locale (To asi neni CZ, ale mozna CS u Ceske republiky) - a
> taky
> > pozor na velka pismena, u language jsou mala, u country velka. Nejenom
ze
> je
> > to blbe naprogramovane, protoze standardne by se melo skakat vzdy po
> > nejpodobnejsich resourcech a tudiz pokud nejsou by to melo vzit primo
ten
> > RowSetResourceBundle.properties, ale i ten primo countrycode za tim
> resource
> > bundlem je spatne a mel by tam byt language code a country code az na
> druhem
> > miste - viz dokumentace k ResourceBundle.java:
> >
> >  * Each resource bundle in a family contains the same items, but the
items
> > have
> >  * been translated for the locale represented by that resource bundle.
> >  * For example, both "MyResources" and "MyResources_de" may have a
> >  * <code>String</code> that's used on a button for canceling operations.
> >  * In "MyResources" the <code>String</code> may contain "Cancel" and in
> >  * "MyResources_de" it may contain "Abbrechen".
> >  *
> >  * <P>
> >  * If there are different resources for different countries, you
> >  * can make specializations: for example, "MyResources_de_CH" contains
> > objects for
> >  * the German language (de) in Switzerland (CH). If you want to only
> >  * modify some of the resources
> >  * in the specialization, you can do so.
> >
> > - Takze jestli neni problem v tom, ze to prejmenujes treba na *_en nebo
na
> > *_cz ale oni tam vyzaduji jako kod *_US, resp. *_CS...
> >
> >     Drzim palce,
> >
> >         Ahoj, Archie
> >
> > ----- Original Message ----- 
> > From: <[EMAIL PROTECTED]>
> > To: <[email protected]>
> > Sent: Friday, September 01, 2006 9:32 AM
> > Subject: RE: CachedRowSet+nullPointerException
> >
> >
> > > To Artur:
> > > Velice dekuji za alespon jeden nazor a ochotu. Cenim si toho.
> > >
> > > Prohledal jsem snad vsechno co mi google vyplivnul na toto tema.
Vcetne
> > > samozrejme oficialni diskuza na forums.java.sun.com
> > > Vsude kdyz uz je nejaka odpoved. tak je zmenit nazev
> > > RowSetResourceBundle.properties
> > > na
> > > RowSetResourceBundle_<LOCALE>.properties
> > >
> > > Toto jsem zkousel. Bohuzel bezvysledne. Stejne tak jsem zkousel podle
> > Arturova
> > > napadu kombinace JdbcRowSetResourceBundle.properties ci
> > > JdbcRowSetResourceBundle.properties bohuzel taky bezvysledne. I kdyz
zda
> > se to
> > > rozumne. Jelikoz vsechny hlavni klasy tam zacinaji Jdbc. Ted tedy
zkusim
> > jeste
> > > najit primo zdrojaky ci nejakou kloudnou dokumentaci a popatrat, jakej
> > > properties file tam tedy opravdu inicializuje.
> > >
> > > Toto je jedina vec na Jave, ktera me opravdu nesmirne vadi. Ze obcas
to
> > > pripomina spis alchymii. Hlavne dle meho soudu CachedRowSet je pomerne
> > hojne
> > > pouzivany. Tento bug, ktery zde popisuji je znam uz vice nez dva roky
a
> do
> > teto
> > > chvile nejenze nikdo nevydal bugfix, ale na celym internetu nenajdete
> > kloudnou
> > > odpoved od vyvojaru, na oficialnim foru ci proste nekde tak :o) Mozna
> jsem
> > jen
> > > blbej a nekde jsem neco prehlidnul, ale vzhledem k tomu, ze nad timto
> > problemem
> > > sedim uz druhy den,to na me presne takto pusobi.
> > >
> > > BTW: Nenapadl by nekoho jiny rozumny zpusob jak cachovat data, aby se
v
> > nich
> > > dalo listovat?
> > >
> > > Poznamka:
> > > Omlouvam se, ze neudrzuji historii, maily mam stazeny a archivovany
doma
> > >
> > > Diky
> > > Zdenek Kasparek
> > >
> > > ----------------------------------------------------------------
> > > This message was sent using IMP, the Internet Messaging Program.
> >
> > ----- Original Message ----- 
> > From: "Artur Linhart - Java Communication" <[EMAIL PROTECTED]>
> > To: <[email protected]>
> > Sent: Friday, September 01, 2006 7:13 AM
> > Subject: Re: CachedRowSet+nullPointerException
> >
> >
> > > Ahoj,
> > >
> > >     nemam bohuzel k dispozici zdrojaky od tridy
JdbcRowSetResourceBundle
> > > (ani classu - ve standardnim J2SE JDK 1.4.1 jsem ji nenasel) tak
doufam
> ze
> > > nebudu placat uplne nesmysly, ale jak to popisujes, pripada mi, ze by
se
> > > melo zjistit jak se v metode
> > > com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle
> > > konstruje inputstream - podle zdrojaku trid ke kterym zdroje mam se
zda
> ze
> > > se nenajde dany property soubor a diky tomu se jako InputStream
> podstrkuje
> > > null - asi zjistit jake jmeno property souboru se tam pouziva (popr.
> odkud
> > > se generuje) a podle onoho jmena mu pak podstrcit soubor, ktery se
bude
> > > jmenovat tak, jak se ocekava (ve spravne packagi). Rekl bych, ze se
> urcite
> > > nebude jmenovat PropertyResourceBundle.properties, ale asi nejak
jinak -
> > > zrejme JdbcRowSetResourceBundle.properties (popr. napr.
> > > JdbcRowSetResourceBundle_en.properties pro anglictinu, atp.) nebo
nejak,
> > jak
> > > se to stanovi v te metode getJdbcRowSetResourceBundle...
> > > Do konstruktoru PropertyResourceBundle (InputStream stream) totiz uz
pri
> > > volani z konstruktoru JdbcRowSetResourceBundle vstupuje s nejvetsi
> > > pravdepodobnosti null, takze bych rekl ze s tridou
> PropertyResourceBundle
> > > nebo nejakou teoretickou chybou v ni to urcite souviset nebude...
> > >
> > > Prirozene je otazka jak najit spravny resource bundle - neni mozne ze
se
> > tam
> > > ma dohrat jeste nejaky jar s lokalizaci nebo neco podobneho? Kdyz se
> tehle
> > > chyby zbavis tim, ze tam das prazdny property soubor, tak to asi casem
> > > spadne na tom, ze v tom property souboru neni nejaky klic, ktery to
bude
> > > treba pozadovat...
> > >
> > > Mozna by pomohlo se podivat, jak zaridit spravne lokalizaci
CachedRowSet
> a
> > > to by mohlo vyresit tenhle problem ;-)
> > >
> > > Chyba muze souviset i s tim, ze tam sice mas nejaky spravny odvozeny
> > > resource bundle, napr. JdbcRowSetResourceBundle_cz.properties, ale
jako
> > > defaultni Locale neni nastaven jazyk ktery mu odpovida (v tomto
priklade
> > ne
> > > cestina, ale treba anglictina pro kterou resource bundle s nazvem
"*_cz"
> > > nebude s fungovat) - bylo by dobre nakopirovat
> > > (prejmenovat) takovehle nejake properties ktere tam treba existuji
> > > specificke pro jazyk na jmeno property souboru bez toho "_cz" (nebo
jine
> > > pripony) aby to fungovalo pro vsechny Locale, popr. zkusit zmenit
> > defaultni
> > > Locale...
> > >
> > > Jinak mne takhle obecne "z voleje" bez moznosti to zkoumat konkretne
nic
> > > nenapada... Treba to nejak pomuze v hledani voditka pokud to primo
Tvuj
> > > problem nebude resit...
> > >
> > >     Ahoj, Artur.
> > >
> > > ----- Original Message ----- 
> > > From: <[EMAIL PROTECTED]>
> > > To: <[email protected]>
> > > Sent: Thursday, August 31, 2006 4:58 PM
> > > Subject: CachedRowSet+nullPointerException
> > >
> > >
> > > > Dobre odpoledne,
> > > > Pokud se nekdo setkal s nize uvedenym problemem a nasel reseni. Budu
> > > nesmirne
> > > > vdecny, za kazdy poznatek.
> > > >
> > > > Mam WebAplikaci
> > > > JDK: 1.4
> > > > Tomcat: 3.2
> > > > Server: AS/400
> > > >
> > > > Volam servlet, ktery se connectuje na databazi (DB2) a vraci nejaky
> > data.
> > > > Jelikoz DB2 neumi LIMIT a ja potrebuju vracenymi daty listovat (
> rozumej
> > > > strankovat vystupni tabulku ) jal jsem se hledat reseni v cachovani
> dat
> > a
> > > > listovani z cache.
> > > >  Pouzivam rowset.jar 1.0 . Ale dostal jsem se do situace, ve ktere
> dkyz
> > v
> > > metode
> > > > servletu chci vytvorit instanci
> > > >
> > > > CachedRowSet crs     = new CachedRowSetImpl();
> > > >
> > > > dostanu nullPointerException cituji:
> > > >
> > > > java.lang.NullPointerException
> > > > at java.io.Reader.<init>(Reader.java:61)
> > > > at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
> > > > at java.util.Properties.load(Properties.java:266)
> > > > at
> > java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:96)
> > > > at com.sun.rowset.JdbcRowSetResourceBundle.<init>(Unknown Source)
> > > > at
> > >
> >
>
com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle(Unknown
> > > > Source)
> > > > at com.sun.rowset.CachedRowSetImpl.<init>(Unknown Source)
> > > >
> > > >
> > > > Cele odpoledne marne hledam smysluplne reseni. Zjistil jsem, ze se
> jedna
> > o
> > > bug
> > > > souvisejici se spatnym ctenim PropertyResourceBundle. Nasel jsem par
> > typu,
> > > ze
> > > > je potreba prejmenovat PropertyResourceBundle.properties, ale at se
> > snazim
> > > jak
> > > > chci, nedari se mi za boha hnout z mista.
> > > >
> > > > Vi nekdo co stim?????
> > > >
> > > > Poznamka:
> > > > Nemohu upgradovat JDK ani Tomcat, musim pracovat s vyse uvedenymi.
> > > >
> > > > Zdenek Kasparek
> > > >
> > > > ----------------------------------------------------------------
> > > > This message was sent using IMP, the Internet Messaging Program.
> > >
> >
>
>

Odpovedet emailem