www.archive-net-2013.com » NET » E » ECKENFELS

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".

    Archived pages: 629 . Archive date: 2013-09.

  • Title: Java Stream mit Puffer einlesen - IT Blog
    Descriptive info: Java Stream mit Puffer einlesen.. SSL/TLS BEAST Lücke.. |.. E-Mail versenden von Amazon EC2.. 23:45.. Freitag, 9.. Dezember 2011.. Bin heute zufällig über folgende Methode gestolpert:.. String readToString1(InputStream in) throws IOException { byte[]buf = new byte[256]; StringBuilder sb = new StringBuilder(); int n; do { n = in.. read(buf, 0, 256); if (n > 0) { String s = new String(buf, 0, n, "UTF-8"); sb.. append(s); } } while(n > 0); return sb.. toString(); }.. Diese Funktion soll einen InputStream dessen Zeichen UTF-8 codiert sind in einen String lesen.. Problem (mal abgesehen von der unnötigen Verwendung des if und den temporär angelegten String Objekten) bei dieser Funktion ist allerdings, dass der 256-byte Puffer in einen String umgewandelt wird, denn dabei werden ein oder mehrere Bytes durch den Zeichenkonverter gelesen.. Falls der Zeichenkonverter dabei am ende des Puffers anlangt, so ist das Zeichen unvollständig.. Das führt dann dazu dass ein Ersetzungszeichen (das Fragezeichen) am Ende des String steht.. Man sollte solche starren bytepuffer also vermeiden, wenn man diese in Zeichen umwandeln will.. Besser ist folgendes Vorgehen:.. String readToString2(InputStream in) throws IOException { char[] buf = new char[128]; StringBuilder sb = new StringBuilder(); Reader r = new InputStreamReader(in, "UTF-8"); int n; while((n = r.. read(buf, 0, 128)) != -1) { sb.. append(buf, 0, n); } return sb.. Um das unterschiedliche Verhalten zu testen, erzeuge ich einen InputStream der an ungeraden Byte Positionen Umlaute hat (also zuerst ein 1 byte Zeichen und dann lauter 2 byte Umlaute) und übergebe beiden Testmethoden diese Streams..  ...   mit einem char array buffer (und nicht einzelnen Zeichen) gelesen.. Zudem liest der InputSreamReader() aus dem darunterliegenden InputStream mit einem StreamDecoder der einen eigenen Lesepuffer (bei den Sun Klassen ist das ein 8kb Puffer) hat.. Bin heute zufällig über folgende Methode gestolpert:String readToString1(InputStream in) throws IOException { byte[]buf = new byte[256]; StringBuilder sb = new StringBuilder(); int n; do { n = in.. read(buf, 0, 256); if (n > 0) { String s = new String(buf, 0, n, \"UTF-8\"); sb.. toString(); }Diese Funktion soll einen InputStream dessen Zeichen UTF-8 codiert sind in einen String lesen.. Man sollte solche starren bytepuffe.. Trackbacks.. Trackback-URL für diesen Eintrag.. Keine Trackbacks.. Ansicht der Kommentare: (Linear |.. Verschachtelt.. ).. Hi eckes,.. interessanter post.. Am Ende noch ein +hat ;).. Grüße,.. Michael (KA).. #1.. Michael.. am.. 13.. 12.. 2011 08:06.. Antwort.. danke, gefixed :).. #2.. 17.. 2011 01:01.. Kommentar schreiben.. Name.. E-Mail.. Homepage.. Antwort zu.. [ Ursprung ].. #1: Michael am 13.. 1: Bernd Eckenfels am 17.. Kommentar.. BBCode.. -Formatierung erlaubt.. Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.. Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen.. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden.. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.. Hier die Zeichenfolge der Spamschutz-Grafik eintragen:.. Pavatar.. Gravatar.. Favatar.. MyBlogLog.. Autoren-Bilder werden unterstützt.. Daten merken?.. Verlinkung.. Eingehende Links.. www.. facebook.. [1].. google.. Blogsphere.. netcraft uptime.. Technorati Profile..

    Original link path: /index.php?url=archives/479-Java-Stream-mit-Puffer-einlesen.html&serendipity[cview]=linear
    Open archive

  • Title: Java Stream mit Puffer einlesen - IT Blog
    Descriptive info: Ansicht der Kommentare: (.. Linear.. | Verschachtelt)..

    Original link path: /index.php?url=archives/479-Java-Stream-mit-Puffer-einlesen.html#feedback
    Open archive

  • Title: IPv6 default address selection in Java - IT Blog
    Descriptive info: IPv6 default address selection in Java.. Windows 7 hosts-file ignoriert IP Addressen mit 0 prefix.. STRIDE vs.. CIA.. 05:59.. Dienstag, 28.. Juni 2011.. Da bei IPv6 Nodes (also Rechner und andere Teilnehmer an einem Netzwerk) schon konzeptionell mehrere Adressen haben ist die Auswahl welche Quell- und Zieladresse verwendet werden soll eine wichtige Funktion.. Insbesondere dann wenn ein Rechner im Dual-Stack Betrieb sowohl IPv4 als auch IPv6 Adressen erreichen kann.. Bei IPv6 kann jedes Netzwerkinterface mehrere IPv6 Adressen haben, die dann entweder in unterschiedlichen Bereichen (Scopes) genutzt werden können (localhost, link, site, global) oder die unterschiedliche Bevorzugt (valid, prefered) sind.. Durch die Unterstützung von Renumbering (stateless autoconfiguration) haben Adressen unterschiedliche Lebenszeiten.. Zudem gibt es Adressen die über eine Migrations-/Tunnel Technologie wie Toredo, ISATAP oder 6to4 bereitgestellt werden, und nicht immer benutzt werden sollen.. Idealerweise würde eine Anwendung oder das Betriebssystem alle möglichen Quell/Ziel-Adresskombinationen ermitteln, und alle (aussichtsreichsten zuerst) durchprobieren.. RFC 3484.. beschreibt ein Verfahren für die.. Default Address Selection für IPv6.. Der von Microsoft Research verfasste Entwurf gibt Regeln vor wie die Auswahl von Ziel- und Quelladressen zu geschehen hat, und definiert auch eine Möglichkeit dass der Administrator eines Systems eigene Gewichtungen definieren kann.. Ideal wäre eine Laufzeit Funktion, der man einen Hostnamen übergibt, und die dann die Verbindung zur Gegenstelle herstellt und dabei alle Regeln des RFC 3484 (und dringend notwendiger.. zukünftiger Verbesserungen.. ) beachtet.. Durch die Trennung zwischen Kernel und Usermode, und aus Gründen der Kompatibilität mit existierendem Netzwerkcode verwenden die meisten* Systeme allerdings ein anderes Verfahren.. Bestehende Funktionen wie z.. getaddrinfo(3).. wurden erweitert: die Auflösung von Hostnamen in Adressen liefert jetzt eine nach Präferenzen sortierte Liste der Zieladressen zurück.. Dabei greift die Bibliotheksfunktion auf Adress- und Routinginformationen  ...   werden die alle probierten Zieladressen benennt und den ersten (oder alle) Fehlermeldungen benennt.. Beispielhaft kann dies so aussehen:.. Socket connectToHost(String host, int port) throws UnknownHostException, SocketException { IOException firstException = null; InetAddress[].. addressArray = InetAddress.. getAllByName(host).. ;.. for(InetAddress addr : addressArray).. { try {.. return new Socket(addr, port).. ; } catch (IOException ex) { if (firstException == null) firstException = ex; } } // build informative error message StringBuilder msg = new StringBuilder("Unable to connect to host="); msg.. append(host); msg.. append(" port="); msg.. append(String.. valueOf(port)); msg.. append(" ["); for(int i=0;i addressArray.. length;i++) { if (i != 0) msg.. append(','); msg.. append(addressArray[i]); } msg.. append("]: "); msg.. append(firstException.. getMessage()); SocketException se = new SocketException(msg.. toString()); se.. initCause(firstException); throw se; }.. Dieser Code überlässt die Auswahl einer Quelle dem Kernel (es werden also nicht alle möglichen Kombinationen durchprobiert).. Ebenso ist kein Handling für Timeouts enthalten, und ein Cache der Verbindungszustände erinnert oder gar ein paralleler Aufbau zu mehreren Zielen ist noch nicht enthalten.. Trotzdem ist der Code schon recht komplex, sollte also nicht mehrfach implementiert werden müssen.. Von.. InetAddress.. getByName(String host).. würde ich auf jeden Fall Abstand nehmen.. Diese Methode gibt nur die bevorzugte Addresse zurück, und führt bei DualStack Anwendungen dazu, dass nicht IPv6 und IPv4 Adressen durchprobiert werden.. * Microsoft ist typischerweise Entwicklerfreundlicher und muss weniger Rücksicht nehmen auf etablierte APIs, deswegen gibt es die Funktion.. WSAConnectByName().. die alle Addressen selbst durchprobiert.. ** Java kennt.. Socket(String name, int port).. , dieser Konstruktor verwendet aber keine Schleife um alle möglichen Adressen zu kontaktieren.. Idealerweise würde eine Anwendung oder das Betriebssystem alle möglichen Quell/Ziel-Adresskombinationen ermitteln, und alle (aussichtsreichsten zuerst) durchpr.. Noch keine Kommentare.. [388].. [639].. [406].. [4773].. domaincrawler.. [23].. jetsli.. [16]..

    Original link path: /index.php?url=archives/474-IPv6-default-address-selection-in-Java.html&serendipity[cview]=linear
    Open archive
  •  

  • Title: Lambdas in Java - IT Blog
    Descriptive info: Lambdas in Java.. Warum geht Wissen verloren.. Ticker auf dem iPhone.. 21:27.. Samstag, 4.. April 2009.. Gerade bastle ich an einem Wrapper für DataSources der im Umgang mit Datenbanken helfen soll (zusätzliche Statistiken, blocking bei DB Fehlern und pausieren von DB Anfragen).. Dabei wrappe ich zwei Methoden getConnection() und getConnection(String, String).. Nur der Aufruf der realen Methode unterscheidet sich, der restliche Code ist in beiden Methoden gleich:.. CODE:.. public Connection getConnection String user, String pass.. { verifyState ; while true { try { Connection c = ds.. getConnection user, pass ; verifyConnection c ; // throws SQLEx return c; } catch SQLException e { handleException e ; // throws SQLEx } } } public Connection getConnection.. getConnection ; verifyConnection c ; // throws SQLEx return c; } catch SQLException e { handleException e ; // throws SQLEx } } }.. Im Sinne von DRY (don't repeat yourself) ist dies aber unschön, weil der (in Realität noch komplexere) Retry code doppelt vorkommt, und ich immer beide Methoden anpassen muss.. Dieses Problem kommt oft bei Frameworks vor, und nennt sich ".. the whole in the middle.. " Muster.. Eine Lösung wäre:.. public Connection getConnection String user, String pass { return smartConnect true, user, pass ; } public Connection getConnection { return smartConnect false, null, null ; } Connection smartConnect boolean hasArgs, String user, String pass { verifyState ; while true { try { Connection c; // --- the  ...   ; } public Connection getConnection { return smartConnect new ConnectionProvider { Connection provide { return ds.. getConnection ; }} ; } Connection smartConnect ConectionProvider cp { verifyState ; while true { try { Connection c = cp.. provide ; verifyConnection c ; // throws SQLEx return c; } catch SQLException e { handleException e ; // throws SQLEx } } } abstract class ConnectionProvider { Connection provide ; }.. Der smartConnect() code wird damit lesbarer, und man kann auch komplexere Aktivitäten injizieren (eventuell mit Argumenten zur provide() methode), aber man muss jetzt noch eine extra Klasse definieren und alles in allem wird es auch mehr Code.. Bei jedem Aufruf wird ein zusätzliches Objekt erzeugt.. Ich denke ich werde also eher bei dem "if" Ansatz bleiben.. Ich vermute mal der Syntaktische Zucker "Lambda Expression" erzeugt bei C# auch ein extra Call Objekt, aber es fällt wesentlich weniger zusätzlichen Code beim Aufruf an.. Kommentar (1).. Nur der Aufruf der realen Methode unterscheidet sich, der restliche Code ist in beiden Methoden gleich: CODE:public Connection getConnection String user, String pass.. getConnection user, pass ; verifyConnection c ; // throws SQLEx re.. Bei der c# Lambda Expression gibt es ja ein throw statement.. Verglichen mit dem console.. writeLine() die ja eine method invocation expression mit dem void Type darstellt.. netvance Softwareentwicklung.. 14.. 09.. 2009 12:17.. #1: netvance Softwareentwicklung am 14.. [767].. [997].. bing.. [6].. ak-zensur.. [4].. at.. [3].. blogsearch.. markhneedham.. ecosia..

    Original link path: /archives/441-Lambdas-in-Java.html
    Open archive

  • Title: Eclipse MAT und IBM Heapdumps (Cont.) - IT Blog
    Descriptive info: Eclipse MAT und IBM Heapdumps (Cont.. Datenschutz bei Bahn und Telekom.. Comment Tracking.. 01:52.. Donnerstag, 12.. Februar 2009.. In meinem.. letzten Artikel.. zum IBM Plugin für den Eclipse Memory (Dump) Analyser (.. MAT.. ) hatte ich noch beschrieben, dass der Import nur mit IBM Systemdumps zurechtkommt.. IBM hat jetzt.. nachgelegt.. und kann nun auch das Portable Heap Dump (PHD) Format verarbeiten.. Dabei gibt es aber Einschränkungen zu beachten.. Dieses Format enthält zum Beispiel keine detaillierten Feld Inhalte und ohne Javacore Files fehlen Classloader Details..  ...   PHD Format abgelegt, und diese können jetzt auch gelesen werden.. In meinem letzten Artikel zum IBM Plugin für den Eclipse Memory (Dump) Analyser (MAT) hatte ich noch beschrieben, dass der Import nur mit IBM Systemdumps zurechtkommt.. IBM hat jetzt nachgelegt und kann nun auch das Portable Heap Dump (PHD) Format verarbeiten.. html Das System Format sollte man bevorzugen, die Out of Memory Dumps werden aber normalerweise im PHD Format abgelegt, und diese können jetzt auch gelesen werden.. [1065].. [670].. com/developerworks/java/jd.. k/tools/mat.. [897].. co.. uk..

    Original link path: /archives/433-Eclipse-MAT-und-IBM-Heapdumps-Cont..html
    Open archive

  • Title: JBoss Hilfe gesucht - IT Blog
    Descriptive info: JBoss Hilfe gesucht.. Pointer: Bad Java PRNG (Dinge die man beachten sollte).. Pointer: SOA ist tot (eigener Artikel auf unternehmer.. de).. 12:24.. Montag, 12.. Januar 2009.. Ich bin auf der Suche nach (bezahlten) Experten im Bereich JbossMQ.. Wir haben uns natürlich zuerst an RedHat gewannt mit unserer Anfrage.. Die Annahme war, wir könnten uns eine Fragestunde mit einem der Entwickler kaufen (für eine spezifische 4.. 2 JBoss Version).. Leider bietet RedHat diese Option nicht an.. Deswegen haben wir uns sogar überlegt eine entsprechende Partnerschaft mit Support Vertrag abzuschliessen.. Leider würde uns auch die nicht ermöglichen unsere bisherige Release Stratagie weiterzufahren, mal ganz abgesehen davon dass wir erheblichen Zusatzaufwand (Arbeit, Geld) für die Kundenlizensierung aufbringen müßten.. Effektiv wäre dies ein embedded kommerzielles Produkt, was wir uns damit einhandeln würden.. Diese unflexiblen Haltung ist eine Enttäuschung für uns.. Es sieht danach aus, dass RH sich für dieses Vorgehen entschieden hat aus der Angst mit bezahltem Support für Jboss.. org sich das Geschäftsmodell für JBoss.. com kaputt zu machen.. Diese Strenge Trennung zwischen den Produkten und die Distanzierung von der Community war mir so bis dahin noch nicht bewusst geworden.. Aus dem Grund suche ich jetzt Entwickler (idealerweise Commiter) die sich mit JBossMQ auskennen (konkret geht es um das bekannte Problem dass MDBs  ...   noch einfällt, JBossMQ hat zumindest in der 4.. 3 noch ein komisches Verhalten mit CheckedExceptions innerhalb des MessageBean Lifecycles gehabt.. Hoffe das hilft.. Gruß Achim.. Joachim Arrasz.. ) am.. 01.. 2009 18:11.. meinst du Exceptions in der onMessage() Methode? Also da haben wir eigentlich weder mit checked noch unchecked Exceptions Probleme, die fuehren zu einem Rollback und Redelivery.. Ob dabei allerdings Bean Instanzen hängen bleiben haben wir noch nicht getestet, das muss ich mir gleich mal ansehen, danke für den Tipp.. 2009 23:14.. Hallo Bernd,.. hast Du denn mittlerweile Erfolge gehabt?.. 02.. 2009 08:33.. Ja, also wie man es nimmt.. Einen Fehler habe ich jetzt selbst gefunden und es gibt schon einen Patch von Adrian für, den konnten wir backporten:.. https://jira.. jboss.. org/jira/browse/JBAS-6412.. Danke für die Leute die sich gemeldet hatten, scheint aber nicht möglich zu sein sich Committer Hilfe zu erkaufen.. Wir verhandeln noch mit RH wegen Support Kontrakt, aber das gestaltet sich schwierig, da müßten wir alle OSS Vorteile aufgeben.. Derweilen bauen wir halt die letzten paar schwachen Stellen von JbossMQ grade selber etwas aus:.. org/jira/browse/JBAS-6498.. Ich wollte darüber mal bei Gelegenheit bloggen.. Gruss.. Bernd.. 2009 11:05.. #1: Joachim Arrasz am 14.. 1: Bernd Eckenfels am 14.. 1: Joachim Arrasz am 13.. 1: Bernd Eckenfels am 13.. bloglines.. groups..

    Original link path: /archives/426-JBoss-Hilfe-gesucht.html
    Open archive

  • Title: Pointer: Bad Java PRNG (Dinge die man beachten sollte) - IT Blog
    Descriptive info: Pointer: Bad Java PRNG (Dinge die man beachten.. Der Community Manager.. Sonntag, 11.. Es ist immer wieder interessant die Analysen von Dan Dyer zu lesen.. Er ist der Kopf hinter Java library uncommons-math, die insbesondere brauchbare Alternativen für Zufallszahlengeneratoren liefert.. int[] vals = new int[8]; for (int i = 0; i.. Dass dieser Code "falsch" ist weil er jeweils einen neuen PRNG erzeugt ist offensichtlich, warum es aber keinerlei vernünftig verteilte Zufallszahlen liefert (trotz den unterschiedlichen Seeds) ist eine ganz andere Sache, die er in seinem.. Artikel.. gut beschreibt.. [682].. systemhelden..

    Original link path: /archives/425-Pointer-Bad-Java-PRNG-Dinge-die-man-beachten-sollte.html
    Open archive

  • Title: Java Heapdumps und IBM - IT Blog
    Descriptive info: Java Heapdumps und IBM.. IT-Gipfel.. Fehlermeldung des Jahres 2008.. 19:43.. Montag, 1.. Dezember 2008.. IBM JVM.. unterscheidet sich in einigen Aspekten deutlich von der Sun JVM.. Im Bereich Betrieb gibt es eine ganze Reihe von Features die im IBM Java Diagnostics Guide (.. 5.. 6.. ) zusammengefasst sind.. Einen Bereich - den Java Heapdump - möchte ich hier mal näher beleuchten:.. Die IBM JVM kennt den klassischen Java Heap Dump, also einen Abzug der Java Objekte im Speicher.. Diese Heap Dumps gibt es in verschiedenen Formaten.. IBM unterstützt eine Textvariante und das sogenannten.. Portable Heap Dump.. Format, eingeschaltet mit -Xdump:heap.. Problem ist, dass es nur von IBM Analysetools ausgewertet werden kann.. Einer der besten freien Heap Dump Betrachtern ist das von der SAP gestiftete Projekt.. Eclipse MAT.. Im Sun Umfeld sind diese Heap Dumps im HPROF Binary Format.. Das Memory Analyser Tool kann deswegen Dumps von Sun, SAP und HP VM lesen.. Gerade hat aber IBM ein Eclipse Pluging bereitgestellt, den.. IBM DTFJ Adapter.. Dieses Plugin der den MAT um Import Möglichkeiten erweitert kann aber das PHD Format nicht verarbeiten.. Die Java spezifischen Heap Dumps haben ein Vorbild: die Speicherabzüge (Core Dumps) der Betriebsysteme.. Core Files oder Dr.. Watson Logfiles werden angelegt wenn eine Anwendung eine kritische Ausnahme verursacht (z.. Zugriffsschutzfehler).. Im Falle der IBM VM kann man solche Core Dumps aber ebenfalls für die Analyse von Java Heaps verwenden.. Die von IBM genannten.. System Dumps.. werden mit der -Xdump:system  ...   jextract keine Warnung oder Fehler gemeldet hat.. Der Ansatz auf dem Produktivsystem den Dump vorzuverarbeiten finde ich ganz geschickt, denn nicht immer hat der Entwickler Zugriff auf ein System mit vergleichbarer Kapazität.. Übrigens kann dieses ZIP auch von dem IBM Diagnose Tool Framework for Java verarbeitet werden, so kann man Analyseprogramme die den Heap durchsuchen auch direkt in Java schreiben und auf dem Produktivserver ausführen.. Trackback (1).. Die IBM JVM unterscheidet sich in einigen Aspekten deutlich von der Sun JVM.. Im Bereich Betrieb gibt es eine ganze Reihe von Features die im IBM Java Diagnostics Guide (5.. 0, 6.. 0) zusammengefasst sind.. Einen Bereich - den Java Heapdump - möchte ich hier mal näher beleuchten: Die IBM JVM kennt den klassischen Java Heap Dump, also einen Abzug der Java Objekte im Speicher.. IBM unterstützt eine Textvariante und das sogenannten Portable Heap Dump Format, eingeschaltet mit -Xdump:heap.. Einer der besten freien Heap Dump Betrachtern ist das von der SAP gestiftete Projekt Eclipse MAT.. Gerade hat aber IBM ein Eclipse Pluging bereitgestellt, den IBM DTFJ Adapter.. Dieses Plugin der den MAT um Import Möglichkeiten erweitert kann aber das.. In meinem letzten Artikel zum IBM Plugin für den Eclipse Memory (dump) Analyser hatte ich noch beschrieben, dass der Import nur mit Systemdumps zurrechtkommt.. IBM hat jetzt nachgelegt und kann nun auch Dumps im Portable Heap Dump (PHD) Format verarbeiten.. Weblog:.. Aufgenommen:.. Feb 12, 02:02.. [630].. [687].. [676].. [760].. [846].. search.. daum.. [2].. thegatefirm..

    Original link path: /archives/417-Java-Heapdumps-und-IBM.html
    Open archive

  • Title: Java Programming - IT Blog
    Descriptive info: Java 6u10 ist da (und 6u7 für Itanium).. 07:30.. Freitag, 17.. Oktober 2008.. In einer Panik-artigen Aktion hat Sun einige neue Features gesammelt und als Update für Java 6 im Project.. Update-N.. oder Update 10 zusammengefasst.. Darunter fallen Verbesserungen für die Installation (Inkrementeller Download), Beschleunigung von Grafik und Swing und ein neues.. Java Plugin.. (für Applets).. Am 15.. Oktober fand dann die FCS statt, das.. Java SE 6 Update 10.. ist jetzt zum Download verfügbar.. Ich bin mal gespannt wie viele Probleme dieses mal auftreten werden in existierenden Anwendungen.. Interessant ist auch, dass Sun nach Jahren wieder (Anfang Oktober) ein JDK für Itanium anbietet.. Die 64bit JVM wird für Linux und Windows angeboten.. Im Bereich Tooling (VisualVM, JavaDB) und Plugin (Applet) sowie im Bereich Multi Media (Linux Alsa Sound) existieren allerdings starke Einschränkungen.. Eignet sich so nur für den Server Einsatz.. HP dürfte mit seiner JRE für IA64 aber deutlichen Optimierungsvorsprung haben.. Update:.. InfoQ hat einen interessanten engl.. In einer Panik-artigen Aktion hat Sun einige neue Features gesammelt und als Update für Java 6 im Project Update-N oder Update 10 zusammengefasst.. Darunter fallen Verbesserungen für die Installation (Inkrementeller Download), Beschleunigung von Grafik und Swing und ein neues Java Plugin (für Applets).. Oktober fand dann die FCS statt, das Java SE 6 Update 10 ist jetzt zum Download verfügbar.. Update: InfoQ hat einen interessanten engl.. Fehlende Sektoren (Dynamic VHD Files).. 21:47.. Freitag, 19.. September 2008.. Ich installiere gerade eine Java Anwendung in einem Windows 2008 Server.. Dabei verwende ich ein Windows XP als Host, Sun's VirtualBox als VMM und das Windows 2008 Core Edition liegt als dynamisch wachsende virtuelle Festplatte im VHD Format vor.. Jetzt trat das Problem auf, dass der Host nicht mehr genug Speicherplatz für das wachsende Image hatte.. Dies wurde dem Java Programm sauber als IOException gemeldet, aber als Reason wird (verständlicherweise) kein "file system full" oder "no space on device" gegeben, sondern die Meldung:.. ".. The drive cannot find the sector requested.. Dies ist verständlich, wenn man sich vor Augen hält dass der IDE Treiber den Fehlerzustand an das NTFS des Guests melden muss.. Ein "Kann den Sektor nicht belegen" ist so ziemlich der passendste Fehler der man sich in der Schicht denken kann.. Dieser Bug ist übrigens extrem kritisch.. Im Gegensatz zur Platznot im Filesystem - von der sich das Filesystem wieder erholen kann - sind Allocation Fehler von beliebigen Sektoren deutlich kritischer, insbesondere wenn das bei Filesystem Meta Blöcken passiert statt bei Datenblöcken.. Schnell kann das Filesystem dann aussteigen.. Dies wiederum ist der Tot des Servers, wenn es sich dabei um System-Partition oder Swap-Partition handelt.. Diese Laufwerksarten sollte man also in einer virtualisierten Umgebung niemals auf eine virtuelle Disk mit uncommited Speicher legen.. Sicher kann man damit etwas Platz sparen und wenn man das ganze überwacht passiert es selten.. Aber wenn es passiert, so kann man den Guest erst mal rebooten (worst case).. Hardware.. Dabei verwende ich ein Windows XP als Host, Sun\'s VirtualBox als VMM und das Windows 2008 Core Edition liegt als dynamisch wachsende virtuelle Festplatte im VHD Format vor.. Dies wurde dem Java Programm sauber als IOException gemeldet, aber als Reason wird (verständlicherweise) kein \"file system full\" oder \"no space on device\" gegeben, sondern die Meldung: \"The drive cannot find the sector requested\" Dies ist verständlich, wenn man sich vor Augen hält dass der IDE Treiber den Fehlerzustand an das NTFS des Guests melden muss.. Ein \"Kann den Sektor nicht belegen\" ist so ziemlich der passendste Fehler der man sich in der Schicht denken kann.. Im Gegensatz zur Platznot im Filesystem - von der sich das Filesystem wieder erholen kann - sind Allocation.. Verspielte Zusammenarbeit.. 08:37.. Donnerstag, 7.. August 2008.. Virtuelle Realitäten wie Second Life werden ja schon für Geschäftsmeetings (z.. Vorträge) genutzt.. Sun arbeitet mit.. Project Wonderland.. an einer Plattform, die speziell für die Zusammenarbeit in Teams ausgelegt ist.. Hier ein nettes.. Demo Movie.. der Telefon Integration in Wonderland.. Und eine ältere Demo des "virtuellen" Sun Gebäudes.. MPK20.. Das ganze ist verspielt, und es muss sich erst zeigen ob Konferenzteilnehmer dadurch wirklich Produktivität gewinnen und nicht verlieren, aber unterhaltsam ist es allemal.. Sun arbeitet mit Project Wonderland an einer Plattform, die speziell für die Zusammenarbeit in Teams ausgelegt ist.. Hier ein nettes Demo Movie der Telefon Integration in Wonderland.. Und eine ältere Demo des \"virtuellen\" Sun Gebäudes MPK20.. Terminkonflikt.. 14:24.. Mittwoch, 16.. Juli 2008.. Heute finden an der Uni-Karlsruhe gleich zwei interessante Termine statt.. Java User Group Karlsruhe.. musste deswegen in den Raum -102UG in der Informatik Fakultät ausweichen, dort gibt es um 19:15Uhr (-21:15) einen Vortrag von Dr.. Patrick Schemitz (Netpioneer GmbH) zum Thema.. Grundladen [Web] Security Auditing.. In -101UG spricht Dr.. York Sure von SAP Research im Rahmen der.. GI/ACM Regionalgruppe Karlsruhe.. über.. Internet of Services.. Dabei geht es um den Einsatz von Semantischen Technologien bei der Vermarktung von Internet Services.. Beide Termine finden sich auf dem.. IT-Kalender des Stadtblog KA.. Dort findet sich auch eine Ankündigung für Morgen:.. Gründung des "Verein der Karlsruher Software-Ingenieure".. um 16:00-18:00 am FZI.. Näheres dazu in der.. Presseerklärung.. von FZI, KIT, adrena objects, 1&1, SAP und HsK.. Ich werde wohl bei der JUG-KA vorbeischauen heute Abend und mir Morgen die Info Veranstaltung ansehen.. Marketing.. SOA.. Die Java User Group Karlsruhe musste deswegen in den Raum -102UG in der Informatik Fakultät ausweichen, dort gibt es um 19:15Uhr (-21:15) einen Vortrag von Dr.. Patrick Schemitz (Netpioneer GmbH) zum Thema Grundladen [Web] Security Auditing.. York Sure von SAP Research im Rahmen der GI/ACM Regionalgruppe Karlsruhe über Internet of Services.. Beide Termine finden sich auf dem IT-Kalender des Stadtblog KA.. Dort findet  ...   sehr gut versorgt gefühlt.. Mir persönlich hat eine Moderation und Betreuung der Redner gefehlt.. Bis auf die Keynote von Mike Milinkovich (Executive Director Eclipse Foundation) waren die Vorträge teils Produkt/Marketing related und teils Vorträge von Praktikern.. Witzigerweise haben die meisten davon auf Ihre High-Profile Kollegen die den gleichen Vortrag auf dem Linuxtag halten werden verwiesen.. Heute ist der erste Tag an dem die Veranstaltung parallel zur Webinale stattfindet, bin mal gespannt wie die Besuchsberichte so ausfallen.. Ich werde heute nicht dort sein, dafür aber Abends als Gast auf dem.. Geek Girl Dinner.. (Fotos bei.. Mela.. Karlsruhe.. Bilder des ersten Tages der Open Expo in Karlsruhe habe ich auf meinem Ipernity account abgelegt.. Ich werde heute nicht dort sein, dafür aber Abends als Gast auf dem Geek Girl Dinner (Fotos bei Mela).. jug-ka: SAP Memory Analyser.. 19:08.. Montag, 5.. ka-duke.. veranstaltet einen Vortrag über den SAP Memory Analyser, der nun Teil der Eclipse Infrastruktur ist.. Als Referent wird am.. Mittwoch 2008-05-07 19:15.. der SAP Mitarbeiter Markus Kohler den Vortrag in der Informatik Fakultät der Uni-Karlsruhe halten.. Ankündigung bei Google Groups.. : ein Artikel des Referenten gibt es in der Eclipse.. DZone.. ka-duke Die Java User Group Karlsruhe veranstaltet einen Vortrag über den SAP Memory Analyser, der nun Teil der Eclipse Infrastruktur ist.. Als Referent wird am Mittwoch 2008-05-07 19:15 der SAP Mitarbeiter Markus Kohler den Vortrag in der Informatik Fakultät der Uni-Karlsruhe halten.. Ankündigung bei Google Groups Update: ein Artikel des Referenten gibt es in der Eclipse DZone.. Java File Persistence II.. Donnerstag, 10.. April 2008.. Wie schon im.. ersten Teil.. beschrieben, muss man trotz der Platform Unabhängikeit von Java etwas über die Zielsysteme wissen, um grobe Fehler zu vermeiden:.. /** save data as UTF-8 string to file.. */ saveFile(String data, File file) throws IOException, UnsupportedEncodingException { OutputStream out = null; bytes[] b = data.. getBytes("UTF-8"); try { out = new FileOutputStream(file); out.. write(b); } catch(IOException ioe) { System.. err.. println("Cannot save data in UTF-8 to file " + file + ": " + ioe); throw ioe; // notify upper layer about problem } finally { silentClose(out); out = null; // BANG, problem unterdrückt.. } } silentClose(OutputStream out) { if (out != null) try { out.. close(); } catch (Exception ignored) { } }.. In diesem Fall wird zwar richtigerweise im Fehlerfall der Output Stream geschlossen und die dabei eventuell auftretende Exception ignoriert, aber viel kritischer ist der Fall in dem im try block keine Exception aufgetreten ist, aber dafür dann das close() fehlschlägt.. Es muss damit gerechnet werden dass im close() auf einem OutputStream eine IOException auftreten kann - sogar sehr häufig - der Grund dafür ist, dass zum einen der Stream einen flush() vor dem close() durchführen wird.. Dazu kommt noch, dass die close() Methode der letzte Zeitpunkt ist, in dem ein IO Fehler gemeldet werden kann.. Bei NFS ist es z.. so, dass der client wartet bis der Server den Empfang bestätigt hat.. Und dabei kann natürlich eine Menge schiefgehen.. Auch quota Überschreitungen können zu einer IOException führen.. Es hilft etwas als letztes Statement im try-block einen flush() durchzuführen, aber es besteht weiterhin ein Risiko dass close() fehlschlägt.. Eine wichtige Regel lautet also: bei Streams in die geschrieben wird kann close() einen Fehler werfen, diese darf nicht ignoriert werden (sonst gehen Daten verloren)!.. saveFile(String data, File file) throws IOException, UnsupportedEncodingException { OutputStream out = null; bytes[] b = data.. write(b);.. out.. close(); out = null;.. } catch(IOException ioe) { System.. println("Cannot save data in UTF-8 to file " + file + ": " + ioe); throw ioe; } finally { silentClose(out); out = null; } }.. Im Falle von NFS ist obiger Code ausreichend.. Nach dem close() ist es garantiert, dass die Daten permanent gespeichert sind.. Bei lokalen Filesystemen wird diese Garantie von den gängigen Betriebsystemen NICHT gegeben.. Die Daten können auch nach einem close() nur im lokalen Buffer Cache des Filesystems (RAM) liegen und erst nach einiger Zeit (typischerweise 5 Sekunden) an die Hardware Schicht übergeben werden.. Dies ist zwar gut für die Performance, aber ein potentielles Fenster für Datenverlust - und eventuell Korruption des Anwendungszustandes.. Wie dies zu vermeiden ist, betrachte ich im nächsten Teil (der kein Jahr auf sich warten lassen wird:).. Wie schon im ersten Teil beschrieben, muss man trotz der Platform Unabhängikeit von Java etwas über die Zielsysteme wissen, um grobe Fehler zu vermeiden: /** save data as UTF-8 string to file.. getBytes(\"UTF-8\"); try { out = new FileOutputStream(file); out.. println(\"Cannot save data in UTF-8 to file \" + file + \": \" + ioe); throw ioe; // notify upper layer about problem } finally { silentClose(out); out = null; // BANG, problem unterdrückt.. close(); } catch (Exception ignored) { } } In diesem Fall wird zwar richtigerweise im Fehlerfall der Output Stream geschlossen und die dabei eventuell auftretende Exception ignoriert, aber viel kritischer ist der Fall in dem im try block keine E.. Not-so-openDS.. 04:33.. Freitag, 30.. November 2007.. Offener Brief von Neil Wilson.. (directorymanager.. org).. über seine Freisetzung bei Sun und den Druck der auf die (gekündigten) Project-Owner der OpenDS (LDAP Server) Community ausgeübt wurden.. Wie Neil beschreibt ist das sicher ein Beipspiel für sich verselbständigendes Middle Management das den Sinn für die Realität verloren hat, aber.. wieviel dieser Manager gibts bei Sun noch?.. (via.. Ben Rockwood.. Intranet.. Product Management.. Offener Brief von Neil Wilson (directorymanager.. org) über seine Freisetzung bei Sun und den Druck der auf die (gekündigten) Project-Owner der OpenDS (LDAP Server) Community ausgeübt wurden.. wieviel dieser Manager gibts bei Sun noch? (via Ben Rockwood).. vorherige Seite.. (Seite 3 von 6, insgesamt 57 Einträge)..

    Original link path: /categories/7-Java-Programming/P3.html
    Open archive

  • Title: Java Programming - Einträge für Mai 2013
    Descriptive info: Einträge für Mai 2013.. (Seite 1 von 1, insgesamt 1 Einträge)..

    Original link path: /archives/2013/05/C7.html
    Open archive

  • Title: Java Programming - Einträge für September 2012
    Descriptive info: Einträge für September 2012..

    Original link path: /archives/2012/09/C7.html
    Open archive



  •  


    Archived pages: 629