Changeset 37


Ignore:
Timestamp:
Aug 29, 2012 4:43:14 PM (5 years ago)
Author:
psaiteja
Message:

Corrected a mistake in the UDP run method. When receiving hash entries in bulk from the VSN server, any empty bytes in the UDP packet were being treated as part of the string being processed. This resulted in String index out of bounds error when searching for tab delimiter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • VSNClient/appClientModule/ClientProxy.java

    r35 r37  
    184184 
    185185                        try { 
    186                                 conn = DriverManager.getConnection("jdbc:derby:testdatabase"); 
     186                                conn = DriverManager.getConnection("jdbc:derby:clientdatabase"); 
    187187                                System.out.println("Database exists"); 
    188188                                DatabaseMetaData dbmd = conn.getMetaData(); 
     
    212212                                                        .println("Database does not exist, creating database and table"); 
    213213                                        conn = DriverManager 
    214                                                         .getConnection("jdbc:derby:testdatabase;create=true"); 
     214                                                        .getConnection("jdbc:derby:clientdatabase;create=true"); 
    215215                                        Statement stmt = conn.createStatement(); 
    216216                                        stmt.executeUpdate("CREATE TABLE ClientHashlist (UrlHash VARCHAR(40) NOT NULL PRIMARY KEY, ObjectHash VARCHAR(40) NOT NULL, hashTime TIMESTAMP NOT NULL)"); 
     
    332332                                if(IPAddress.equalsIgnoreCase(fwdServer) && port == fwdUdpPort){ 
    333333                                        String data = new String(receivePacket.getData()); 
    334                                         System.out.println("UDP data:"+data); 
    335334                                         
    336                                         String [] data_array = data.split("\\n"); 
     335                                        String [] data_array = data.split("\n"); 
    337336                                         
    338337                                        for(int i=0;i<data_array.length;i++){ 
    339338                                                if(data_array[i].length()>0){ 
     339                                                        if(data_array[i].indexOf("\t")<0) 
     340                                                                break; 
    340341                                                        String urlhash = data_array[i].substring(0, data_array[i].indexOf("\t")); 
    341342                                                        data_array[i] = data_array[i].substring(data_array[i].indexOf("\t")+1); 
     
    375376                                                } 
    376377                                        } 
    377                                         System.out.println("Updated client hashlist by adding/updating "+(data_array.length-1)+" entries"); 
     378                                        if(data_array.length == 1) 
     379                                                System.out.println("Updated client hashlist by adding/updating "+(data_array.length)+" entries"); 
     380                                        else 
     381                                                System.out.println("Updated client hashlist by adding/updating "+(data_array.length-1)+" entries"); 
    378382                                } 
    379383                        } 
Note: See TracChangeset for help on using the changeset viewer.