I suspect the problem might originate here (runtime/browser/android/
intercepted_request_data_impl.cc):
scoped_ptr<InputStream>
InterceptedRequestDataImpl::GetInputStream(JNIEnv* env) const {
ScopedJavaLocalRef<jobject> jstream =
Java_InterceptedRequestData_getData(env, java_object_.obj());
if (jstream.is_null())
return scoped_ptr<InputStream>();
return make_scoped_ptr<InputStream>(new InputStreamImpl(jstream));
}
if java_object is null. There’s no check for that. From what I can tell the
following two methods will also be affected:
bool InterceptedRequestDataImpl::GetMimeType(JNIEnv* env, std::string*
mime_type) const;
bool InterceptedRequestDataImpl::GetCharset;
I am working with the original poster for this question and trying to help
get this issue resolved.
In short what we are doing is intercepting requests inside a XWalkView,
doing an async data request to an altogether different URL and returning
the data to the original caller. Specifically we are achieving this by
returning a ByteArrayInputStream (as part of WebResourceResponse, which is
the return object for shouldInterceptLoadRequest) with the “read" method
overridden, such that it will return data only when it has successfully
downloaded it from the network.
The end result is that upon navigate(BACKWARDS) being called, we end up
with:
JNI DETECTED ERROR IN APPLICATION: can't call java.io.InputStream
org.xwalk.core.internal.InterceptedRequestData.getData() on null object
in call to CallObjectMethodV
I already filed XWALK-4255 to track this, but if there's a way to resolve
this problem without requiring changes to XWALK code please let me know.
Thanks!
George
_______________________________________________
Crosswalk-help mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help