bl.printStackTrace();
Log.log(Log.ERROR,this,bl);
	public boolean save(View view, String path)	{		if(path == null && getFlag(NEW_FILE))			return saveAs(view);		boolean returnValue;		URL saveUrl;		File saveFile;		if(path == null)		{			saveUrl = url;			path = this.path;			saveFile = file;			// only do this check if saving to original file			// if user is doing a `Save As' they should know			// what they're doing anyway			long newModTime = saveFile.lastModified();			if(newModTime > modTime)			{				Object[] args = { path };				int result = JOptionPane.showConfirmDialog(view,					jEdit.getProperty("filechanged.message",					args),jEdit.getProperty("filechanged.title"),					JOptionPane.YES_NO_OPTION,					JOptionPane.WARNING_MESSAGE);				if(result != JOptionPane.YES_OPTION)					return false;			}		}		else		{			try			{				saveUrl = new URL(path);			}			catch(MalformedURLException mu)			{				saveUrl = null;			}			saveFile = new File(path);		}		// A save is definately going to occur; show the wait cursor		// and fire BUFFER_SAVING event		if(view != null)			view.showWaitCursor();		fireBufferEvent(BufferEvent.BUFFER_SAVING);		backup(view,saveFile);		try		{			OutputStream out;			if(saveUrl != null)			{				URLConnection connection = saveUrl					.openConnection();				out = connection.getOutputStream();			}			else				out = new FileOutputStream(saveFile);			if(path.endsWith(".gz"))				out = new GZIPOutputStream(out);			save(out);			url = saveUrl;			this.path = path;			file = saveFile;			setPath();			saveMarkers();			if(getFlag(NEW_FILE) || mode.getName().equals("text"))				setMode();			setFlag(AUTOSAVE_DIRTY,false);			setFlag(DIRTY,false);			setFlag(READ_ONLY,false);			setFlag(NEW_FILE,false);			autosaveFile.delete();			modTime = file.lastModified();			fireBufferEvent(BufferEvent.DIRTY_CHANGED);			returnValue = true;		}		catch(IOException io)		{			Object[] args = { io.toString() };			GUIUtilities.error(view,"ioerror",args);			returnValue = false;		}		catch(BadLocationException bl)		{			bl.printStackTrace();			returnValue = false;		}		// Hide wait cursor		if(view != null)			view.hideWaitCursor();		return returnValue;	}