# HG changeset patch # User Vladimir Vukicevic # Date 1198990239 28800 # Node ID aaff27b570d104fedf13163d7a7ce9b20851d91d # Parent 6403a228b42a56b710bf5df3c0abcaf5ffaf64d5 Revert background thread queue fix until bugs are worked out diff -r 6403a228b42a56b710bf5df3c0abcaf5ffaf64d5 -r aaff27b570d104fedf13163d7a7ce9b20851d91d EveBerry.alx --- a/EveBerry.alx Sat Dec 29 19:22:18 2007 -0800 +++ b/EveBerry.alx Sat Dec 29 20:50:39 2007 -0800 @@ -2,7 +2,7 @@ EveBerry Blackberry EVE Monitor - 0.2.1 + 0.2.2 Mr. Rupert's Quality Software Group Copyright (c) 2007, 2008 MRQSG diff -r 6403a228b42a56b710bf5df3c0abcaf5ffaf64d5 -r aaff27b570d104fedf13163d7a7ce9b20851d91d build.xml --- a/build.xml Sat Dec 29 19:22:18 2007 -0800 +++ b/build.xml Sat Dec 29 20:50:39 2007 -0800 @@ -20,7 +20,7 @@ diff -r 6403a228b42a56b710bf5df3c0abcaf5ffaf64d5 -r aaff27b570d104fedf13163d7a7ce9b20851d91d src/org/mrrupert/eveberry/EveAPI.java --- a/src/org/mrrupert/eveberry/EveAPI.java Sat Dec 29 19:22:18 2007 -0800 +++ b/src/org/mrrupert/eveberry/EveAPI.java Sat Dec 29 20:50:39 2007 -0800 @@ -63,23 +63,20 @@ EveBerry.debug("XMLPOSTCall: '" + url + "'"); http = (HttpConnection) Connector.open(url + sURLSuffix); - EveBerry.debug("AAA"); http.setRequestMethod(HttpConnection.POST); - EveBerry.debug("AA"); http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); http.setRequestProperty("Accept-Encoding", "gzip"); - EveBerry.debug("A"); if (postBytes != null) { os = http.openOutputStream(); os.write(postBytes); } - EveBerry.debug("B"); + int rc = http.getResponseCode(); if (rc != HttpConnection.HTTP_OK) { throw new Exception("HTTP failure"); } - EveBerry.debug("C"); + InputStream is; String encoding = http.getHeaderField("Content-Encoding"); if (encoding != null && encoding.indexOf("gzip") != -1) { @@ -87,11 +84,9 @@ } else { is = http.openInputStream(); } - EveBerry.debug("D"); + QDParser sax = new QDParser(); - EveBerry.debug("before parse call"); sax.parse(handler, new InputStreamReader(is)); - EveBerry.debug("after parse call"); http.close(); } @@ -186,9 +181,7 @@ sb.append(id); } - EveBerry.debug("before POST call"); DoXMLPOSTCall(kDataServiceURL, sb.toString().getBytes(), handler); - EveBerry.debug("after POST call"); } catch (Exception ex) { EveBerry.debug("Exception caught! " + ex); retval = null; @@ -210,8 +203,6 @@ dis.readFully(data.getArray()); http.close(); - EveBerry.debug("NNN GetCharacterImageData network took " + (System.currentTimeMillis() - tstart) + " ms"); - return data; } catch (Exception ex) { EveBerry.debug("Exception caught! " + ex); diff -r 6403a228b42a56b710bf5df3c0abcaf5ffaf64d5 -r aaff27b570d104fedf13163d7a7ce9b20851d91d src/org/mrrupert/eveberry/EveBerryBackground.java --- a/src/org/mrrupert/eveberry/EveBerryBackground.java Sat Dec 29 19:22:18 2007 -0800 +++ b/src/org/mrrupert/eveberry/EveBerryBackground.java Sat Dec 29 20:50:39 2007 -0800 @@ -229,20 +229,10 @@ while (!sFinished) { EveCharacterManager mgr = EveCharacterManager.Manager(); - boolean hasMoreWork = true; - - do { - WorkItem item = null; - - synchronized(this) { - if (mWorkQueue.size() > 0) { - item = (WorkItem) mWorkQueue.elementAt(0); - mWorkQueue.removeElementAt(0); - } - } - - if (item != null) { - final WorkItem wi = item; + synchronized(this) { + // do the entire work queue at once + for (int i = 0; i < mWorkQueue.size(); i++) { + final WorkItem wi = (WorkItem) mWorkQueue.elementAt(i); if (wi.WorkType == ITEM_CHARACTER_UPDATE) { final EveCharacterInfo eci = (EveCharacterInfo) wi.Item; @@ -298,44 +288,41 @@ } } - synchronized(this) { - if (mWorkQueue.size() == 0) - hasMoreWork = false; - } - } while (hasMoreWork); + mWorkQueue.removeAllElements(); - long nextUpdateDelay = computeUpdateTimes(); + long nextUpdateDelay = computeUpdateTimes(); - if (nextUpdateDelay == 0) { - synchronized(mgr) { - Enumeration iter = mgr.enumerateCharacters(); - while (iter.hasMoreElements()) { - EveCharacterInfo eci = (EveCharacterInfo) iter.nextElement(); - EveBerry.debug("++++ Background: queuing update for " + eci.Name); - queueCharacterUpdate(eci, null, null); - } - } - } + if (nextUpdateDelay == 0) { + synchronized(mgr) { + Enumeration iter = mgr.enumerateCharacters(); + while (iter.hasMoreElements()) { + EveCharacterInfo eci = (EveCharacterInfo) iter.nextElement(); + EveBerry.debug("++++ Background: queuing update for " + eci.Name); + queueCharacterUpdate(eci, null, null); + } + } + } - // check if we need to notify anything - checkAndDispatchNotifications(); + // check if we need to notify anything + checkAndDispatchNotifications(); - EveBerry.debug("XXXXXXX nextUpdateDelay in: " + nextUpdateDelay); + EveBerry.debug("XXXXXXX nextUpdateDelay in: " + nextUpdateDelay); - // don't wait if we're sFinished - if (sFinished) - break; + // don't wait if we're sFinished + if (sFinished) + break; - try { - if (nextUpdateDelay > 0) { - // wait the given ms - wait(nextUpdateDelay); - } else if (nextUpdateDelay == -1) { - // wait until we're notified; there are no - // characters. - wait(); - } - } catch (Exception e) { } + try { + if (nextUpdateDelay > 0) { + // wait the given ms + wait(nextUpdateDelay); + } else if (nextUpdateDelay == -1) { + // wait until we're notified; there are no + // characters. + wait(); + } + } catch (Exception e) { } + } } mRunning = false;