Check existence of mWakeLock before releasing it

* Also, unregister connectivity receiver in onDestroy method
diff --git a/src/com/android/exchange/SyncManager.java b/src/com/android/exchange/SyncManager.java
index 6a693f9..b9c835a 100644
--- a/src/com/android/exchange/SyncManager.java
+++ b/src/com/android/exchange/SyncManager.java
@@ -91,6 +91,7 @@
     MessageObserver mMessageObserver;
     String mNextWaitReason;
     IEmailServiceCallback mCallback;
+    ConnectivityReceiver mConnectivityReceiver = null;
 
     RemoteCallbackList<IEmailServiceCallback> mCallbackList =
         new RemoteCallbackList<IEmailServiceCallback>();
@@ -545,7 +546,9 @@
                 INSTANCE.log("+WakeLock not needed for " + alarmOwner(id));
                 mWakeLocks.remove(id);
                 if (mWakeLocks.isEmpty()) {
-                    mWakeLock.release();
+                    if (mWakeLock != null) {
+                        mWakeLock.release();
+                    }
                     mWakeLock = null;
                     INSTANCE.log("+WAKE LOCK RELEASED");
                 }
@@ -634,6 +637,9 @@
             mWakeLock.release();
             mWakeLock = null;
         }
+        if (mConnectivityReceiver != null) {
+            unregisterReceiver(mConnectivityReceiver);
+        }
         clearAlarms();
     }
 
@@ -740,8 +746,9 @@
         resolver.registerContentObserver(Message.SYNCED_CONTENT_URI, true, mSyncedMessageObserver);
         resolver.registerContentObserver(Message.CONTENT_URI, false, mMessageObserver);
 
-        ConnectivityReceiver cr = new ConnectivityReceiver();
-        registerReceiver(cr, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+        mConnectivityReceiver = new ConnectivityReceiver();
+        registerReceiver(mConnectivityReceiver,
+                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
         ConnectivityManager cm =
             (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);