title: NullPointerException crash reports using static DatabaseHelper
body: <p>I’m receiving random NullPointerException crash reports from Google that can’t be reproduced.  I’m using a static reference to a class that extends OrmLiteSqliteOpenHelper.  The helper is initialised in the main class that extends SherlockFragmentActivity.</p>
  
  <pre><code>if (DatabaseHelper.getInstance() == null) {
      DatabaseHelper.setInstance(this.getApplicationContext());
  }
  </code></pre>
  
  <p>At first I though it may occur when the device is rotated or sent to the background.  But no amount of testing has been able to recreate the issue. </p>
  
  <p>Nowhere in the code is the static mHelper variable set to null</p>
  
  <pre><code>public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
      …
      private static DatabaseHelper mHelper;
      …
      public static DatabaseHelper getInstance() {
  
          return DatabaseHelper.mHelper;
      }
  
      public static void setInstance(Context context) {
  
          DatabaseHelper.mHelper = new DatabaseHelper(context);
      }
      …
  }
  </code></pre>
  
  <p>Does anyone have any idea of what may be causing this?</p>
  
  <p>Follows is one of the reports:</p>
  
  <pre><code>java.lang.RuntimeException: Unable to start activity ComponentInfo{au.com.dcbs.tradies/au.com.dcbs.tradies.presentation.document.DocumentActivity}: java.lang.NullPointerException
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2049)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2083)
  at android.app.ActivityThread.access$600(ActivityThread.java:134)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:137)
  at android.app.ActivityThread.main(ActivityThread.java:4697)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:511)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
  at dalvik.system.NativeStart.main(Native Method)
  Caused by: java.lang.NullPointerException
  at bd.a(Document.java:654)
  at au.com.dcbs.tradies.presentation.document.DocumentActivity$a.b(DocumentActivity.java:102)
  at au.com.dcbs.tradies.presentation.document.DocumentActivity$a.onActivityCreated(DocumentActivity.java:78)
  at e.a(FragmentManager.java:891)
  at e.a(FragmentManager.java:1080)
  at e.a(FragmentManager.java:1062)
  at e.k(FragmentManager.java:1810)
  at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:501)
  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1133)
  at android.app.Activity.performStart(Activity.java:4549)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2022)
  ... 11 more
  </code></pre>
  
  <p>line 654 is the first line in this method:</p>
  
  <pre><code>public static Document get(long id, Context context) {
  
      DocumentEntity entity = DatabaseHelper.getInstance().getDocumentDao().queryForId((int)id);
      Document doc = new Document(entity, context);
      return doc;
  }
  </code></pre>
  
  <p>getDocumentDao returns an object of type <code>com.j256.ormlite.dao.RuntimeExceptionDao</code></p>