Top > OOobbs3 > 51

OOobbs3/51 Edit

  • サマリ: JavaScript Macroを続けて実行するとCrashします。
  • 環境: Other
  • 状態: 未解決
  • 投稿者: new_OOo3?
  • 投稿日: 2011-03-29 (火) 22:15:52

質問 Edit

お世話になります。 立て続けての投稿をご容赦下さい。 OOobbs3/50にてご教示頂きました下記JavaScript Macro Codeを実行すると、1度目は問題無く実行できますが、Macroにて上書き保存したBase Fileを終了した後に再度、実行するとFreezeします。 以下の2つの環境にて再現性があります。 対策についてご意見を頂けます様お願いします。

[ 確認環境 ]
 1) Windows7 Professional 32bit版 / LibreOffice3.3.2 release版
 2) WindowsXP Pro SP3 / OpenOffice.org3.3.0 release版
******** [ Code ] ********
// Base in JavaScript
importClass(Packages.javax.swing.JOptionPane);
importClass(Packages.com.sun.star.beans.PropertyValue);
importClass(Packages.com.sun.star.comp.helper.Bootstrap);
importClass(Packages.com.sun.star.comp.helper.BootstrapException);
importClass(Packages.com.sun.star.frame.XComponentLoader);
importClass(Packages.com.sun.star.lang.XMultiComponentFactory);
importClass(Packages.com.sun.star.uno.Exception);
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.uno.XComponentContext);
//
importClass(Packages.com.sun.star.beans.UnknownPropertyException);
importClass(Packages.com.sun.star.beans.XPropertySet);
importClass(Packages.com.sun.star.lang.WrappedTargetException);
importClass(Packages.com.sun.star.sdb.XOfficeDatabaseDocument);
importClass(Packages.com.sun.star.sdbc.XDataSource);
//
importClass(Packages.com.sun.star.frame.XStorable);
importClass(Packages.com.sun.star.io.IOException);
//
try{
	xContext = XSCRIPTCONTEXT.getComponentContext();
//	xContext = Bootstrap.bootstrap();          //<= OOo3.1.1以前は動作した。
	xMultiComponentFactory = xContext.getServiceManager();
	xtest = xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
	xcomponentloader = UnoRuntime.queryInterface(XComponentLoader,xtest);
//
	loadURL = "private:factory/sdatabase";
	propertyvalue = new Array();
	oDoc = xcomponentloader.loadComponentFromURL(loadURL, "_blank", 0, propertyvalue);
//
	xOfficeDatabaseDocument = UnoRuntime.queryInterface(XOfficeDatabaseDocument, oDoc);
	xDataSource = xOfficeDatabaseDocument.getDataSource();
	xPropertySet = UnoRuntime.queryInterface(XPropertySet, xDataSource);
	xPropertySet.setPropertyValue("URL", "sdbc:embedded:hsqldb");
//
	oStoreURL = "file:///C:/temp/oBaseMacro3.odb";
	xStorable = UnoRuntime.queryInterface(XStorable,oDoc);
	storeProps = new PropertyValue();
	storeProps.Name = "Overwrite";
	storeProps.Value = true;
	xStorable.storeAsURL(oStoreURL,[storeProps]);
//
	JOptionPane.showMessageDialog(null, "Success");
}catch (e){
	if (e instanceof WrappedTargetException) {
	} else if (e instanceof UnknownPropertyException)
	 {
	} else {
	}
	}
*********************************

宜しくご教示頂けます様お願いします。

回答 Edit


感想,コメント,メモ Edit

  • 自己レスで失礼します。投稿後、OOoをListen Modeで起動してRhinoでOOoの起動・保存を試みましたがOOo3.3以降は上手く行かない事が分りました。Rhino自体がVersion Upされていない事も一因かもしれませんので本質問は取敢えずCloseとさせて頂きます。実際は新規Base Fileを作成してから使う事は少なく、Current Fileや既作成のFileのHSQLDB上にSQLを用いてTableを作成する事は出来ました。 -- new_OOo3 2011-04-01 (金) 21:55:48


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes