Program: 1715
Project: 1715
Buggy source:
/** 
 * Creates the default WebView where we'll run javascript and render content
 */
public WebView createDefaultWebView(){
  WebView webView=new com.openmeap.android.WebView(this,this);
  JsApiCoreImpl jsApi=new JsApiCoreImpl(this,webView,updateHandler);
  webView.addJavascriptInterface(jsApi,JS_API_NAME);
  webView.getSettings().setJavaScriptEnabled(true);
  webView.setWebViewClient(new WebViewClient(){
    public boolean shouldOverrideUrlLoading(    WebView view,    String url){
      view.loadUrl(url);
      return true;
    }
  }
);
  webView.getSettings().setDatabaseEnabled(true);
  webView.getSettings().setDomStorageEnabled(true);
  String databasePath=this.getApplicationContext().getDir("String_Node_Str",Context.MODE_PRIVATE).getPath();
  webView.getSettings().setDatabasePath("String_Node_Str");
  webView.getSettings().setGeolocationEnabled(true);
  webView.getSettings().setGeolocationDatabasePath("String_Node_Str");
  webView.setVerticalScrollBarEnabled(false);
  webView.setHorizontalScrollBarEnabled(false);
  webView.setWebChromeClient(new WebChromeClient(){
    @Override public void onGeolocationPermissionsShowPrompt(    String origin,    Callback callback){
      callback.invoke(origin,true,false);
    }
    @Override public void onExceededDatabaseQuota(    String url,    String databaseIdentifier,    long quota,    long estimatedDatabaseSize,    long totalQuota,    QuotaUpdater quotaUpdater){
      super.onExceededDatabaseQuota(url,databaseIdentifier,quota,estimatedDatabaseSize,totalQuota,quotaUpdater);
    }
  }
);
  webView.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT,android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
  return webView;
}

Fixed version (ground truth):
/** 
 * Creates the default WebView where we'll run javascript and render content
 */
public WebView createDefaultWebView(){
  WebView webView=new com.openmeap.android.WebView(this,this);
  JsApiCoreImpl jsApi=new JsApiCoreImpl(this,webView,updateHandler);
  webView.addJavascriptInterface(jsApi,JS_API_NAME);
  webView.getSettings().setJavaScriptEnabled(true);
  webView.setWebViewClient(new WebViewClient(){
    public boolean shouldOverrideUrlLoading(    WebView view,    String url){
      view.loadUrl(url);
      return true;
    }
  }
);
  webView.getSettings().setDatabaseEnabled(true);
  webView.getSettings().setDomStorageEnabled(true);
  String databasePath=this.getApplicationContext().getDir("String_Node_Str",Context.MODE_PRIVATE).getPath();
  webView.getSettings().setDatabasePath("String_Node_Str" + webView.getContext().getPackageName() + "String_Node_Str");
  webView.getSettings().setGeolocationEnabled(true);
  webView.getSettings().setGeolocationDatabasePath("String_Node_Str" + webView.getContext().getPackageName() + "String_Node_Str");
  webView.setVerticalScrollBarEnabled(false);
  webView.setHorizontalScrollBarEnabled(false);
  webView.setWebChromeClient(new WebChromeClient(){
    @Override public void onGeolocationPermissionsShowPrompt(    String origin,    Callback callback){
      callback.invoke(origin,true,false);
    }
    @Override public void onExceededDatabaseQuota(    String url,    String databaseIdentifier,    long quota,    long estimatedDatabaseSize,    long totalQuota,    QuotaUpdater quotaUpdater){
      super.onExceededDatabaseQuota(url,databaseIdentifier,quota,estimatedDatabaseSize,totalQuota,quotaUpdater);
    }
  }
);
  webView.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT,android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
  return webView;
}