Problems displaying deserialized components

I'm trying to save the state of some objects which extend JComponent and JLayeredPane, and they don't all redisplay on deserializing, although they seem to be in the containment tree.
Basically, I have a class GamePanel which extends JLayeredPane. Also classes Square and Region both of which extend JComponent and use 2D graphics for painting themselves. It seems to serialize OK (but how does one tell?). But when I deserialize, only the lower level of the GamePanel is painted. However, the higher level is populated.
Does anyone have any idea why they're not displaying? The code is below (TestKiller and its menus are generated by NetBeans - hence the slightly odd code). There are 5 menu items (I've simplified a lot from the original so it's a bit clunky): Add Region (you can only do this once in this version), Save As which serializes to a file, Restore which deserializes from a file, Exit which is obvious and Print which outputs the containment hierarchy of GamePanel to standard output.
If you want to try it out, fire up the program, do a File|Add to add a Region (see the dotted lines) and File|Print to see that there's a Square at level 2 and a Region at level 3. Then File|Save as... to save it. Quit the program.
Fire it up again and do a File|Restore and a File|Print. You'll see from the output that the Square and Region are there with identical parameters to the output before, but the Region hasn't displayed its outline.
The output's below, with java-like comments added to show what I've done:
D:>java -jar test*
Painting gridlayer
// File|Add Region
New region 1
Selecting square
Checking region 1
Painting gridlayer
Painting region 1
//File|Print
Printing Gamepanel components
com.ptoye.TestSBug1.Region[Region-1,4,4,60x60,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minim
umSize=,preferredSize=]
Bounds java.awt.Rectangle[x=4,y=4,width=60,height=60]
Layer 3
com.ptoye.TestSBug1.Square[Square-0:0,4,4,60x60,alignmentX=0.0,alignmentY=0.0,border=,flags=16777224,maximumSi
ze=,minimumSize=,preferredSize=]
Bounds java.awt.Rectangle[x=4,y=4,width=60,height=60]
Layer 2
\\File|Save
Saving game to bug1.ksd
D:>java -jar test*
Painting gridlayer
\\File|Restore
Restoring game bug1.ksd
Restored
\\File|Print - same as above but only Square is displayed
Printing Gamepanel components
com.ptoye.TestSBug1.Region[Region-1,4,4,60x60,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minim
umSize=,preferredSize=]
Bounds java.awt.Rectangle[x=4,y=4,width=60,height=60]
Layer 3
com.ptoye.TestSBug1.Square[Square-0:0,4,4,60x60,alignmentX=0.0,alignmentY=0.0,border=,flags=16777224,maximumSi
ze=,minimumSize=,preferredSize=]
Bounds java.awt.Rectangle[x=4,y=4,width=60,height=60]
Layer 2
D:>
Please someone tell me what I'm doing wrong. As a serialization newbie it's probably something simple, but no amount of validate() and pack() makes any difference.
The code's below - a bit long I'm afraid but it's difficult to cut it down much more and display the problem. The main class (TestKiller) was generated by NetBeans.
* TestKiller.java
* Created on 01 August 2006, 22:13
package com.ptoye.TestSBug1;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
* @author  PToye
public class TestKiller extends javax.swing.JFrame {
  private GamePanel p;
  final String fileExtension="ksd";
   * Creates new form TestKiller
  public TestKiller() {
    initComponents();
    p=new GamePanel();
    setContentPane(p);
    p.setOpaque(true);
    setSize(p.getPreferredSize());
    pack();
  public static void showMessage(String s) {
    JOptionPane.showMessageDialog(null,s,"Error",JOptionPane.ERROR_MESSAGE);
  /** This method is called from within the constructor to
   * initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is
   * always regenerated by the Form Editor.
  private void initComponents() {                         
    jMenuBar1 = new javax.swing.JMenuBar();
    jmFile = new javax.swing.JMenu();
    jmiAddRegion = new javax.swing.JMenuItem();
    jSeparator2 = new javax.swing.JSeparator();
    jmiSaveAs = new javax.swing.JMenuItem();
    jmiRestore = new javax.swing.JMenuItem();
    jmiExit = new javax.swing.JMenuItem();
    jSeparator1 = new javax.swing.JSeparator();
    jmiPrint = new javax.swing.JMenuItem();
    FormListener formListener = new FormListener();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Restore bug");
    jmFile.setText("File");
    jmiAddRegion.setText("Add region");
    jmiAddRegion.addActionListener(formListener);
    jmFile.add(jmiAddRegion);
    jmFile.add(jSeparator2);
    jmiSaveAs.setMnemonic('s');
    jmiSaveAs.setText("Save as...");
    jmiSaveAs.addActionListener(formListener);
    jmFile.add(jmiSaveAs);
    jmiRestore.setMnemonic('r');
    jmiRestore.setText("Restore");
    jmiRestore.addActionListener(formListener);
    jmFile.add(jmiRestore);
    jmiExit.setMnemonic('x');
    jmiExit.setText("Exit");
    jmiExit.addActionListener(formListener);
    jmFile.add(jmiExit);
    jmFile.add(jSeparator1);
    jmiPrint.setText("Print");
    jmiPrint.addActionListener(formListener);
    jmFile.add(jmiPrint);
    jMenuBar1.add(jmFile);
    setJMenuBar(jMenuBar1);
    pack();
  // Code for dispatching events from components to event handlers.
  private class FormListener implements java.awt.event.ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
      if (evt.getSource() == jmiSaveAs) {
        TestKiller.this.jmiSaveAsActionPerformed(evt);
      else if (evt.getSource() == jmiRestore) {
        TestKiller.this.jmiRestoreActionPerformed(evt);
      else if (evt.getSource() == jmiExit) {
        TestKiller.this.jmiExitActionPerformed(evt);
      else if (evt.getSource() == jmiPrint) {
        TestKiller.this.jmiPrintActionPerformed(evt);
      else if (evt.getSource() == jmiAddRegion) {
        TestKiller.this.jmiAddRegionActionPerformed(evt);
  private void jmiAddRegionActionPerformed(java.awt.event.ActionEvent evt) {                                            
    p.dummyAdd();
    jmiAddRegion.setEnabled(false);
  private void jmiPrintActionPerformed(java.awt.event.ActionEvent evt) {                                        
    p.print();
  private void jmiSaveAsActionPerformed(java.awt.event.ActionEvent evt) {                                         
    File f;
    ObjectOutputStream oos=null;
    JFileChooser jfc=new JFileChooser();
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setMultiSelectionEnabled(false);
    jfc.addChoosableFileFilter(jfc.getAcceptAllFileFilter());
    jfc.addChoosableFileFilter(new KDSFileFilter());
    jfc.showSaveDialog(this);
    f=jfc.getSelectedFile();
    if (f==null) {
      showMessage("Null file found");
    int i=f.getName().lastIndexOf(".");
    if (i==-1) {
      f=new File(f.getAbsolutePath()+"."+fileExtension);
    try {
      oos=new ObjectOutputStream(new FileOutputStream(f));
    } catch (FileNotFoundException ex) {
      showMessage("Cannot find file "+f.getName());
      return;
    } catch (IOException ex) {
      showMessage("Cannot open file "+f.getName());
      return;
    if (oos!=null) {
      System.out.println("Saving game to "+f.getName());
      try {
        oos.writeObject(p);
      } catch (IOException ex) {
        showMessage("Cannot write game to "+f.getName()+"\n"+ex.getMessage());
      } finally {
        try {
          oos.close();
        } catch (IOException ex) {
  private void jmiExitActionPerformed(java.awt.event.ActionEvent evt) {                                       
    System.exit(0);
  private void jmiRestoreActionPerformed(java.awt.event.ActionEvent evt) {                                          
    File f;
    ObjectInputStream ois=null;
    JFileChooser jfc=new JFileChooser();
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setMultiSelectionEnabled(false);
    jfc.addChoosableFileFilter(jfc.getAcceptAllFileFilter());
    jfc.addChoosableFileFilter( new KDSFileFilter());
    jfc.showOpenDialog(this);
    f=jfc.getSelectedFile();
    if (f!=null) {
      try {
        ois=new ObjectInputStream(new FileInputStream(f));
      } catch (FileNotFoundException ex) {
        showMessage("Cannot find file "+f.getName());
        return;
      } catch (IOException ex) {
        showMessage("Cannot open file "+f.getName());
        return;
      if (ois!=null) {
        System.out.println("Restoring game "+f.getName());
        try {
          p=(GamePanel) ois.readObject();
        } catch (IOException ex) {
          showMessage("Cannot read game from file "+f.getName());
        } catch (ClassNotFoundException ex) {
          showMessage("Cannot restore game - wrong object type");
        try {
          ois.close();
        } catch (IOException ex) {
        pack();
        p.validate();
        p.repaint();
        System.out.println("Restored");
  private class KDSFileFilter extends javax.swing.filechooser.FileFilter {
    public boolean accept(File f) {
      if (f.isDirectory()) {
        return true;
      String ext = null;
      String s = f.getName();
      int i = s.lastIndexOf('.');
      if (i > 0 &&  i < s.length() - 1) {
        ext = s.substring(i+1).toLowerCase();
      return (ext==null || ext.equalsIgnoreCase(fileExtension));
    public String getDescription() {
      return "Killer Su Doku games";
   * @param args the command line arguments
  public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
        new TestKiller().setVisible(true);
  // Variables declaration - do not modify                    
  private javax.swing.JMenuBar jMenuBar1;
  private javax.swing.JSeparator jSeparator1;
  private javax.swing.JSeparator jSeparator2;
  private javax.swing.JMenu jmFile;
  private javax.swing.JMenuItem jmiAddRegion;
  private javax.swing.JMenuItem jmiExit;
  private javax.swing.JMenuItem jmiPrint;
  private javax.swing.JMenuItem jmiRestore;
  private javax.swing.JMenuItem jmiSaveAs;
  // End of variables declaration                  
* GamePanel.java
* Created on 10 January 2007, 18:45
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
package com.ptoye.TestSBug1;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JLayeredPane;
* @author PToye
public class GamePanel extends JLayeredPane implements Serializable {
  private static final int GRID_LEVEL=2;
  private static final int REGIONS_LEVEL=3;
  private static final int THICK_WIDTH=4;
  private static final int THIN_WIDTH=1;
  static final int SQUARE_SIZE=60;
  private static final int SQUARES=1;  // test size
  static final int BIGSQUARES=SQUARES*SQUARES;
  static final int TotalSize=(SQUARES+1)*THICK_WIDTH+SQUARES*(SQUARES-1)*THIN_WIDTH+
      BIGSQUARES*SQUARE_SIZE;
  public final Color NORMAL_BACK_COLOUR=Color.WHITE;
  public final Color SELECTED_BACK_COLOUR=Color.PINK;
  int coordArray;  // used to be an array of start coords of each square
  private Region newRegion;
  private int regionId=1;
  private Square squareArray; // used to be an array
  private Region regions; // used to be a set
  /** Creates a new instance of GamePanel */
  public GamePanel() {
    super();
    regions=null;
    makeGridLayer();  //adds the white square
    setPreferredSize(new Dimension(TotalSize,TotalSize));
    setVisible(true);
    newRegion=null;
    setFocusable(true);
  public void dummyAdd() {
    setupRegion(squareArray);
    if (newRegion.checkNewRegion(1)) {
      addRegion(newRegion);
  public void addRegion(Region r) {
    if (regions==null) {
      regions=r;
      add(r,new Integer(REGIONS_LEVEL));
      r.repaint();
  void print() {
    Component[] cList=getComponents();
    System.out.println("Printing Gamepanel components");
    for (int i = 0; i < cList.length; i++) {
      Component c=cList;
System.out.println(c.toString());
System.out.println(" Bounds "+c.getBounds());
System.out.println(" Layer "+getLayer(c));
if (c instanceof Container) {
printContainer((Container)c," ");
void printContainer(Container c, String preString) {
Component[] cList1=c.getComponents();
for (int i = 0; i < cList1.length; i++) {
Component comp=cList1[i];
System.out.println(preString+comp.toString());
System.out.println(preString+" Bounds "+comp.getBounds());
if (comp instanceof Container) {
printContainer((Container)comp,preString+" ");
private void setupRegion(Square s) {
if (newRegion==null) {
newRegion=new Region(regionId++,this);
Region r=s.getRegion();
if (r==null) {
newRegion.addSquare(s);
selectSquare(s);
s.setRegion(newRegion);
} else {
System.exit(1); // should not happen
private void makeGridLayer() {
int currentXCoord;
int currentYCoord;
int arrayIndex=0;
Square sq;
currentXCoord=THICK_WIDTH;
currentYCoord=THICK_WIDTH;
coordArray=currentYCoord;
sq=new Square(0,0, NORMAL_BACK_COLOUR,this);
add(sq,new Integer(GRID_LEVEL));
squareArray=sq;
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
System.out.println("Painting gridlayer");
g2.setBackground(Color.BLACK);
g2.setColor(Color.BLACK);
g2.fillRect(0,0,TotalSize,TotalSize);
void selectSquare(Square s) {
System.out.println("Selecting square");
s.setBackColour(SELECTED_BACK_COLOUR);
* Square.java
* Created on 28 December 2006, 15:53
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
package com.ptoye.TestSBug1;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.io.Serializable;
import javax.swing.JComponent;
* @author PToye
class Square extends JComponent implements Serializable {
* X index in grid
private int xIndex;
* Y index in grid
private int yIndex;
* The square's parent grid
private GamePanel parent;
* Region it belongs to (or null if none)
private Region region;
* The background colour
private Color backColour;
private boolean marked;
// public Square() {
// System.out.println("New Square - null constructor");
// addMouseListener(parent);
* Create a new square
public Square(int x, int y, Color bcol, GamePanel parent) {
this.parent=parent;
xIndex=x;
yIndex=y;
backColour=bcol;
region=null;
setName("Square-"+x+":"+y);
setBounds(parent.coordArray,parent.coordArray,
GamePanel.SQUARE_SIZE,GamePanel.SQUARE_SIZE);
setOpaque(true);
setVisible(true);
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
// System.out.println("Painting square "+xIndex+","+yIndex+":"+getBounds());
g2.setColor(backColour);
g2.fillRect(0,0,GamePanel.SQUARE_SIZE,GamePanel.SQUARE_SIZE);
g2.setColor(Color.BLACK);
public Dimension getPreferredSize() {
return new Dimension(GamePanel.SQUARE_SIZE,GamePanel.SQUARE_SIZE);
public void setBackColour(Color backColour) {
this.backColour = backColour;
repaint(0,0,GamePanel.SQUARE_SIZE,GamePanel.SQUARE_SIZE);
public Region getRegion() {
return region;
public void setRegion(Region region) {
this.region = region;
* Region.java
* Created on 28 December 2006, 15:59
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
package com.ptoye.TestSBug1;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.swing.JComponent;
* @author PToye
* Class representing a region whose total sum is known
public class Region extends JComponent implements Serializable {
private static final float BORDER_WIDTH=1f;
private static final float DASH_LENGTH=4f;
private static final float[] dashes={DASH_LENGTH,DASH_LENGTH};
private static final BasicStroke borderStroke=
new BasicStroke(BORDER_WIDTH,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER,
1f,dashes,0);
private static final int borderInset=3;
private GamePanel parent;
* The sum as given
private int total;
private String totalString;
private int id;
* The squares constituting the region
private Square contents; // the square in the region
private Square leadSquare; // top left-hand square
private int leadXCoord,leadYCoord; // X, Y coords of lead square wrt border
private GeneralPath border=null;
public Region(int id, GamePanel parent) {
super();
this.id=id;
this.parent=parent;
setName("Region-"+id);
contents=null;
border=new GeneralPath();
System.out.println("New region "+id);
public void addSquare(Square s) {
if (contents!=null) {
contents=s;
public boolean checkNewRegion(int tot) {
System.out.println("Checking region "+id);
border.moveTo(borderInset,borderInset);
border.lineTo(GamePanel.SQUARE_SIZE-borderInset,borderInset);
border.lineTo(GamePanel.SQUARE_SIZE-borderInset,GamePanel.SQUARE_SIZE-borderInset);
border.lineTo(borderInset,GamePanel.SQUARE_SIZE-borderInset);
border.lineTo(borderInset,borderInset);
setBounds(parent.coordArray,parent.coordArray,GamePanel.SQUARE_SIZE,GamePanel.SQUARE_SIZE);
repaint();
return true;
public void paintComponent(Graphics g) {
int newX, newY;
System.out.println("Painting region "+id);
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
g2.setColor(Color.BLACK);
g2.setStroke(borderStroke);
g2.draw(border);

OK, I asked the FTE team and got this reply: "Lucida Grande is CTS's fallback font for Thai.  This font on OS 10.7 and 10.6 are not supporting Thai anymore.  The version on 10.5 was supporting it." This means that it's our bug that we keep using Lucida Grande as fallback font even Apple dropped support Thai script with that font after 10.6. Unfortunately this bug was deferred from current development release (11.2) because of time constraint. If this support is critical for your business, can you open a bug in our public bugbase and ask as many vote as possible? In this way I may be able to convince internal team to fix this bug in next release.
Thank you for your feedback!
Hitomi

Similar Messages

  • Text not displaying on components

    I have one swf file where im using the default textInput and
    button components. Just so the user can enter a zip code and click
    submit. When i publish that swf, everything looks fine. The problem
    is that i am loading that swf into a master swf and when i view it
    through the master swf, it displays the components without text.
    The submit button is blank, it should say 'submit' on it, and no
    characters display when you type into the textInput component. I am
    able to type characters and submit the form, but i can't see what
    im typing. I've tried messing with embedding fonts in the child swf
    as well as the master to no avail. If anyone has any suggestions,
    they would be greatly appreciated.

    Here's how to talk to your dynamic text box. Where you put
    this bit depends
    on how you are building the preloader, but since you say the
    progress bar
    works fine, I'll assume you know what you're doing there and
    will be able to
    get this in the right spot.
    // variable that calculates a number for the percent loaded
    preloaded = Math.floor((loadedBytes/totalBytes)*100);
    // this line is talking to a dynamic text box named
    "percentage_txt" that is
    inside a movieClip named "preloader_mc" on the root timeline
    // depending on your setup the path may be different, but
    make sure
    everything on the way to the text box is named
    _root.preloader_mc.percentage_txt.text = preloaded + "%";
    // You've probably left out the ".text = " bit. Just a guess,
    but that's
    the bit I always find
    // I've left out when I'm having trouble with dynamic text.
    // Also make sure your text color is not set to the same
    color as your
    background. Duh.
    Good luck.
    --KB
    "patbegg" <[email protected]> wrote in
    message
    news:ejuu12$bmd$[email protected]..
    > Hi,
    > Cheeky little problem. I cannot get the dynamix text to
    show on the
    > preloader
    > of a loaded movie. I am calling in a .swf which has a
    preloader in it, the
    > progress bar is fine but the text showing the percent
    will not display.
    >
    > I have tried the _lockroot method, but no joy. Any ideas
    anyone?
    >
    > Any help appreciated guys.
    >
    > Cheers,
    > Pat
    >

  • Problem displaying CLOB in text file

    Hello All,
    I have a problem displaying the content from the database in notepad. When I click on a link on my jsf screen, I retrieve the data and display it in notepad.
    I have my text content stored in the database with CLOB datatype. When I look in the database the data looks in the following format:
    ---------STARTS FROM NEXT LINE-------------
    The firm, known for its keen oversight of products, has been the subject of complaints from firms who have had apps blocked from the store. Some developers have complained that the company's rules seem inconsistent.
    Some have found apps blocked after seemingly minor updates, or for having content deemed inappropriate by them. In light of this, and after careful consideration, I believe it is unnecessary to sign this measure at this time.
    Sincerely,
    ABC
    ----------ENDS IN THE PREVIOUS LINE------------
    Now when I display this content onto the notepad, all the spaces and new line characters are lost, and the entire display looks awkward. This is how it looks:
    The firm, known for its keen oversight of products, has been the subject of complaints from firms who have had apps blocked from the store. Some developers have complained that the company's rules seem inconsistent.[]Some have found apps blocked after seemingly minor updates, or for having content deemed inappropriate by them. In light of this, and after careful consideration, I believe it is unnecessary to sign this measure at this time.[]Sincerely,[]ABC
    All the new line characters are lost and it just puts some junk character in place of a new line.
    When I copy the same text onto textpad, everything is alright and it displays exactly the way it is present in the database. I am also open to display the content in html, but in HTML it doesn't even display me the junk character in place of new line. It is just one single string without any line separators.
    I am using the following code to put the content into the text.
    public String writeMessage(){
       OutputStream outStream = null;
       HttpServletResponse response = getServletResponseFromFacesContext();
       Reader data = null;
       Writer writer = null;
       try{
          response.reset();
          response.setContentType("text/plain; charset=UTF-8");
          response.setHeader("Content-Disposition","attachment; filename="+id+"_Message.txt");
          outStream = response.getOutputStream();
          QueryRemote remote = serviceLocator.getQueriessEJB();
          data = remote.retrieveGovernorsVetoMessage(billId);
          writer = new BufferedWriter(new OutputStreamWriter( outStream, "UTF-8" ) );
          int charsRead;
          char[] cbuf = new char[1024];
          while ((charsRead = data.read(cbuf)) != -1) {
             System.out.println(charsRead);
          writer.write(cbuf, 0, charsRead);
          writer.flush();
       }catch(Exception ex){
          ex.printStackTrace();
       }finally{
          //Close outStream, data, writer
          facesContext.responseComplete();
       return null;
    }Any help or hints on resolving this issue would be highly appreciated.
    Thanks.

    The data is imported from a third party application to my database. It doesn't display any newline characters when I view the data.
    But when I do a regular expression search on text pad, I could see that my clob contains \n as the new line character. Is there a way to replace \n with \n\r while writing the data.
    Thanks.

  • Problems with Logical Components

    Hi All,
    I am having problems with Logical Components with our project. We are implemeents SAP HCM and we have defined a logical component Z_ERP for the ECC server. now when you look at the transaction from SOLAR02 it seems they also have a logical Component SAP Learning Solution that is assigned to them. what could be the cause of this???

    Hi Trevor,
    If you brought them in from the Business Process Repository, the logical component is going to be the default one. If you want to use your own, you need to replace the default one with yours.
    You can do this in SOLAR_PROJECT_ADMIN by going to the System Landscape tab > Systems tab > highlight the SAP Learning Solution logical component row > press F4 > replace it with Z_ERP.
    If for some reason SAP Learning Solution isn't listed as a logical component you may have to add it, you can also just go to SOLAR02 > Edit > Replace Log. Comp > Enter SAP Learning Solution in the top box and Z_ERP in the bottom one > click Save.
    regards,
    Jason

  • Problem displaying picture stored in mySQL

    Hi, i just have got problem displaying picture stored in database as BLOB and presented on JSP over servlet. Below is my code i am using to upload file into database, than download it and display again. The result is the picture can not draw inself and there is always only empty picture space on the web page i am displaying. Please help me to find why it is not working, thanx.
    servlet uploading picture to database
                   boolean isMultipart = FileUpload.isMultipartContent(req);
                   DiskFileUpload upload = new DiskFileUpload();
                   List items = upload.parseRequest(req);
                   Hashtable textFields = new Hashtable();
                   byte[] data = new byte[4096];
                   if(isMultipart)
                        Iterator iter = items.iterator();
                        while(iter.hasNext())
                             FileItem item = (FileItem)iter.next();
                             if(item.isFormField())
                                  textFields.put(item.getFieldName(), item.getString());
                             }else{
                                  data = item.get();
                   String sqlStatement = "INSERT INTO cds VALUES('" textFields.get("id")"'," +
                                            "'" textFields.get("album") "','" textFields.get("interpreter") "'," +
                                                      "'" textFields.get("gr1") "','" textFields.get("gr2") "','" textFields.get("price") "')";
                   String sqlStatement2 = "INSERT INTO pics VALUES('" textFields.get("id") "','" data "')";
    servlet to download picture
    String SQL =
         "SELECT Picture " +
         "FROM pics " +
         "WHERE id = '" + request.getParameter("id") + "'";
         ResultSet rs = stmt.executeQuery(SQL);
         rs.next();
         Blob blob = null;
         blob = rs.getBlob(1);
         response.setContentType("image/jpg");
         request.setAttribute("blob", blob);
         System.out.println("just above OutputStream");
         InputStream in = blob.getBinaryStream();
         ServletOutputStream sout = response.getOutputStream();
         int b;
         while ((b = in.read()) != -1) {
         sout.write(b);
         in.close();
         sout.flush();
         sout.close();
    img tag in JSP
    <img src="LoadImageServlet?id=some id>
    plus i am using
    Tomcat 5.0
    mySQL 4.0
    debuging in eclipse
    thanx for help once more, Libor.

    1:
    are there any exceptions throws by the jdbc code
    2:
    is the code in a doGet
    3:
    you should do a if(result.next())
    4:
    Is your mapping code working

  • Problems displaying in IE

    While I love iWeb's ease of use, it seems to have serious problems displaying on IE. There is really no point blaming IE, since it is the dominant browser and most people who will see our sites will use it. The point of iWeb should be to allow people to communicate broadly and effectively, not just to Mac & Safari users.
    Lists do not work well. The indents do not display properly. Text in boxes shift alignment and location. Bullets show up with different sizes. I have had to hand indent and line space all the lists in the sites I make, which is a mess and not scaleable.
    See fieldsforkidsmamk.org.
    Are there any workarounds or fixes?
    The other obvious issues with iWeb are worth noting:
    * inconsistent display in browsers -- pages look different in Safari and Firefox, even on the Mac (let alone IE)
    * difficulty adding html code
    * page names must be identical to nav names, so pages with multiple words (Get Involved) display urls as /Get%20Involved (can't be corrected unless you have Get_Involved as a header.)
    * need to publish whole site for any change
    * need to publish all sites for each change to any site
    * can't change color, display, location, function etc for Nav
    I assume everyone is aware of these problems. The question is, what to do? Grin and bear it? Any help, tips or ideas would be appreciated.
    Thanks!
    MacBook Mac OS X (10.4.8)
    MacBook Mac OS X (10.4.8)
    MacBook Mac OS X (10.4.8)
    MacBook   Mac OS X (10.4.8)  

    * page names must be identical to nav names, so pages
    with multiple words (Get Involved) display urls as
    /Get%20Involved (can't be corrected unless you have
    Get_Involved as a header.)
    You can fix this the same way you add html code, by post processing.
    * need to publish all sites for each change to any
    site
    You can fix this by separating your sites into different Domain files so you only publish one at a time.
    Contrary to the other response, "encoding" is not connected to the points you made. There is never any need to add a UTF-8 "tag" to an iWeb page. If you see question marks or Â's when your page is displayed on any browser, Mac or PC, then you may need to fix your ftp or server settings.

  • Problems displaying rtf memo fields

    Post Author: Davidm
    CA Forum: General
    We use Crystal Reports X to run reports on an Access database with a significant number of rtf memo fields. We use Total Access Memo to allow extended use of rtf within Access as our users require the additional formatting capabilities that this offers.
    However, there are considerable problems displaying items like bullet points, tables and hyperlinks in the Crystal Viewer with tables in particular coming out in a real mess with all entries in the table being displayed in a list with a small square marking each cell at the end of each line.
    Curiously, if you preview the report in the full version of Crystal X, it appears a bit better with the hyperlinks still underlined (bullet points still vanish) and rows in rtf tables are at least presented as a row even if the columns are not ordered and mixed (with no bounding cells visible).
    Firstly, is this disparity of end result between full Crystal X Print Preview and the Crystal X Viewer fixable?
    Secondly, is the limited handling of rtf tags likely to be solved in the next release of Crystal?

    Hi Mathias,
    If I caught you correctly, you want to display data in Adobe forms in form of tabel, right?
    So, follow the steps:
    1. Insert one sub form on your adobe form.
    2. Set its type as "flow content" in object->subform property.
    3. Set flow direction as "Table".
    4. Insert another subform inside this subform.
    5. set its type as "flow content" and flow direction as "Table row".
    6. Now, choose binding tab, and there check "repeat subform for each Data item check box" and specify min. count for your rows.
    7. Now, insert your column fields inside this sub form once.
    8. Format its look and feel as you want.
    When you run this application, it will show you multiple data as table on Adobe form.
    Regards,
    Bhavik

  • Problem displaying php page in dreamweaver

    I am having problems displaying php scripting on dreamweaver.
    Need your advice.
    Installed dreamweaver 8, Coldfusion 7, mysql, php5.2 (using
    windows installer).
    Created file test.php ror testing containing
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    <body>
    date is:<b><?php echo Hello ?></b>
    </body>
    </html>

    ulises_arsi wrote:
    > I am having problems displaying php scripting on
    dreamweaver.
    Tell us what the problems are.
    > Installed dreamweaver 8, Coldfusion 7, mysql, php5.2
    (using windows installer).
    PHP needs to be configured with a web server, such as Apache
    or IIS.
    ColdFusion is also a webserver, but as far as I know, it
    cannot be
    configured to serve PHP pages.
    > date is:
    <?php echo Hello ?>
    The only thing that would display is an error message. Hello
    needs to be
    enclosed in quotes:
    <?php echo 'Hello'; ?>
    David Powers
    Adobe Community Expert
    Author, "Foundation PHP for Dreamweaver 8" (friends of ED)
    http://foundationphp.com/

  • 've recently upgraded to FireFox v22.0. Originally, a legacy XBAP I use always opened correctly in FireFox and had no problems displaying or running. As of v22.

    I've recently upgraded to FireFox 22. Originally, a legacy XBAP I use always opened correctly in FireFox and had no problems displaying or running. As of 22, it won't even attempt to download the application, let alone try and display it.
    I have the windows Presentation Foundation 3.5.30729.1 installed, which is the same version I have been using in older versions.
    Can anyone shed some light on any changes that would have effected this?

    Hi, I have a similar problem. I did attempt the *.rdf fix on a test system, but it didn't work (em:maxVersion was already 22).
    We got about inflow of phone calls from our clients experiencing the problem mentioned above from the 2nd of July onwards... and more are phoning in.
    All the complaints come from clients (+- 10 so far and rising in number) using Firefox v22 (we have checked), and all of them have said that it was working previously.
    We downgraded one of the clients to an older version of Firefox, and it worked again. So far we are telling our clients to downgrade until a fix comes out, or use Internet Explorer (*blush*)

  • Problem Displaying data from oracle in JTable

    Please can any one help me? I have a problem displaying the data fetched from oracle database(ResultSet) in JTables. Can any one provide me with any possible way out(and any alternative).

    User,
    As suggested in the other post - Google/Books/find a mentor is the best option.

  • Problems displaying itab with 'REUSE_ALV_GRID_DISPLAY'

    Hi experts!
    I have a problem displaying the internal table itab_test. Itab_uload is a TYPE TABLE of a complex and nested structure I defined in the DDIC. I am able to pass the entries, which are not conform with the specifications, to itab_test, but when I execute the program I get a short dump.
    Error message is:" It was tried to pass the internal table IT_FIELDCAT to the formal parameter IT_FIELDCAT. In doing so, a ^type conflict occured between the formal and the actual parameter."
    Can anybody please advise on the code-sample below. What did I wrong and what can I do to correct it?
    Thanks a lot for your help!
    Johann
    P.S.:Points will be rewarded for helpful answers!
    *&          DECLARATIONS
    TYPES: BEGIN OF error_test,
           oz TYPE c,
           bez TYPE c,
           END OF error_test.
    DATA: itab_test TYPE TABLE OF error_test WITH HEADER LINE,
          itab_upload TYPE TABLE OF zstr_gaeb WITH HEADER LINE.
    DATA: wa_upload TYPE zstr_gaeb,
          wa_lvbereich TYPE zstr_lvbereich,
          wa_bereichdeslv TYPE zstr_bereichdeslv,
          wa_beschreibung TYPE zstr_lvbeschreibung,
          wa_position TYPE zstr_position.
    DATA :      it_fieldcat TYPE lvc_t_fcat,
              wa_fieldcat LIKE LINE OF it_fieldcat,
              wrk_pos TYPE i.      
    *&           START OF SELECTION
    START-OF-SELECTION.
    LOOP AT itab_upload INTO wa_upload.
        LOOP AT wa_upload-vergabe-lv-lvbereich INTO wa_lvbereich.
          oz_len = STRLEN( wa_lvbereich-oz ).
          IF oz_len <> 3.
            MOVE wa_lvbereich-oz TO itab_test-oz.
            MOVE wa_lvbereich-bez TO itab_test-bez.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
      CLEAR wa_fieldcat.
      wrk_pos = wrk_pos + 1.
      wa_fieldcat-col_pos = wrk_pos.
      wa_fieldcat-tabname = 'ITAB_TEST'.
      wa_fieldcat-fieldname = 'oz'.
      wa_fieldcat-seltext = 'Ordnungszahl'.
      wa_fieldcat-emphasize = ''.
      wa_fieldcat-hotspot = 'X'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wrk_pos = wrk_pos + 1.
      wa_fieldcat-col_pos = wrk_pos.
      wa_fieldcat-tabname = 'ITAB_TEST'.
      wa_fieldcat-fieldname = 'bez'.
      wa_fieldcat-seltext = 'Bezeichnung'.
      wa_fieldcat-emphasize = ''.
      wa_fieldcat-hotspot = ''.
      APPEND wa_fieldcat TO it_fieldcat.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = ' '
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         it_fieldcat                       = it_fieldcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = itab_test
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

    Hello,
    Make the change like this
      DATA: L_R_REPID LIKE SY-REPID.
      L_R_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = L_R_REPID " CHeck here
    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER = ' '
    * I_BUFFER_ACTIVE = ' '
    * I_CALLBACK_PROGRAM = ' '
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
    * I_CALLBACK_TOP_OF_PAGE = ' '
    * I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    * I_CALLBACK_HTML_END_OF_LIST = ' '
    * I_STRUCTURE_NAME =
    * I_BACKGROUND_ID = ' '
    * I_GRID_TITLE =
    * I_GRID_SETTINGS =
    * IS_LAYOUT =
    it_fieldcat = it_fieldcat
    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =
    * IT_SORT =
    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    * I_SAVE = ' '
    * IS_VARIANT =
    * IT_EVENTS =
    * IT_EVENT_EXIT =
    * IS_PRINT =
    * IS_REPREP_ID =
    * I_SCREEN_START_COLUMN = 0
    * I_SCREEN_START_LINE = 0
    * I_SCREEN_END_COLUMN = 0
    * I_SCREEN_END_LINE = 0
    * I_HTML_HEIGHT_TOP = 0
    * I_HTML_HEIGHT_END = 0
    * IT_ALV_GRAPHICS =
    * IT_HYPERLINK =
    * IT_ADD_FIELDCAT =
    * IT_EXCEPT_QINFO =
    * IR_SALV_FULLSCREEN_ADAPTER =
    * IMPORTING
    * E_EXIT_CAUSED_BY_CALLER =
    * ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = itab_test
    * EXCEPTIONS
    * PROGRAM_ERROR = 1
    * OTHERS = 2
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    VAsanth

  • Problem of BOM components uploading through BAPI,for  the Network(CN01)

    Hello,Friends,
    Iam PP consultant and facing a problem of BOM components uploading through BAPI,for creating of the Network (CN21)
    we have 300 components in the network activity and while uploading the BOM through BAPI , only 295 components has been uploaded.Others components has not uploaded.
    Please suggest me what will be the Problem? and
    What is the solution for the same?
    Regards,
    MYS

    in customizing availability checked has been applied ,for this reason one additional screen is appearing in BAPI for all these components
    How this screen could be by passed

  • Problem displaying Word 2002 RTF files in JEditorPane

    Hi all,
    I am having a problem displaying RTF files created in Word 2002/Office XP in a JEditorPane.
    Our code, which does the usual stuff:
    JEditorPane uiViewNarrativeEda = new JEditorPane();
    uiViewNarrativeEda.setContentType(new RTFEditorKit().getContentType());
    FileInputStream inDocument = new FileInputStream("c:/temp/testing.rtf"); uiViewNarrativeEda.read(inDocument, "");
    inDocument.close();
    works just FINE with RTF files created in Word 97, WordPad etc, but it seems that Word 2002 adds some tags to the RTF file that the RTFReader cannot handle.
    For example, I believe the following exception is due to the new \stylesheet section that Word 2002 adds to the RTF file:
    java.lang.NullPointerException:
         at javax.swing.text.rtf.RTFReader$StylesheetDestination$StyleDefiningDestination.close(RTFReader.java:924)
         at javax.swing.text.rtf.RTFReader.setRTFDestination(RTFReader.java:254)
         at javax.swing.text.rtf.RTFReader.handleKeyword(RTFReader.java:484)
         at javax.swing.text.rtf.RTFParser.write(RTFParser.java, Compiled Code)
         at javax.swing.text.rtf.AbstractFilter.readFromReader(AbstractFilter.java:111)
         at javax.swing.text.rtf.RTFEditorKit.read(RTFEditorKit.java:129)
         at javax.swing.text.JTextComponent.read(JTextComponent.java:1326)
         at javax.swing.JEditorPane.read(JEditorPane.java:387)
    Does anyone have similar problems or knows how I could get around this?
    I thought about writing a parser that replaces the \stylesheet section with one that works but that seems a lot of work and it does not always work (I tried that by copying and pasting...).
    Maybe I could replace the RTF converter that Word 2002 is using with another one - but how?

    Hello again,
    I found out that the 2002 version of MS Word writes a lot more of data into the file than e.g. Wordpad does.
    There is one section that causes the problem, its called "\stylesheet".
    My workaround (working in my case) is to wrap the input stream of the RTF document and remove this section (only in memory).
    See example implementation:
    <<<<<<<<<<<<<<<<<<<<<<< SOURCE CODE<<<<<<<<<<<<<
    * Copyright 2004 DaimlerChrysler TSS.
    * All Rights Reserved.
    * Last Change $Author: wiedenmann $
    * At $Date: 2004/03/31 11:08:54CEST $.
    package com.dcx.tss.swing;
    import java.io.*;
    * This class provides a workaround for parse errors in the
    * {@link javax.swing.text.rtf.RTFEditorKit}. These errors are caused
    * by new format specification for RichTextFormat (RTF V1.7).<br>
    * <br>
    * The workaround is to filter out a section of the RFT document
    * which causes an exception during parsing it. This section has no
    * impact on the display of the document, it just contains some
    * meta information used by MS Word 2002.<br>
    * The whole document will be loaded into memory and then the section
    * will be deleted in memory, there is no affect to the document
    * directly (on file system).<br>
    * <br>
    * <i>This workaround is provided without any warranty of completely solving
    * the problem.</i>
    * @version $Revision: 1.1 $
    * @author Wiedenmann
    public class RtfInputStream extends FilterReader {
    /** Search string for start of the section. */
    private static final String SEC_START = "{\\stylesheet";
    /** Search string for end of the section. */
    private static final String SEC_END = "}}";
    /** Locale store for the document data. */
    private final StringBuffer strBuf = new StringBuffer();
    * Wrapper for the input stream used by the RTF parser.<br>
    * Here the complete document will be loaded into a string buffer
    * and the section causes the problems will be deleted.<br>
    * <br>
    * @param in Stream reader for the document (e.g. {@link FileReader}).
    * @throws IOException in case of I/O errors during document loading.
    public RtfInputStream( final Reader in ) throws IOException {
    super( in );
    int numchars;
    final char[] tmpbuf = new char[2048];
    // read the whole document into StringBuffer
    do {
    numchars = in.read( tmpbuf, 0, tmpbuf.length );
    if ( numchars != -1 ) {
    strBuf.append( tmpbuf, 0, numchars );
    } while ( numchars != -1 );
    // finally delete the problem making section
    deleteStylesheet();
    * Deletion of the prblematic section.
    private void deleteStylesheet() {
    // find start of the section
    final int start = strBuf.indexOf( SEC_START );
    if ( start == -1 ) {
    // section not contained, so just return ...
    return;
    // find end of section
    final int end = strBuf.indexOf( SEC_END, start );
    // delete section
    strBuf.delete( start, end + 2 );
    * Read characters into a portion of an array.<br>
    * The data given back will be provided from local StringBuffer
    * which contains the whole document.
    * @param buf Destination buffer.
    * @param off Offset at which to start storing characters -
    * <srong>NOT RECOGNIZED HERE.</strong>.
    * @param len Maximum number of characters to read.
    * @return The number of characters read, or -1 if the end of the
    * stream has been reached
    * @exception IOException If an I/O error occurs
    public int read( final char[] buf, final int off, final int len ) throws IOException {
    if ( strBuf.length() == 0 ) {
    // if buffer is empty end of document is reached
    return -1;
    // fill destination array
    int byteCount = 0;
    for (; byteCount < len; byteCount++) {
    if ( byteCount == strBuf.length() ) {
    // end reached, stop filling
    break;
    // copy data to destination array
    buf[byteCount] = strBuf.charAt( byteCount );
    // delete to copied data from local store
    strBuf.delete( 0, byteCount + 1 );
    return byteCount;
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Integration of the warpper looks like:
    RtfInputStream inDocument = new RtfInputStream( new FileReader("test.rtf"));
    Document doc = rtf.createDefaultDocument();
    rtf.read(inDocument, doc, 0 );
    Hope this helps - for me it did :-)
    Timo Wiedenmann
    DaimlerChrysler TSS, Germany

  • Problems displaying a utf-8 page on firefox on windows server 2003 however the same version of firefox is working fine on windows xp, is there any specific thing to check on windows server 2003?

    firefox is having problem displaying utf-8 page on windows server 2003 however the same version of ff is working fine on windows xp, is there any configuration to check on windows 2003?

    Can you post a link and attach screenshots to show the difference?

  • Macbook screen dying problems - display or connector?

    Hey there guys, I have a serious problem with my Macbook (2007, old style) and have had it for quite a while, but it's getting worse it seems and it's stopping me from using 1 half of my screen effectively, there is a flickering line down the left hand side of the screen which is either green or purple and when I move my display it flickers and sometimes engulfs the entire left half of the screen. Now a new problem has arose as the screen turns into an odd kind of negative effect (it isn't fully negative as it is not countered out by making the screen go actually negative).
    http://www.youtube.com/watch?v=O0wdb-W0IY0
    Now I have been to the Apple Store with this problem, but as my Macbook is out of warranty it would cost £330 for a new display, but I'm thinking of trying to fix it myself and as I see it it can be 1 of 3 problems:
    - Display is broken (buy a new display)
    - Connector is loose (reattach)
    - Connector is broken (buy a new connector)
    So my question is: do you reckon this is a display fault, or connector fault?
    Thanks a lot for reading this and helping me out if you do.

    Personally I find my MBA to work perfectly for what I use it for which is mainly school related work; Word processing, data processing and internet browsing.
    There are plenty of comparisons you can find between the MBA using a SSD to the MBP without one in an attempt to show which is faster but there's really no way to accurately compare them. A better processor and GPU will increase performance in some applications while in others an SSD would give a better output. It depends on whether what you're doing can take advantage of all your CPU's potential, and possibly use the GPU to help compute, as well as what it's actually doing and whether the HD comes into play often or not.
    The MBP has a faster processor and a better GPU. While this translates into more graphical and computing power it does have a slower HD read/write. On the other hand the MBA has a slower GPU and CPU but the SSD does make up for some of that with extreme read/write times allowing for faster data transfer.
    In the midst of all this technological babble I'll just say that you would most likely get more out of the MBP than out of the MBA. The SSD is great but it does decrease your storage amount by a good deal. However, the sheer power of the i7 makes the MBP a monster of a machine and the MBA still using a Core2Duo makes it slightly weaker overall, purely in my opinion, as I'm not looking at any spec sheets.

Maybe you are looking for

  • Boot Camp Assistant Won't Work....

    I've been wrestling with this for two days now (along with my very technically adept brother). I'll try to offer as much information as possilble. I've scoured this and other online forums without success. Here goes: Early 2011 MBPro/ 7500rpm HItachi

  • Re: Does my Satellite L500-19Z support DDR3 memory?

    Does my Satellite L500-19Z support DDR3 memory? I believe it has 4GB (2x2GB 200 Pin 1.8v DDR2 PC2-6400 SoDimm) standard memory (800 MHz I believe). I want to upgrade to 8 GB and have seen the following offer:- 8GB kit (2x4GB) of 1333Mhz PC3-10600 mem

  • Facetime IOS 7 problems

    Why I cant use Facetime over 3G with IOS 7 on my Iphone 4. Same carier support it via Ipad 3?

  • Open delivery not showing in VL06 T.code

    Dear Guru, some of the Open delivey document is not showing in vl06  t.code. what may be the reason. Regards Preet

  • Flash 8

    Looking for help converting a Flash 8 file (flv file) into a format compatible with QuickTime. I have used iSqunit to convert Flash 6 & 7 to a usable format, but iSquint doesn't convert Flash 8. Will Quicktime Pro convert? I would appreciate any help