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

A file cannot be renamed on F-02F #506

Closed
mvysny opened this Issue May 16, 2015 · 5 comments

Comments

Projects
None yet
1 participant
@mvysny
Owner

mvysny commented May 16, 2015

java.lang.RuntimeException: Unable to start activity ComponentInfo{sk.baka.aedict3/sk.baka.aedict3.EdictEntryDetailActivity}: java.lang.RuntimeException: java.io.IOException: Failed to rename /storage/emulated/0/aedict3/box985254337.tmp to /storage/emulated/0/aedict3/recentlyviewed.bin
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2234)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2287)
at android.app.ActivityThread.access$600(ActivityThread.java:183)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1288)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5252)
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:798)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: java.io.IOException: Failed to rename /storage/emulated/0/aedict3/box985254337.tmp to /storage/emulated/0/aedict3/recentlyviewed.bin
at sk.baka.aedict3.cloud.FileStorage.writeFile(FileStorage.java:280)
at sk.baka.aedict3.cloud.FileStorage.writeFile(FileStorage.java:245)
at sk.baka.aedict3.cloud.FileStorage.access$500(FileStorage.java:34)
at sk.baka.aedict3.cloud.FileStorage$RecentlyViewed.add(FileStorage.java:550)
at sk.baka.aedict3.search.RecentlyViewedFragment.recentlyViewed(RecentlyViewedFragment.java:83)
at sk.baka.aedict3.EdictEntryDetailActivity.onCreate(EdictEntryDetailActivity.java:202)
at android.app.Activity.performCreate(Activity.java:5146)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1092)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
... 11 more
Caused by: java.io.IOException: Failed to rename /storage/emulated/0/aedict3/box985254337.tmp to /storage/emulated/0/aedict3/recentlyviewed.bin
at sk.baka.aedict.util.Writables.write(Writables.java:322)
at sk.baka.aedict3.cloud.FileStorage.writeLocal(FileStorage.java:147)
at sk.baka.aedict3.cloud.FileStorage.writeFile(FileStorage.java:271)
... 19 more

@mvysny

This comment has been minimized.

Show comment
Hide comment
@mvysny

mvysny May 16, 2015

Owner

https://github.com/mvysny/dirutils to the rescue! I have reworked the write() code to use dirutils, let us see what the problem is this time.

Owner

mvysny commented May 16, 2015

https://github.com/mvysny/dirutils to the rescue! I have reworked the write() code to use dirutils, let us see what the problem is this time.

@mvysny

This comment has been minimized.

Show comment
Hide comment
@mvysny

mvysny May 16, 2015

Owner

Updated write() function is in Aedict 3.19

Owner

mvysny commented May 16, 2015

Updated write() function is in Aedict 3.19

@mvysny

This comment has been minimized.

Show comment
Hide comment
@mvysny

mvysny May 16, 2015

Owner

This is probably caused because of an unfortunate mistake: I have created directories with the "t" sticky bit. Files can be created in this directory, but can only be deleted by root and owner. Since Android takes the ownership of the files immediately from Aedict, Aedict no longer can delete such files. I will implement a workaround which traverses the aedict3 directory once and fixes the access rights. This should fix all SD-Card related problems users are recently reporting.
EDIT: I can no longer modify access rights for those directories, because Android takes over the ownership of those directories. So, the workaround can not be implemented.

Owner

mvysny commented May 16, 2015

This is probably caused because of an unfortunate mistake: I have created directories with the "t" sticky bit. Files can be created in this directory, but can only be deleted by root and owner. Since Android takes the ownership of the files immediately from Aedict, Aedict no longer can delete such files. I will implement a workaround which traverses the aedict3 directory once and fixes the access rights. This should fix all SD-Card related problems users are recently reporting.
EDIT: I can no longer modify access rights for those directories, because Android takes over the ownership of those directories. So, the workaround can not be implemented.

@mvysny

This comment has been minimized.

Show comment
Hide comment
@mvysny

This comment has been minimized.

Show comment
Hide comment
@mvysny

mvysny May 17, 2015

Owner

I have also improved exception message and added FAQ section for this. Closing as won't fix as I cannot do anything with those directories besides recommending factory reset. This is recommended in FAQ.

Owner

mvysny commented May 17, 2015

I have also improved exception message and added FAQ section for this. Closing as won't fix as I cannot do anything with those directories besides recommending factory reset. This is recommended in FAQ.

@mvysny mvysny closed this May 17, 2015

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