Browse Source

Fix stupid, stupid NPE in Twitter plugin.

Fixes issue 4157

Change-Id: I156292fbd7b859ebde2e5f0428100b83ed4019e6
Reviewed-on: http://gerrit.dmdirc.com/1257
Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
Reviewed-by: Gregory Holmes <greg@dmdirc.com>
tags/0.6.4
Chris Smith 14 years ago
parent
commit
bece7966e7
1 changed files with 27 additions and 23 deletions
  1. 27
    23
      src/com/dmdirc/addons/parser_twitter/Twitter.java

+ 27
- 23
src/com/dmdirc/addons/parser_twitter/Twitter.java View File

@@ -367,54 +367,58 @@ public class Twitter implements Parser, TwitterErrorHandler, TwitterRawHandler,
367 367
             joinChannel(bits[1]);
368 368
         } else if (bits[0].equalsIgnoreCase("WHOIS") && bits.length > 1) {
369 369
             if (bits[1].equalsIgnoreCase(myServerName)) {
370
-                sendNumericOutput(311, new String[]{":"+myServerName, "311", myself.getNickname(), bits[1], "user", myServerName, "*", "Psuedo-User for DMDirc "+myServerName+" plugin"});
371
-                sendNumericOutput(312, new String[]{":"+myServerName, "312", myself.getNickname(), bits[1], myServerName, "DMDirc "+myServerName+" plugin"});
370
+                sendNumericOutput(311, new String[]{":" + myServerName, "311", myself.getNickname(), bits[1], "user", myServerName, "*", "Psuedo-User for DMDirc " + myServerName + " plugin"});
371
+                sendNumericOutput(312, new String[]{":" + myServerName, "312", myself.getNickname(), bits[1], myServerName, "DMDirc " + myServerName + " plugin"});
372 372
             } else {
373
-                final boolean forced = (bits.length > 2 && bits[1].equalsIgnoreCase(bits[2]));
374
-                final TwitterUser user = (forced) ? api.getUser(bits[1], true) : api.getCachedUser(bits[1]);
373
+                final boolean forced = bits.length > 2 && bits[1].equalsIgnoreCase(bits[2]);
374
+                final TwitterUser user = forced ? api.getUser(bits[1], true) : api.getCachedUser(bits[1]);
375 375
                 
376 376
                 if (user == null) {
377
-                    final String reason = (forced) ? "No such user found, see http://"+myAddress.getHost()+"/"+user.getScreenName() : "No such user found in cache, try /WHOIS "+bits[1]+" "+bits[1]+" to poll twitter (uses 1 API call) or try http://"+myAddress.getHost()+"/"+user.getScreenName();
378
-                    getCallbackManager().getCallbackType(NumericListener.class).call(401, new String[]{":"+myServerName, "401", myself.getNickname(), bits[1], reason});
377
+                    final String reason = "No such user found" + (forced ? ", see" : "in cache, try /WHOIS " + bits[1] + " " + bits[1] + " to poll twitter (uses 1 API call) or try") + " http://" + myAddress.getHost() + "/" + bits[1];
378
+                    getCallbackManager().getCallbackType(NumericListener.class).call(401, new String[]{":" + myServerName, "401", myself.getNickname(), bits[1], reason});
379 379
                 } else {
380 380
                     // Time since last update
381
-                    final long secondsIdle = ((user.getStatus() != null) ? System.currentTimeMillis() - user.getStatus().getTime() : user.getRegisteredTime()) / 1000;
381
+                    final long secondsIdle = (user.getStatus() == null ? user.getRegisteredTime() : System.currentTimeMillis() - user.getStatus().getTime()) / 1000;
382 382
                     final long signonTime = user.getRegisteredTime() / 1000;
383 383
 
384
-                    getCallbackManager().getCallbackType(NumericListener.class).call(311, new String[]{":"+myServerName, "311", myself.getNickname(), bits[1], "user", myServerName, "*", user.getRealName()+" (http://"+myAddress.getHost()+"/"+user.getScreenName()+")"});
384
+                    getCallbackManager().getCallbackType(NumericListener.class).call(311, new String[]{":" + myServerName, "311", myself.getNickname(), bits[1], "user", myServerName, "*", user.getRealName() + " (http://" + myAddress.getHost() + "/" + user.getScreenName() + ")"});
385 385
 
386
-                    final TwitterClientInfo client = (TwitterClientInfo)getClient(bits[1]);
386
+                    final TwitterClientInfo client = (TwitterClientInfo) getClient(bits[1]);
387 387
                     if (client != null) {
388 388
                         final StringBuilder channelList = new StringBuilder();
389 389
 
390 390
                         for (ChannelClientInfo cci : client.getChannelClients()) {
391
-                            if (channelList.length() > 0) { channelList.append(" "); }
392
-                            channelList.append(cci.getImportantModePrefix()+cci.getChannel().getName());
391
+                            if (channelList.length() > 0) {
392
+                                channelList.append(' ');
393
+                            }
394
+
395
+                            channelList.append(cci.getImportantModePrefix());
396
+                            channelList.append(cci.getChannel().getName());
393 397
                         }
394 398
 
395 399
                         if (channelList.length() > 0) {
396
-                            getCallbackManager().getCallbackType(NumericListener.class).call(319, new String[]{":"+myServerName, "319", myself.getNickname(), bits[1], channelList.toString()});
400
+                            getCallbackManager().getCallbackType(NumericListener.class).call(319, new String[]{":" + myServerName, "319", myself.getNickname(), bits[1], channelList.toString()});
397 401
                         }
398 402
                     }
399 403
 
400 404
                     // AWAY Message Abuse!
401
-                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "URL: "+user.getURL()});
402
-                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "Bio: "+user.getDescription()});
403
-                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "Location: "+user.getLocation()});
404
-                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "Status: "+user.getStatus().getText()});
405
+                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "URL: " + user.getURL()});
406
+                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "Bio: " + user.getDescription()});
407
+                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "Location: " + user.getLocation()});
408
+                    getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "Status: " + user.getStatus().getText()});
405 409
                     if (bits[1].equalsIgnoreCase(myself.getNickname())) {
406 410
                         final Long[] apiCalls = api.getRemainingApiCalls();
407
-                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "API Allowance: "+apiCalls[1]});
408
-                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "API Allowance Remaining: "+apiCalls[0]});
409
-                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":"+myServerName, "301", myself.getNickname(), bits[1], "API Calls Used: "+apiCalls[3]});
411
+                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "API Allowance: " + apiCalls[1]});
412
+                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "API Allowance Remaining: " + apiCalls[0]});
413
+                        getCallbackManager().getCallbackType(NumericListener.class).call(301, new String[]{":" + myServerName, "301", myself.getNickname(), bits[1], "API Calls Used: " + apiCalls[3]});
410 414
                     }
411 415
 
412
-                    getCallbackManager().getCallbackType(NumericListener.class).call(312, new String[]{":"+myServerName, "312", myself.getNickname(), bits[1], myServerName, "DMDirc "+myServerName+" plugin"});
413
-                    getCallbackManager().getCallbackType(NumericListener.class).call(317, new String[]{":"+myServerName, "317", myself.getNickname(), bits[1], Long.toString(secondsIdle), Long.toString(signonTime), "seconds idle, signon time"});
416
+                    getCallbackManager().getCallbackType(NumericListener.class).call(312, new String[]{":" + myServerName, "312", myself.getNickname(), bits[1], myServerName, "DMDirc " + myServerName + " plugin"});
417
+                    getCallbackManager().getCallbackType(NumericListener.class).call(317, new String[]{":" + myServerName, "317", myself.getNickname(), bits[1], Long.toString(secondsIdle), Long.toString(signonTime), "seconds idle, signon time"});
414 418
                 }
415 419
             }
416 420
 
417
-            getCallbackManager().getCallbackType(NumericListener.class).call(318, new String[]{":"+myServerName, "318", myself.getNickname(), bits[1], "End of /WHOIS list."});
421
+            getCallbackManager().getCallbackType(NumericListener.class).call(318, new String[]{":" + myServerName, "318", myself.getNickname(), bits[1], "End of /WHOIS list."});
418 422
         } else if (bits[0].equalsIgnoreCase("INVITE") && bits.length > 2) {
419 423
             if (bits[2].equalsIgnoreCase(mainChannelName)) {
420 424
                 final TwitterUser user = api.addFriend(bits[1]);
@@ -450,7 +454,7 @@ public class Twitter implements Parser, TwitterErrorHandler, TwitterRawHandler,
450 454
     /** {@inheritDoc} */
451 455
     @Override
452 456
     public boolean isValidChannelName(final String name) {
453
-        return (name.matches("^&[0-9]+$") || name.equalsIgnoreCase(mainChannelName) || name.startsWith("#"));
457
+        return name.matches("^&[0-9]+$") || name.equalsIgnoreCase(mainChannelName) || name.startsWith("#");
454 458
     }
455 459
 
456 460
     /** {@inheritDoc} */

Loading…
Cancel
Save