[Classifier4j-devel] Update Word Probability Break Down
Status: Beta
Brought to you by:
nicklothian
From: Matt C. <MCo...@my...> - 2003-11-12 15:32:35
|
Hi Nick, yes I am using the latest CVS code. How did you determine that the problem resides in the createTable function? Have you been able to reproduce the problem? I am not catching an exception there, I'm catching it in the updateWordProbability. I am including the stack trace and my JDBCWordsDataSource with the additional debug code in it. I am still configured to use HSQLDB which is reflected in the trace. Matt Collier RemoteIT mco...@my... 877-4-NEW-LAN -----Original Message----- From: Nick Lothian <nl...@es...> To: Classifier4J <cla...@li...> Date: Wed, 12 Nov 2003 16:19:47 +1030 Subject: RE: [Classifier4j-devel] Update Word Probability Break Down > > > ---- > > More data on this issue: > > > > Switching to HSQLDB produces the exact same results. I have > > attached the > > revised connect.java. for use with HDSQLDB. > > ---- > > Another interesting discovery. If I attempt to run > > connect.java a second time > > immediately after running it the first time when in errors > > out, the following > > message is displayed immediately: > > > > WordsDataSourceException Occurred : Problem creating table > > java.lang.IllegalArgumentException: IWordsDataSource can't be null > > at net.sf.classifier4J.bayesian.BayesianClassifier.<init> > > (BayesianClassifier.java:141) > > at net.sf.classifier4J.bayesian.BayesianClassifier.<init> > > (BayesianClassifier.java:128) > > at net.sf.classifier4J.bayesian.BayesianClassifier.<init> > > (BayesianClassifier.java:118) > > at Connect.main(Connect.java:26) > > Exception in thread "main" > > > > However, if I wait about 60-90 seconds between executions, it > > will process the > > ~3900 records again and die. > > ---- > > You are getting the second exception trace > (ava.lang.IllegalArgumentException: IWordsDataSource can't be null) because > you are ignoring the WordsDataSourceException, which means that the > IWordsDataSource you are using is null. That make sense. > > Exactly why you are getting the original problem is escapign me at the > moment. > > The error comes from line 247 in the CVS version of JDBCWordsDataSource.java > (you are using the CVS version, right?). > > It occurs if an exception occurs somewhere in the following code: > > 224 con = > connectionManager.getConnection(); > 225 > 226 // check if the word_probability > table exists > 227 DatabaseMetaData dbm = > con.getMetaData(); > 228 ResultSet rs = dbm.getTables(null, > null, "WORD_PROBABILITY", null); > 229 if (!rs.next()) { > 230 // the table does not exist > 231 Statement stmt = > con.createStatement(); > 232 // Under Axion 1.0M1, > use > 233 // stmt.executeUpdate( > "CREATE TABLE word_probability ( " > 234 // + " > word VARCHAR(255) NOT NULL," > 235 // + " > category VARCHAR(20) NOT NULL," > 236 // + " > match_count INTEGER NOT NULL," > 237 // + " > nonmatch_count INTEGER NOT NULL, " > 238 // + " > PRIMARY KEY(word, category) ) "); > 239 stmt.executeUpdate( "CREATE > TABLE word_probability ( " > 240 + " word > VARCHAR(255) NOT NULL," > 241 + " category > VARCHAR(20) NOT NULL," > 242 + " match_count > INT DEFAULT 0 NOT NULL," > 243 + " > nonmatch_count INT DEFAULT 0 NOT NULL, " > 244 + " PRIMARY > KEY(word, category) ) "); > 245 } > > There are three possiblities here > > 1) connectionManager.getConnection(); is failing > 2) DatabaseMetaData dbm = con.getMetaData(); or ResultSet rs = > dbm.getTables(null, null, "WORD_PROBABILITY", null); is failing > 3) The create table query is failing. > > I suspect it is one of the first two. I found a reference to MySQL giving > incorrect error messages when tables are missing > <http://dbforums.com/arch/174/2003/10/952374>, and the error given is the > error you were getting when you were using MySQL. > > Could you put an e.printStackStrace() in where it catches the SQLException > (ie, just before line 247) and send the stack trace you get? > > Nick > > > > > ------------------------------------------------------- > This SF.Net email sponsored by: ApacheCon 2003, > 16-19 November in Las Vegas. Learn firsthand the latest > developments in Apache, PHP, Perl, XML, Java, MySQL, > WebDAV, and more! http://www.apachecon.com/ > _______________________________________________ > Classifier4j-devel mailing list > Cla...@li... > https://lists.sourceforge.net/lists/listinfo/classifier4j-devel |