When users lose internet while on the pack purchase screen they will crash the app if they try to purchase something.
To reproduce:
Load up the pack purchase screen (packs now in memory)
Turn on airplane mode
Quickly switch back to the pack purchase screen.
Attempt to purchase one of the packs that's in memory.
D/PackClient( 3974): getInstance
D/PackClient( 3974): getCardsForPack
D/PackClient( 3974): doHTTPGet(http://siramix.com/buzzwords/packs/packs/amazon2.json)
E/Deck ( 3974): Encountered IOException installing pack from server.
W/System.err( 3974): java.net.UnknownHostException: Unable to resolve host "siramix.com": No address associated with hostname
W/System.err( 3974): at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
W/System.err( 3974): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
W/System.err( 3974): at java.net.InetAddress.getAllByName(InetAddress.java:214)
W/System.err( 3974): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
W/System.err( 3974): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
W/System.err( 3974): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
W/System.err( 3974): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
W/System.err( 3974): at com.buzzwords.PackClient.doHTTPGet(PackClient.java:202)
W/System.err( 3974): at com.buzzwords.PackClient.getCardsForPack(PackClient.java:111)
W/System.err( 3974): at com.buzzwords.Deck$DeckOpenHelper.installPackFromServer(Deck.java:723)
W/System.err( 3974): at com.buzzwords.Deck.installPack(Deck.java:197)
W/System.err( 3974): at com.buzzwords.GameManager.installPack(GameManager.java:376)
W/System.err( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:531)
W/System.err( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:1)
W/System.err( 3974): at android.os.AsyncTask$2.call(AsyncTask.java:287)
W/System.err( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
W/System.err( 3974): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
W/System.err( 3974): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
W/System.err( 3974): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
W/System.err( 3974): at java.lang.Thread.run(Thread.java:856)
W/System.err( 3974): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
W/System.err( 3974): at libcore.io.Posix.getaddrinfo(Native Method)
W/System.err( 3974): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
W/System.err( 3974): at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
W/System.err( 3974): ... 22 more
W/System.err( 3974): Caused by: libcore.io.ErrnoException: getaddrinfo failed: ENETUNREACH (Network is unreachable)
W/System.err( 3974): ... 25 more
W/dalvikvm( 3974): threadid=16: thread exiting with uncaught exception (group=0x40b1f300)
E/AndroidRuntime( 3974): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime( 3974): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime( 3974): at android.os.AsyncTask$3.done(AsyncTask.java:299)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime( 3974): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/AndroidRuntime( 3974): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/AndroidRuntime( 3974): at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime( 3974): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
E/AndroidRuntime( 3974): at android.os.Handler.(Handler.java:121)
E/AndroidRuntime( 3974): at android.widget.Toast$TN.(Toast.java:322)
E/AndroidRuntime( 3974): at android.widget.Toast.(Toast.java:91)
E/AndroidRuntime( 3974): at android.widget.Toast.makeText(Toast.java:238)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity.showToast(PackPurchaseActivity.java:800)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity.access$1(PackPurchaseActivity.java:798)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:533)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:1)
E/AndroidRuntime( 3974): at android.os.AsyncTask$2.call(AsyncTask.java:287)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime( 3974): ... 4 more
W/ActivityManager( 292): Force finishing activity com.buzzwords/.PackPurchaseActivity
When users lose internet while on the pack purchase screen they will crash the app if they try to purchase something.
To reproduce:
D/PackClient( 3974): getInstance D/PackClient( 3974): getCardsForPack D/PackClient( 3974): doHTTPGet(http://siramix.com/buzzwords/packs/packs/amazon2.json) E/Deck ( 3974): Encountered IOException installing pack from server. W/System.err( 3974): java.net.UnknownHostException: Unable to resolve host "siramix.com": No address associated with hostname W/System.err( 3974): at java.net.InetAddress.lookupHostByName(InetAddress.java:424) W/System.err( 3974): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) W/System.err( 3974): at java.net.InetAddress.getAllByName(InetAddress.java:214) W/System.err( 3974): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) W/System.err( 3974): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) W/System.err( 3974): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) W/System.err( 3974): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) W/System.err( 3974): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) W/System.err( 3974): at com.buzzwords.PackClient.doHTTPGet(PackClient.java:202) W/System.err( 3974): at com.buzzwords.PackClient.getCardsForPack(PackClient.java:111) W/System.err( 3974): at com.buzzwords.Deck$DeckOpenHelper.installPackFromServer(Deck.java:723) W/System.err( 3974): at com.buzzwords.Deck.installPack(Deck.java:197) W/System.err( 3974): at com.buzzwords.GameManager.installPack(GameManager.java:376) W/System.err( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:531) W/System.err( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:1) W/System.err( 3974): at android.os.AsyncTask$2.call(AsyncTask.java:287) W/System.err( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) W/System.err( 3974): at java.util.concurrent.FutureTask.run(FutureTask.java:137) W/System.err( 3974): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) W/System.err( 3974): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) W/System.err( 3974): at java.lang.Thread.run(Thread.java:856) W/System.err( 3974): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) W/System.err( 3974): at libcore.io.Posix.getaddrinfo(Native Method) W/System.err( 3974): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55) W/System.err( 3974): at java.net.InetAddress.lookupHostByName(InetAddress.java:405) W/System.err( 3974): ... 22 more W/System.err( 3974): Caused by: libcore.io.ErrnoException: getaddrinfo failed: ENETUNREACH (Network is unreachable) W/System.err( 3974): ... 25 more W/dalvikvm( 3974): threadid=16: thread exiting with uncaught exception (group=0x40b1f300) E/AndroidRuntime( 3974): FATAL EXCEPTION: AsyncTask #2 E/AndroidRuntime( 3974): java.lang.RuntimeException: An error occured while executing doInBackground() E/AndroidRuntime( 3974): at android.os.AsyncTask$3.done(AsyncTask.java:299) E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask.run(FutureTask.java:137) E/AndroidRuntime( 3974): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) E/AndroidRuntime( 3974): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) E/AndroidRuntime( 3974): at java.lang.Thread.run(Thread.java:856) E/AndroidRuntime( 3974): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() E/AndroidRuntime( 3974): at android.os.Handler.(Handler.java:121)
E/AndroidRuntime( 3974): at android.widget.Toast$TN.(Toast.java:322)
E/AndroidRuntime( 3974): at android.widget.Toast.(Toast.java:91)
E/AndroidRuntime( 3974): at android.widget.Toast.makeText(Toast.java:238)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity.showToast(PackPurchaseActivity.java:800)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity.access$1(PackPurchaseActivity.java:798)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:533)
E/AndroidRuntime( 3974): at com.buzzwords.PackPurchaseActivity$PackSyncronizer.doInBackground(PackPurchaseActivity.java:1)
E/AndroidRuntime( 3974): at android.os.AsyncTask$2.call(AsyncTask.java:287)
E/AndroidRuntime( 3974): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime( 3974): ... 4 more
W/ActivityManager( 292): Force finishing activity com.buzzwords/.PackPurchaseActivity