4.2.1 is a bug-fest

It appears that 4.2.1 has got a myriad of wireless and 3g comms problems ranging from dropped to non-existent connections over the cellular network as well as wifi connection issues. 3.x and 4.1 versions appear far more stable and our lab has had definitive proof of issues with cellular and wifi comms from a number of clients.
For some reason, 4.2.1 affects some iPhones more than others and the lack of coherent and consistent faults makes some posters feel that they are in the minority of affected users. Well, be assured that you are not and the faults experienced are very real.
We have identified that 4.2.1 in the iPhone 4 has WPA2 key length issues. The iPhone 3GS has also WPA2 key issues and 4.2.1 seems to have done something awry to the radio firmware in the handset in general with wifi. iPhone 3G with 4.2.1 seems to exhibit the same key length problem as the iPhone 4 but not consistently.
Now we take the same three handsets on their earlier versions of the OS and these all work with cellular and wifi in a consistent manner.
One area that we continue to investigate is the issue of the amount of free storage available at the time of the update as this seems to have a bearing on subsequent stability (or lack thereof). This may be a red herring as the iPad on 4.2.1 appears to be far more stable with radio issues.
There is also one other school of thought that we have which is to do with the increased battery performance on the iPhones. It looks as though the iPhone drops WiFi when it goes to sleep (ie: when it is turned off in normal mode). Now this has two direct effects - firstly it has increased the 3g usage for data and secondly it causes 'blips' with the ability to connect to previously working wifi connections.
There is no point in people stating that there is no problem with 4.2.1 - the number of our clients as well as the number of posters in the various forums point to a definite issue that requires addressing. What we need is solid data, and if people could please respond to this with their experiences it may help sort out where these issues fit into the overall scheme of things.
Finally, this has not been aimed at the Bluetooth issues as there are many more facets to this element than first meet the eye. Please note that I do not work for Apple, but have been in the comms industry for over twenty years and have extensive knowledge of comms protocols, hardware and software, and my team in the UK and Europe is simply trying to help to nail down issues with very expensive equipment that seems to have developed faults since the upgrade. We don't have ready access to the Genius Bar or an Apple Store so we have to do the best that we can.

Now this has two direct effects - firstly it has increased the 3g usage for data and secondly it causes 'blips' with the ability to connect to previously working wifi connections.
Landshark2007 wrote:
We have identified that 4.2.1 in the iPhone 4 has WPA2 key length issues.
Although I have seen posts about the problem WPA2 key length problem, I am using an iPhone 4 with iOS 4.2.1 and have no problems connecting to my WiFi that uses WPA2 AES with a key that is over 20 characters.
Landshark2007 wrote:
There is also one other school of thought that we have which is to do with the increased battery performance on the iPhones. It looks as though the iPhone drops WiFi when it goes to sleep (ie: when it is turned off in normal mode).
An iPhone will maintain a WiFi connection when in sleep mode if it is connected to a power source.
I have no doubt that many users are experiencing problems with their iPhones. I just feel lucky that I haven't experienced any big issues with mine.

Similar Messages

  • Nokia Lumia 1520 upgraded to Windows Phone 8.1 G.D...

    Hello reader(S),
    Today I accepted the Fast Ring (which was the only offered ring) programme on my Nokia Lumia 1520 to install the latest preview builds of Windows 10 and provide feedback for Microsoft... but here's the odd part, it installed Windows Phone 8.1 Update 2/G.D.R. 2 and doesn't show anything even remotely related to Windows 10, whenever I go back to the Windows Insider Hub it tells me that it'll reboot my device, then it shows me everything that's new in Windows Phone 8.1 (Blue) - with Nokia Lumia Cyan, and then doesn't change anything. It had an oddity in the ''migrating your data'' portion of the update where it went, and then I'd literally watch the bar roll back, where it went, and then I'd literally watch the bar roll back, where it went, and then I'd literally watch the bar roll back, where it went, and then I'd literally watch the bar roll back, where it went, and then I'd literally watch the bar roll back, OVER and OVER again, after a while the update was done rolling out and since my Nokia Lumia 1520 is already a rubbish phone that constantly crashes and is so inusable for anyone without the patience of a Shaolin Monk that I can't give it away as a gift (I intend to give it to my sister eventually...), now I bought a Microsoft Lumia 532 mobile telephone last week, but after reading that some ''cheaper'' mobile telephones have trouble with Windows 10's technical preview I ought to install it on my Nokia Lumia 1520 which severely lacks in every respect, is a bug-fest and I wouldn't mind it getting "bricked".
    ¿So how can I install the Windows 10 preview? Note that I don't have a developer's account and did not download it via the Windows Phone Developer Preview Hub, I installed it over Windows (Phone) Update and did it exactly as other Windows Insiders previously have.
    Sincerely,
    Tula, the Quang

    I also forgot to mention that I indeed have tried to roll into the Fast Ring programme again with no avail. 

  • How do you roll BACK to iTunes 11 from 12.

    In a nut shell, version 12 of iTunes is a MESS. My Ipod HATES it as I can NOT delete nor add play lists and I've tried everything. 12 is a bug fest.
    I had no problems what so ever with version 11 and would LOVE TO roll it back. Anyone do it with success?
    If so please help the hundreds of us out in cyber space who would love to roll back too.
    Thank you.

    If you really want to roll back to 11.4 uninstall all iTunes/Apple components, restore the pre-upgrade version of the library as described in Empty/corrupt iTunes library after upgrade/crash, then download and install from one of these direct links:
    iTunes 11.4.0.18 for Windows (32-bit) - iTunesSetup.exe (2014-09-09)
    iTunes 11.4.0.18 for Windows (64-bit) - iTunes64Setup.exe (2014-09-09)
    If you have trouble uninstalling or reinstalling see Troubleshooting issues with iTunes for Windows updates.
    tt2

  • ULTIMATIVER BUG CC2014: Farbmanagement in Acrobat XI kaputt

    Der Irrsinn hat einen Namen: Adobe!
    Folgendes Problem:
    In InDesign ein rotes Kästchen erstellt, C:0 M:100 Y:100 K:0 - ein knallrotes Kästchen. Dieses knallrote Kästchen mit der Standard-Export-Einstellung "Qualitativ hochwertiger Druck" exportiert und PDF gleich anzeigen lassen. Irgendwie sieht dieses Rot doch anders aus? Schnell einmal in die <Druckproduktion>Werkzeuge und <Ausgabevorschau> und tatsächlich: C:0 M:96 Y:87 K:0 !
    Klarer Fall: da hat's was mit dem Farbmanagement! Also schnell in Acrobat nachgeschaut und entdeckt "nicht synchronisiert" (obwohl die Einstellungen selbst 100%ig der Einstellungen des synchronisierten Zustands entsprechen). Das kann man ja leicht beheben: Rein in Adobe Bridge, die Schaltfläche <Anwenden> war auch anklickbar (wenn alles synchron ist, dann ist diese ausgegraut). Also auf <Anwenden> geklickt, zurück in Acrobat -> dort steht "synchronisiert".
    Jetzt noch checken, ob es eh' passt: <Datei öffnen>"meinexport.pdf". Resultat: C:0 M:100 Y:00 K:0 -> Juhuu - so soll's ja sein!
    Und jetzt aufgepasst: Ich habe den selben Export noch einmal durchgeführt mit der Option, dass das PDF im Anschluss "gezeigt" wird -> und schon wieder falsch! Wie kann das sein? Wieder ins Acrobat-Farbmanagement und siehe da: wieder "nicht synchronisiert".
    Nach 100 weiteren Exporten, alles mögliche ausprobieren und hin- und her sch... habe ich folgendes reproduzierbares Verhalten festgestellt:
    Status: Acrobat ist über Bridge synchronisiert. Wenn Acrobat als Programm geöffnet wird und dann eine Datei über <Datei öffnen" geladen wird, ist alles in Ordnung. Wird allerdings Acrobat über einen Doppelklick auf das PDF gestartet, so geht die Synchronisierung verloren.
    Ich arbeite seit über 10 Jahren mit der Creative Suite und hatte dieses Problem nicht. Ich kann es nur in Zusammenhang mit dem Update auf 2014 bringen, denn davor gab es dieses Problem niemals.
    Ich habe dann auch noch Acrobat vollständig deinstalliert (inkl. der Voreinstellungen) und neu installiert -> das Verhalten war exakt das gleiche.
    Kleine Anmerkung: es gibt zwar Indesign CC 2014 und Illustrator CC 2014 und Photoshop CC 2014, aber KEIN BRIDGE CC 2014 und auch KEIN ACROBAT CC 2014. Und es gibt anscheinend einen Zusammenhang mit dem Update auf die CC 2014-Versionen. Und Bridge ist die "Brücke" zwischen allen Programmen insbesondere beim Farbmanagement. Die hat aber eine andere Versionsnummer. Und Acrobat fällt überhaupt aus diesem CC-Versions-Rahmen. Und dort manifestiert sich das Problem.
    Hmmm?!?!?

    Danke für die Antwort, leider keine Lösung dabei.
    1. "Bridge hat außer der Kompatibilität mit CC2014 keine neuen Funktionen hinzubekommen". -> Vielleicht hängt es ja gerade mit dem Update bezüglich der Kompatibilität zu CC 2014 zusammen? Das ist ja genau meine Vermutung, dass hier geschlampt wurde. Denn die "globale" (für ALLE CS-Produkte) Einstellung zur Synchronisierung funktioniert zwar, wird aber "ausgehebelt" - wie von mir beschrieben. Keine Ahnung, ob hier Bridge verantwortlich ist oder Acrobat oder der InDesign-Export. Ich stelle nur fest, dass verschiedene Programme der Creative Cloud zum gleichen Zeitpunkt in unterschiedlichen Versionen existieren. Gleichzeitig aber alle Programme "miteinander" funktionieren müssen. Und im vorliegenden Fall ist das eben nicht so.
    2. Siehe Punkt 1. Das mag' ja genau das Problem sein und genau das kritisiere ich. Nach meinem Verständnis ist Acrobat einer der wesentlichsten Player in einer Grafik-Umgebung. Schließlich mündet fast alles irgendwie in einem PDF. Und PDF ist nunmal das Austauschformat schlechthin. In jedem Fall ist das PDF die Schnittstelle zu "außer Haus", deshalb muss man sich 100%ig darauf verlassen können.
    Und dass Acrobat ein unterschiedliches Verhalten zeigt zwischen <zuerst Programm öffnen und dann Datei öffnen> und <Programm über Doppelklick via Datei> ist einfach nicht in Ordnung und ist ein eindeutiger und absolut reproduzierbarer Bug.
    3. Es ist WURSCHT, welche Standardvorgabe verwendet wird. Ich habe nur "qualitativ hochwertiger Druck" gepostet, aber habe natürlich ALLE Export-Funktionen durchprobiert. Typischerweise verwende ich meine eigenen Vorgaben, die mit meinen Druckereien abgestimmt sind und oftmals wird noch gerne PDF-X3 verwendet.
    Der Unterschied hinsichtlich Farbmanagement ist bei den verschiedenen PDF-X-Standards bzw. zwischen den "Acrobats-Kompatibilitäts-Stufen", dass Profile
    > grundsätzlich eingebettet werden
    > gewisse Optionen für die Einbettung bieten oder nicht
    > Profile direkt über via Tags eingebettet werden können
    > usw.
    4. Die von mir seit 3 Jahren standardmäßig verwendeten Export-Profile sehen so aus:
    > für Online-Druckereien: Standard PDF-X3:2003 (Kompatibilät Acrobat 4) / Keine Farbkonvertierung / Ausgabemethoden-Profil: Document CMYK - ISO Coated v2 300% ECI
    > intern als Austauschformat: ohne Standard (Kompatibilität Acrobat 6) / Keine Farbkonvertierung / RGB CMYK Quellprofile als Tags einbetten
    > Illustrator PDF (für Grafiken, die sich nur innerhalb meines Workflows bewegen, bis sie schließlich über die End-Anwendung ins jeweilige Druck-PDF exportiert werden: ohne Standard (Kompatibilität Acrobat 6) / Keine Farbkonvertierung / alle Profile einschließen
    > Variante Illustrator PDF (für externe Logos, die nicht mit einem eigenen Profil in Berührung kommen sollen): ohne Standard (Kompatibilität Acrobat 6) / Keine Farbkonvertierung / keine Profile einschließen
    > und natürlich für Web-Export und Variante mit Anschnitten/Passkreuzen/Bilder-Runterrechner und whatever
    Deine Frage ist für mich nicht genau genug, denn wie schon gesagt, bieten manche Profile gar nicht die Möglichkeit, einen Output-Ident festzulegen.
    Tatsache ist, dass ich an meinen Konfigurationen nichts geändert habe und nach dem Update auf CC 2014 zunächst einen Profil-Fehler im InDesign entdeckt habe (habe ich auch gepostet) und heute erstmals einen Profil-Fehler in Acrobat entdeckt habe. Und für dieses Problem habe ich mittlerweile 8 Stunden aufgebracht.
    Der Ärger über die Adobe-Software ist mittlerweile so groß, dass ich mir vorgenommen habe, alles zu veröffentlichen, was mir so unterkommt.
    Ich bin als zahlender Kunde nicht mehr bereit, alles einfach wortlos über mich ergehen zu lassen.
    Nächster Schritt werden Youtube-Videos zur Dokumentation sein. Das hier gepostete Problem ist dermaßen absurd und nicht nachvollziehbar, dass man es nur glauben kann, wenn man es mit den eigenen Augen sieht. Als IT-Mensch seit C64 würde ich meinen, dass so ein Verhalten nicht möglich ist. Aber Adobe belehrt eines Besseren!

  • Index with "or" clause (BUG still exists?)

    The change log for 2.3.10 mentions "Fixed a bug that caused incorrect query plans to be generated for predicates that used the "or" operator in conjunction with indexes [#15328]."
    But looks like the Bug still exists.
    I am listing the steps to-repro. Let me know if i have missed something (or if the bug needs to be fixed)
    DATA
    dbxml> openContainer test.dbxml
    dbxml> getDocuments
    2 documents found
    dbxml> print
    <node><value>a</value></node>
    <node><value>b</value></node>
    INDEX (just one string equality index on node "value")
    dbxml> listIndexes
    Index: unique-node-metadata-equality-string for node {http://www.sleepycat.com/2002/dbxml}:name
    Index: node-element-equality-string for node {}:value
    2 indexes found.
    QUERY
    setVerbose 2 2
    preload test.dbxml
    query 'let $temp := fn:compare("test", "test") = 0
    let $results := for $i in collection("test.dbxml")
    where ($temp or $i/node[value = ("a")])
    return $i
    return <out>{$temp}{$results}</out>'
    When $temp is true i expected the result set to contain both the records, but that was not the case with the index. It works well when there is no index!
    Result WITH INDEX
    dbxml> print
    <out>true<node><value>a</value></node></out>
    Result WITHOUT INDEX
    dbxml> print
    <out>true<node><value>a</value></node><node><value>b</value></node></out>

    Hi Vijay,
    This is a completely different bug, relating to predicate expressions that do not examine nodes. Please try the following patch, to see if it fixes this bug for you:
    --- dbxml-2.3.10-original/dbxml/src/dbxml/optimizer/QueryPlanGenerator.cpp     2007-04-18 10:05:24.000000000 +0100
    +++ dbxml-2.3.10/dbxml/src/dbxml/optimizer/QueryPlanGenerator.cpp     2007-08-08 11:32:10.000000000 +0100
    @@ -1566,11 +1572,12 @@
         else if(name == Or::name) {
              UnionQP *unionOp = new (&memMgr_) UnionQP(&memMgr_);
    +          result.operation = unionOp;
              for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) {
                   PathResult ret = generate(*i, ids);
                   unionOp->addArg(ret.operation);
    +               if(ret.operation == 0) result.operation = 0;
    -          result.operation = unionOp;
         // These operators use the presence of the node arguments, not their valueJohn

  • Bug report follow-up

    is there a way to follow-up on a bug report that i submitted?  i have the bug number, but would like to see if the report was understood, filled out properly and determine the status of the bug report.
    thanks,
    doug

    They comment on bugs if actions were taken. Otherwise - don't expect any feedback.

  • Solaris8 and 9 (possibly 7) /dev/poll driver bug report.

    Hello,
    I'd like to report a bug in the solaris 8 and 9 /dev/poll driver (poll(7d)).
    As i do not have a support account with sun or anything like that, there
    seems to be no other way to do that here (which is of course a very sad
    thing).
    Bug details:
    The /dev/poll device provides an ioctl-request (DP_ISPOLLED) for checking
    if a particular filedescriptor is currently in the set of monitored
    filedescriptors for that particular /dev/poll fd set (open /dev/poll fd).
    A quote from the documentation of the poll(7d) manual page taken from
    Solaris9:
    "DP_ISPOLLED ioctl allows you to query if a file descriptor is already in
    the monitored set represented by fd. The fd field of the pollfd structure
    indicates the file descriptor of interest. The DP_ISPOLLED ioctl returns 1
    if the file descriptor is in the set. The events field contains the
    currently polled events. The revents field contains 0. The ioctl returns 0
    if the file descriptor is not in the set. The pollfd structure pointed by
    pfd is not modified. The ioctl returns a -1 if the call fails."
    It says that when you query for an filedescriptor which is currently being
    monitored in the set, that it would return 1, and change the events field of
    the pollfd structure to the events it's currently monitoring that fd for.
    The revents field would be set to zero.
    However the only thing which actually happens here, is that FD_ISPOLLED
    returns 1 when the fd is in the set and 0 if not. When the fd is in the
    set, when FD_ISPOLLED returns 1, the events field remains unmodified, but
    the revents field gets changed.
    A small sample code to illustrate:
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/devpoll.h>
    main() {
    struct pollfd a;
    int dp_fd = open("/dev/poll", O_WRONLY);
    a.fd = 0; /* stdin */
    a.events = POLLIN; /* we monitor for readability, POLLIN=1 */
    a.revents = 0;
    write(dp_fd, &a, sizeof(a));
    a.fd = 0;
    a.events = 34; /* filled in with bogus number to show malfunctioning */
    a.revents = 0;
    printf("DP_ISPOLLED returns: %d\n", ioctl(dp_fd, DP_ISPOLLED, &a));
    printf("a.fd=%d, a.events=%hd, a.revents=%hd\n", a.fd, a.events,
    a.revents);
    According to the documentation of /dev/poll and namely DP_ISPOLLED this
    program is supposed to print the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=1, a.revents=0
    However it prints the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=34, a.revents=1
    You can take any number instead of '34' and it will simply remain untouched
    after the DP_ISPOLLED ioctl-request.
    I hope it's clear now that the solaris8 and solaris9 (and probably solaris7
    with /dev/poll patch too) DP_ISPOLLED implementation is broken.
    This bug is also easily illustrated by looking at the solaris8 kernel sourcecode:
    <snippet osnet_volume/usr/src/uts/common/io/devpoll.c:dpioctl()>
    case DP_ISPOLLED:
    pollfd_t pollfd;
    polldat_t *pdp;
    if (pollfd.fd < 0) {
    mutex_exit(&pcp->pc_lock);
    break;
    pdp = pcache_lookup_fd(pcp, pollfd.fd);
    if ((pdp != NULL) && (pdp->pd_fd == pollfd.fd) &&
    (pdp->pd_fp != NULL)) {
    pollfd.revents = pdp->pd_events;
    if (copyout(&pollfd, (caddr_t)arg,
    sizeof(pollfd_t))) {
    mutex_exit(&pcp->pc_lock);
    DP_REFRELE(dpep);
    return (set_errno(EFAULT));
    *rvalp = 1;
    </snippet>
    its' clearly visible that the code writes the current monitored events to
    the revents field:
    'pollfd.revents = pdp->pd_events;'
    and that it doesnt set revents to zero.
    It's funny to see that this has been like this since Solaris8 (possibly 7). That means nobody ever used DP_ISPOLLED that way or people were simply to lazy to file a bug report.
    Another funny thing related to this. is that Hewlett-Packard did seem to know about this. Since HP-UX11i version 1.6 they also support /dev/poll. From their manual page i ll quote some sentences from their WARNING session:
    "The ioctl(DP_ISPOLLED) system call also returns its result in the revents member of the pollfd structure, in order to be compatible with the implementation of the /dev/poll driver by some other vendors."
    Hopefully this will get fixed.
    I also like to reexpress my very negative feelings towards the fact that you're not able to file bug reports when you do not have a support contract. Ridiculous.
    Thanks,
    bighawk

    Have I mentioned how much i love my playbook now Great job on os 2.0

  • [bdb bug]repeatly open and close db may cause memory leak

    my test code is very simple :
    char *filename = "xxx.db";
    char *dbname = "xxx";
    for( ; ;)
    DB *dbp;
    DB_TXN *txnp;
    db_create(&dbp,dbenvp, 0);
    dbenvp->txn_begin(dbenvp, NULL, &txnp, 0);
    ret = dbp->open(dbp, txnp, filename, dbname, DB_BTREE, DB_CREATE, 0);
    if(ret != 0)
    printf("failed to open db:%s\n",db_strerror(ret));
    return 0;
    txnp->commit(txnp, 0);
    dbp->close(dbp, DB_NOSYNC);
    I try to run my test program for a long time opening and closing db repeatly, then use the PS command and find the RSS is increasing slowly:
    ps -va
    PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
    1986 pts/0 S 0:00 466 588 4999 980 0.3 -bash
    2615 pts/0 R 0:01 588 2 5141 2500 0.9 ./test
    after a few minutes:
    ps -va
    PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
    1986 pts/0 S 0:00 473 588 4999 976 0.3 -bash
    2615 pts/0 R 30:02 689 2 156561 117892 46.2 ./test
    I had read bdb's source code before, so i tried to debug it for about a week and found something like a bug:
    If open a db with both filename and dbname, bdb will open a db handle for master db and a db handle for subdb,
    both of the two handle will get an fileid by a internal api called __dbreg_get_id, however, just the subdb's id will be
    return to bdb's log region by calling __dbreg_pop_id. It leads to a id leak if I tried to open and close the db
    repeatly, as a result, __dbreg_add_dbentry will call realloc repeatly to enlarge the dbentry area, this seens to be
    the reason for RSS increasing.
    Is it not a BUG?
    sorry for my pool english :)
    Edited by: user9222236 on 2010-2-25 下午10:38

    I have tested my program using Oracle Berkeley DB release 4.8.26 and 4.7.25 in redhat 9.0 (Kernel 2.4.20-8smp on an i686) and AIX Version 5.
    The problem is easy to be reproduced by calling the open method of db handle with both filename and dbname being specified and calling the close method.
    My program is very simple:
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/time.h>
    #include "db.h"
    int main(int argc, char * argv[])
    int ret, count;
    DB_ENV *dbenvp;
    char * filename = "test.dbf";
    char * dbname = "test";
    db_env_create(&dbenvp, 0);
    dbenvp->open(dbenvp, "/home/bdb/code/test/env",DB_CREATE|DB_INIT_LOCK|DB_INIT_LOG|DB_INIT_TXN|DB_INIT_MPOOL, 0);
    for(count = 0 ; count < 10000000 ; count++)
    DB *dbp;
    DB_TXN *txnp;
    db_create(&dbp,dbenvp, 0);
    dbenvp->txn_begin(dbenvp, NULL, &txnp, 0);
    ret = dbp->open(dbp, txnp, filename, dbname, DB_BTREE, DB_CREATE, 0);
    if(ret != 0)
    printf("failed to open db:%s\n",db_strerror(ret));
    return 0;
    txnp->commit(txnp, 0);
    dbp->close(dbp, DB_NOSYNC);
    dbenvp->close(dbenvp, 0);
    return 0;
    DB_CONFIG is like below:
    set_cachesize 0 20000 0
    set_flags db_auto_commit
    set_flags db_txn_nosync
    set_flags db_log_inmemory
    set_lk_detect db_lock_minlocks
    Edited by: user9222236 on 2010-2-28 下午5:42
    Edited by: user9222236 on 2010-2-28 下午5:45

  • Multiple return values (Bug-ID 4222792)

    I had exactly the same request for the same 3 reasons: strong type safety and code correctness verification at compile-time, code readability and ease of mantenance, performance.
    Here is what Sun replied to me:
    Autoboxing and varargs are provided as part of
    JSRs 14 and 201
    http://jcp.org/en/jsr/detail?id=14
    http://jcp.org/en/jsr/detail?id=201
    See also:
    http://forum.java.sun.com/forum.jsp?forum=316
    http://developer.java.sun.com/developer/earlyAccess/adding_generics/index.html
    Multiple return values is covered by Bug-ID 4222792
    Typically this is done by returning an array.
    http://developer.java.sun.com/developer/bugParade/bugs/4222792.html
    That's exactly the problem: we dynamically create instances of array objects that would better fit well within the operand stack without stressing the garbage collector with temporary Array object instances (and with their backing store: 2 separate allocations that need to be recycled when it is clearly a pollution that the operand stack would clean up more efficiently)
    If you would like to engage in a discussion with the Java Language developers, the Generics forum would be a better place:
    http://forum.java.sun.com/forum.jsp?forum=316
    I know that (my report was already refering to the JSR for language extension) Generics is not what I was refering to (even if a generic could handle multiple return values, it would still be an allocated Object
    instance to pack them, i.e. just less convenient than using a static class for type safety.
    The most common case of multiple return values involve values that have known static datatypes and that should be checked with strong typesafety.
    The simple case that involves returning two ints then will require at least two object instances and will not solve the garbage collection overhead.
    Using a array of variable objects is exactly similar, except that it requires two instances for the components and one instance for the generic array container. Using extra method parameters with Integer, Byte, ... boxing objects is more efficient, but for now the only practical solution (which causes the least pollution in the VM allocator and garbage collector) is to use a custom class to store the return values in a single instance.
    This is not natural, and needlessly complexifies many interfaces.
    So to avoid this pollution, some solutions are used such as packing two ints into a long and returning a long, depacking the long after return (not quite clean but still much faster at run-time for methods that need to be used with high frequencies within the application. In some case, the only way to cut down the overhead is to inline methods within the caller code, and this does not help code maintenance by splitting the implementation into small methods (something that C++ can do very easily, both because it supports native types parameters by reference, and because it also supports inline methods).
    Finally, suppose we don't want to use tricky code, difficult to maintain, then we'll have to use boxing Object types to allow passing arguments by reference. Shamely boxed native types cannot be allocated on the operand stack as local variables, so we need to instanciate these local variables before call, and we loose the capacity to track the cases where these local variables are not really initialized by an effective call to the method that will assign them. This does not help debugging, and is against the concept of a strongly typed language like Java should be:
    Java makes lots of efforts to track uninitialized variables, but has no way to determine if an already instanciated Object instance refered in a local variable has effectively received an effective assignment because only the instanciation is kept. A typical code will then need to be written like this:
    Integer a = null;
    Integer b = null;
    if (some condition) {
    //call.method(a, b, 0, 1, "dummy input arg");
    // the method is supposed to have assigned a value to a and b,
    // but can't if a and b have not been instanciated, so we perform:
    call.method(a = new Integer(), b = new Integer(), 0, 1, "dummy input
    arg");
    // we must suppose that the method has modified (not initialized!)
    the value
    // of a and b instances.
    now.use(a.value(), b.value())
    // are we sure here that a and b have received a value????
    // the code may be detected at run-time (a null exception)
    // or completely undetected (the method() above was called but it
    // forgot to assign a value to its referenced objects a and b, in which
    // case we are calling in fact: now.use(0, 0); with the default values
    // or a and b, assigned when they were instanciated)
    Very tricky... Hard to debug. It would be much simpler if we just used:
    int a;
    int b;
    if (some condition) {
    (a, b) = call.method(0, 1, "dummy input arg");
    now.use(a, b);
    The compiler would immediately detect the case where a and b are in fact not always initialized (possible use bere initialization), and the first invoked call.method() would not have to check if its arguments are not null, it would not compile if it forgets to return two values in some code path...
    There's no need to provide extra boxing objects in the source as well as at run-time, and there's no stress added to the VM allocator or garbage collector simply because return values are only allocated on the perand stack by the caller, directly instanciated within the callee which MUST (checked at compile-time) create such instances by using the return statement to instanciate them, and the caller now just needs to use directly the variables which were referenced before call (here a and b). Clean and mean. And it allows strong typechecking as well (so this is a real help for programmers.
    Note that the signature of the method() above is:
    class call {
    (int, int) method(int, int, String) { ... }
    id est:
    class "call", member name "method", member type "(IILjava.lang.string;)II"
    This last signature means that the method can only be called by returning the value into a pair of variables of type int, or using the return value as a pair of actual arguments for another method call such as:
    call.method(call.method("dummy input arg"), "other dummy input arg")
    This is strongly typed and convenient to write and debug and very efficient at run-time...

    Can anyone give me some real-world examples where
    multiple return values aren't better captured in a
    class that logically groups those values? I can of
    course give hundreds of examples for why it's better
    to capture method arguments as multiple values instead
    of as one "logical object", but whenever I've hankered
    for multiple return values, I end up rethinking my
    strategy and rewriting my code to be better Object
    Oriented.I'd personally say you're usually right. There's almost always a O-O way of avoiding the situation.
    Sometimes though, you really do just want to return "two ints" from a function. There's no logical object you can think of to put them in. So you end up polluting the namespace:
    public class MyUsefulClass {
    public TwoInts calculateSomething(int a, int b, int c) {
    public static class TwoInts {
        //now, do I use two public int fields here, making it
        //in essence a struct?
       //or do I make my two ints private & final, which
       //requires a constructor & two getters?
      //and while I'm at it, is it worth implementing
      //equals(), how about hashCode()? clone()?
      //readResolve() ?
    }The answer to most of the questions for something as simple as "TwoInts" is usually "no: its not worth implementing those methods", but I still have to think about them.
    More to the point, the TwoInts class looks so ugly polluting the top level namespace like that, MyUsefulClass.TwoInts is public, that I don't think I've ever actually created that class. I always find some way to avoid it, even if the workaround is just as ugly.
    For myself, I'd like to see some simple pass-by-value "Tuple" type. My fear is it'd be abused as a way for lazy programmers to avoid creating objects when they should have a logical type for readability & maintainability.
    Anyone who has maintained code where someone has passed in all their arguments as (mutable!) Maps, Collections and/or Arrays and "returned" values by mutating those structures knows what a nightmare it can be. Which I suppose is an argument that cuts both ways: on the one hand you can say: "why add Tuples which would be another easy thing to abuse", on the other: "why not add Tuples, given Arrays and the Collections framework already allow bad programmers to produce unmainable mush. One more feature isn't going to make a difference either way".
    Ho hum.

  • Extensions like Ghostery, WOT or AdBlock stop working after two or three times. Restarting the webpage in a new tab the extensions will work again for several times and then stop again. Has anybody an explanation or a workaround for this bug in Safari 5?

    Extensions like Ghostery, WOT or AdBlock stop working after two or three times. Restarting the webpage in a new tab the extensions will work again for several times and then stop again. Has anybody an explanation or a workaround for this bug in Safari 5?

    Remove the extensions, redownload Safari, reload the extensions.
    http://www.apple.com/safari/download/
    And if you really want a better experience, use Firefox, tons more choices and possibilities there.
    Firefox's "NoScript" will block the Trojan going around on websites. Best web security you can get.
    https://addons.mozilla.org/en-US/firefox/addon/noscript/
    Ghostery, Ad Block Plus and thousands of add-ons more have originated on Firefox.

  • Bug? My events on the iPad iCal app aren't shown in the year view if they are more than two years in the future.

    My events on the iPad iCal app aren't shown in the year view if they are more than two years in the future even though I can see them on the month, week and day view. Any suggestions on how to fix it? I've tried it all. I called the apple support and they checked on their iPads. They all did the same and they couldn't help me. They suggested trying this way. I'd like to be able to plan a few years ahead and the year view would make thing so easy!
    Is this a bug?

    Go to the Home screen and double click the Home button. That will reveal the row of recently used apps at the bottom of the screen. Tap and hold on the app in question until it wiggles and displays a minus sign. Tap the minus sign to actually quit the app. Then tap anywhere on the screen above that bottom row to return the screen to normal. Then restart the app and see if it works normally.
    Then reboot your iPad. Press and hold the Home and Sleep buttons simultaneously ignoring the red slider until the Apple logo appears. Let go of the buttons and let the iPad restart. See if that fixes your problem.

  • HT4528 My IPhone Bugged out/It is currently in the reset mode. I need to exchange all of my contacts from my Yahoo acct. to my new IPHONE. Can you please help me?

    Hello ,
    I purchased my IPHONE about 2 months ago. I am visiting family in DE & this tuesday it starting to go off & on by itself. Then the icons looked like they were floating . Then I could not call or text . The SIRI device would not work. Then it would shut down then the apple icon would reappear. I took it to a verizon dealer in Rehoboth DE & they said it BUGGED OUT/It is in a RESTORE MODE. It will not turn on. We could not transfer anny of my pics or contacts. I never even had a chance to back up the memory on ITUNES.
    The tech @ Verizon said to contact APPLE to trouble shoot and try and transfer the contacts from my yahoo acct.
    Can you please help?
    Gina

    set up your yahoo account in mail, contacts, calendars as an Exchange Account and you should be able to get your contacts from Yahoo from there.

  • ICal bug!

    Didn't know where to post it so I decided to post it here. Not a major bug, but a bug nevertheless. Maybe someone here wants to check it out on their iCal so I get a sense if it is touching just me or anyone else.
    Follow all steps:
    - open iCal in weekly view.
    - click on a day differen than "today".
    - click on "today" on the upper left side (where "today" is written ).
    - click on the red dot to "close the app" without really closing it.
    - reopen iCal by clicking on the icon.
    Now you should have the today button greyed out, no matter which day you choose. The only way to have it back is to close and reopen iCal.
    No data loss, nothing... Just a little bug I found in iCal.
    I run Mac OSX 10.5.4 on a MacBook Pro 17" no plugins, nothing installed. Software is in italian.
    Anyway: others get the same result? (just checked it again to be really sure it is indeed not working, and it's not..)

    Has a real solution to this bug been found yet? It has been on going for me and has become annoying. The only way to get the "today" button and the search feature to work, is to quit iCal and start it again.
    Very annoying.

  • Okay, the iTunes 8.2 bug that I had on my iPod Touch is back with my iPhone

    I have new iPhone 3GS that I picked up this morning at 7 am. I love it, but the iTunes 8.2 bug that is being thoroughly discussed in the iPod Touch forum is back and affecting my iPhone 3GS. I did read one random post that a Apple Tech Support person said to unplug the internet (disconnect your internet) before plugging it in. I don't know why, but it worked and makes me wonder if this will also work for iPod Touch users. Weird, but it is definitely a nice work around for now!

    I got it again. I plug in the iPhone into my computer and it is telling that it thinks it is a camera because it is trying to launch Canon CameraWindow, MS scanner, Picasa3, etc. Then iTunes says, "An iPhone has been detected, but it could not be identified properly. Please, disconnect and reconnect the iPhone, then try again." Yes, I tried again, and completely uninstalled iTunes and all things Apple to only re-install it. I am at my whits end again!

  • IOS 8 - Photos app bug - "stuttering" effect on Year view

    Hi Folks,
    On the iPhone6 Plus 128GB with iOS8.1.3 (with 15000 photos inside several years go), I notice that when using the Photos native app in the “Year view” (yearly mosaic view), if I scroll up or down slightly fast, the scrolling that you get has a little “stuttering” or “jerking” effect, so the UI is not perfectly smooth in this view inside Photos native app.
    Have you noticed it in your own iPhone's with iOS8.1.3. and also having a huge size photo callery as I have (>10000 photos spread in several years)? (I think that is it very important, because if you have not a huge photo gallery, probably you will not see the “stuttering” or “jerking” effect that I am describing).
    I think this is a bug which impacts iOS User eXperience, which needs to be fixed.
    Thanks by your feedback!

    Hi Guys!
    Any experience to share with us, please?
    Thanks!

Maybe you are looking for