Changeset 4932


Ignore:
Timestamp:
12/01/03 00:01:26 (18 years ago)
Author:
piso
Message:

replaceBufferRunnable.run(): recover from OutOfMemoryError? when loading buffer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/RemoteBuffer.java

    r3100 r4932  
    33 *
    44 * Copyright (C) 2000-2003 Peter Graves
    5  * $Id: RemoteBuffer.java,v 1.7 2003-07-26 18:52:33 piso Exp $
     5 * $Id: RemoteBuffer.java,v 1.8 2003-12-01 00:01:26 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    206206        {
    207207            if (Editor.getBufferList().contains(RemoteBuffer.this)) {
    208                 buffer.setInitialDotPos(initialLineNumber, initialOffset);
    209                 Editor.getBufferList().replace(RemoteBuffer.this, buffer);
     208                int result;
     209                try {
     210                    if (!buffer.initialized())
     211                        buffer.initialize();
     212                    result = buffer.load();
     213                }
     214                catch (OutOfMemoryError e) {
     215                    buffer.kill();
     216                    RemoteBuffer.this.kill();
     217                    Runnable r = new Runnable() {
     218                        public void run()
     219                        {
     220                            MessageDialog.showMessageDialog(
     221                                Editor.currentEditor(),
     222                                "Insufficient memory to load buffer",
     223                                "Error");
     224                        }
     225                    };
     226                    SwingUtilities.invokeLater(r);
     227                    result = LOAD_FAILED;
     228                }
     229                if (result == LOAD_COMPLETED) {
     230                    buffer.setInitialDotPos(initialLineNumber, initialOffset);
     231                    Editor.getBufferList().replace(RemoteBuffer.this, buffer);
     232                }
    210233            } else
    211234                buffer.kill();
Note: See TracChangeset for help on using the changeset viewer.