Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

putCustomData won't work in remote service #40

Open
GoogleCodeExporter opened this issue Apr 7, 2016 · 10 comments
Open

putCustomData won't work in remote service #40

GoogleCodeExporter opened this issue Apr 7, 2016 · 10 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?

1. startService to start service in remote process
2. In onStartCommand of the service, do

ErrorReporter.getInstance().putCustomData("info","hello");

3. Crush application by doing

 String crashString = null;
 Log.e(TAG,crashString.toString());
----
I can't see "info=hello" in "custom" cell, instead that is blank.

I know calling putCustomData in main Activity (same process that ACRA.init 
called) works as documented.
----
ACRA 3.1.1 on OS 2.1.1
----
I hope putCustomData can be called from service since my service has the 
information worth posting.

Original issue reported on code.google.com by DailyTi...@gmail.com on 13 Mar 2011 at 2:49

@GoogleCodeExporter
Copy link
Author

I've not tested ACRA with services yet... I'll start.

Anyway, if the report is sent, there should be no big deal with handling custom 
data.

Original comment by kevin.gaudin on 13 Mar 2011 at 7:31

@GoogleCodeExporter
Copy link
Author

Just implemented a simple test based on 
http://developer.android.com/intl/fr/resources/samples/ApiDemos/src/com/example/
android/apis/app/LocalService.html

As I am building for Android 1.5, I used onStart() instead of onStartCommand(), 
and everything went fine: custom data is correctly received in the spreadsheet.

Next test will be with onStartCommand(), running on 2.1.1 avd.

Original comment by kevin.gaudin on 13 Mar 2011 at 10:26

@GoogleCodeExporter
Copy link
Author

New test done on Android 2.1.1 with ACRA 3.1.1, using onStartCommand:

    @Override
    public int onStartCommand(Intent intent, int flags ,int startId) {
        Log.i("LocalService", "Received start id " + startId + ": " + intent);
        ErrorReporter.getInstance().putCustomData("Hello", "World!");
        String nul = null;
        nul.toString();
        return START_NOT_STICKY;
    }

Report looks ok, with "Hello=World!" in the custom column.

Are you sure it is not just hidden due to the default bottom left text 
alignment ?

https://docs.google.com/uc?id=0B9J0DEDzWLEjMGU2YjBkMDItMzA5Zi00YzZiLWI0MDYtM2M5Y
mJlMjZhZWVk&export=download&hl=fr&align.png

Original comment by kevin.gaudin on 13 Mar 2011 at 10:50

@GoogleCodeExporter
Copy link
Author

Hi Kevin,

Thank you for verifying the issue so quickly. I wonder you tried with service 
without

process=":remote" 

which runs service in same process. In this case it worked. (I verified today.) 
But running service in separate process by giving

process=":any_string_you_like"

ends up with blank "custom" data. Please try just adding above key word to 
service tag in AndroidManifest.xml.

I hope you will see same issue that I'm having.

Original comment by DailyTi...@gmail.com on 13 Mar 2011 at 10:59

@GoogleCodeExporter
Copy link
Author

My first test was without specifying any android:process value.

I just tested with
<service android:name="LocalService" android:process=":test_process"></service>
and it still works as expected (custom data is sent).

What is your setting for android:process in the <application> tag?


Original comment by kevin.gaudin on 13 Mar 2011 at 11:12

@GoogleCodeExporter
Copy link
Author

Hi Kevin,

I verified this issue again and found this.

If service is running in separate process and and call putCustomData in that 
process, and crushes in that process it WORKS as expected.

But if service is running in separate process and and call putCustomData in 
that process, and crushes in ANOTHER process (in my case main Activity) it DOES 
NOT work as expected.

Could you check it again?

Original comment by DailyTi...@gmail.com on 13 Mar 2011 at 11:28

@GoogleCodeExporter
Copy link
Author

Ok, I reproduced this. And it kind of makes sense as we are now using 2 
different processes... the ErrorReporter is not a singleton anymore.

I have to think about this.

Original comment by kevin.gaudin on 13 Mar 2011 at 11:43

@GoogleCodeExporter
Copy link
Author

I can't see a simple way to work this around... I think we would need to make 
the remote service send a message to the main process to handle the exception 
(and any custom data) instead of handling it in the service process.
http://developer.android.com/intl/fr/guide/topics/fundamentals/bound-services.ht
ml#Messenger

It may be possible to provide some tooling to ease this but it requires too 
much effort to be done now. I have to plan this after the release of v3.2.

If you want to work on this and contribute back your findings, you are welcome 
;-)

Original comment by kevin.gaudin on 15 Mar 2011 at 12:34

  • Added labels: Priority-Low
  • Removed labels: Priority-Medium

@GoogleCodeExporter
Copy link
Author

Hi Kevin,

Thank you for taking time for this issue.
I understood the situation. I hope ACRA will support this sometime in future.

Original comment by kato.dai...@gmail.com on 15 Mar 2011 at 8:06

@GoogleCodeExporter
Copy link
Author

Original comment by kevin.gaudin on 25 Nov 2011 at 11:20

  • Changed state: Accepted
  • Added labels: Milestone-Undefined

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant