Windows 7 + Adobe AIR Clipboard = Crash

Schon kurz nachdem ich auf meinem Rechner Windows 7 (x64) installiete, bemerkte ich ein immer häufigeres Zusammenbrechen des guten Windows Explorers. Aus nicht ersichtlichen Gründen hängte dieser sich immer und immer wieder auf. Eine konkrete Fehlermeldung gab es nicht. Es war das allgemeine „Windows Explorer Has Stopped Working…“-Fenster.
Nach einer Weile des Ausprobierens und ausführlichen Suchens bei Google, kreiste ich das Problem immer weiter ein. Zunächst kam ich darauf, dass es mit dem Rechtsklick zusammenhängen muss. Desweiteren fand ich Hinweise darauf, dass Firefox 3.5 dieses Problem verursachen kann.
Nachdem ich dies für mich jedoch ausgeschlossen habe, entdeckte ich den Bezug zu einer Software, die ich selbst mitentwickelt habe.
Bei Firefox wurde der Crash beim Handling mit der Windows-Zwischenablage ausgelöst. Mit diesen Informationen machte ich mich im Quellcode auf die Suche und konnte den Verbrecher schließlich dingfest machen.
Das Löschen der Zwischenablage mit Adobe AIR (1.5.3) bringt wohl den Windows Explorer aus dem Tritt.

Mit folgendem Code kann man dies einfach reproduzieren:

  1. var cb:Clipboard = Clipboard.generalClipboard;
  2. cb.clear();

Führt man diesen Code in einem Release aus und klickt danach mit der rechten Maustaste im Explorer auf einen Ordner, dann knallt es.

Die Lösung ist recht einfach. Man füttere die Zwischenablage nach dem Löschen zum Beispiel mit einem Leerstring:

  1. var cb:Clipboard = Clipboard.generalClipboard;
  2. cb.clear();
  3. cb.setData(ClipboardFormats.TEXT_FORMAT, "");