Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Internal Error caused by JavaScript
Internal Error caused by JavaScript [message #137411] Tue, 23 June 2009 08:53 Go to next message
Eclipse UserFriend
Originally posted by: s0181013.mail.inf.tu-dresden.de

This is a multi-part message in MIME format.
--------------030403040901050007040605
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hello everyone,

I wanted to get information about plugins that are installed on the
client by using JavaScript. Initially I wanted to use the qooxdoo code
at [1] but unfortunately the Qoxdoo class qx.bom.client.Multimedia, does
not seem to be implemented within rap 1.2. Therefore I wrote and tested
normal JavaScript code (see BrowserContext.html) without any errors.

After implementing a widget, containing that JavaScript code and the
necessary LCA I called the JavaScript method with writer.call. Initially
the internal browser showed '0' as result and my external browser
(Firefox 3.0.11) '22'. After starting the app a third time I get a
recursion error, that starts after the construct within the javaScript
class. Can I somehow correct this or is this a but?

Thanks

Jes

[1] http://demo.qooxdoo.org:8181/current/demobrowser/#bom~Multim edia.html

--------------030403040901050007040605
Content-Type: application/x-javascript;
name="PluginReader.js"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="PluginReader.js"

LyoqDQoqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyB0aGUgY29kZSBmb3IgdGhl IGNsaWVudC1z
aWRlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZG9qb0Zvcm0gd2lkZ2V0IA0K Ki8NCg0KLyog
VGhlIEphdmEgQ2xhc3MgdGhhdCB3aWxsIGJlIGVzdGFibGlzaGVkLiAqLw0K cXguQ2xhc3Mu
ZGVmaW5lKCJvcmcuZWNsaXBzZS5yYXAuY29udGV4dHJlYWRlci5QbHVnaW5S ZWFkZXIiLCB7
DQogICAgDQogICAgLyogVXNlIHRoZSBRb294ZG9vIExheW91dCBNYW5hZ2Vy IGFzIHN1cGVy
IGNsYXNzICovDQogICAgZXh0ZW5kOiBxeC51aS5sYXlvdXQuQ2FudmFzTGF5 b3V0LA0KICAg
IA0KICAgIGNvbnN0cnVjdCA6IGZ1bmN0aW9uKGlkKSB7DQogICAgICAgIHRo aXMuYmFzZSgg
YXJndW1lbnRzICk7DQogICAgICAgIC8vIFBvcHVsYXRlIHRoZSBpZCB0byB0 aGUgYnJvd3Nl
cg0KICAgICAgICB0aGlzLnNldEh0bWxBdHRyaWJ1dGUoICJpZCIsIGlkICk7 DQogICAgICAg
IHRoaXMuX2lkID0gaWQ7DQogICAgICAgIGFsZXJ0KCdwbHVnaW5yZWFkZXIg Y29uc3RydWN0
Jyk7DQogICAgfSwNCiAgICAgDQogICAgcHJvcGVydGllcyA6IHsNCiAgICAg ICAgcGx1Z2lu
cyA6IHsNCiAgICAgICAgICAgIGluaXQgOiAiIiwNCiAgICAgICAgICAgIGFw cGx5OiAiX2Rv
QWN0aXZhdGUiLA0KICAgICAgICAgICAgYXBwbHk6ICJfZ2V0UGx1Z2lucyIN CiAgICAgICAg
fQ0KICAgIH0sDQogICAgDQogICAgbWVtYmVycyA6IHsNCiAgICAJX2RvQWN0 aXZhdGUgOiBm
dW5jdGlvbigpIHsNCiAgICAJYWxlcnQoImRvQWN0aXZhdGUiKTsNCiAgICAJ CXZhciBzaGVs
bCA9IG51bGw7DQogICAgCQl2YXIgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQo KTsNCiAgICAJ
CXdoaWxlKHNoZWxsID09IG51bGwgJiYgcGFyZW50ICE9IG51bGwpIHsNCiAg ICAJCQlpZihw
YXJlbnQuY2xhc3NuYW1lID09IA0KICAgIAkJCQkib3JnLmVjbGlwc2Uuc3d0 LndpZGdldHMu
U2hlbGwiKSB7DQogICAgCQkJCXNoZWxsID0gcGFyZW50Ow0KICAgIAkJCX0N CiAgICAJCQlw
YXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCk7DQogICAgCQl9DQogICAgCQlp ZihzaGVsbCAh
PSBudWxsKSB7DQogICAgCQkJc2hlbGwuc2V0QWN0aXZlQ2hpbGQodGhpcyk7 DQogICAgCQl9
DQogICAgfSwNCiAgICAJX2luY2x1ZGUgOiBmdW5jdGlvbigpIHsNCgkgICAg CXZhciBhID0g
bmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoOw0KCSAgICAJYWxlcnQoYSk7DQoJ CQlkb2N1bWVu
dC53cml0ZShhKTsNCgkJCXZhciBiID0gIiI7DQoJCQlmb3IoaT0wOyBpPGE7 IGkrKykgew0K
CQkJCWIgPSBuYXZpZ2F0b3IucGx1Z2luc1tpXS5uYW1lOw0KCQkJCWRvY3Vt ZW50LndyaXRl
bG4oYisiPGJyLz4iKTsNCgkJCX0NCgkgICAgfSwNCg0KICAgIAlfZ2V0UGx1 Z2lucyA6IGZ1
bmN0aW9uKCkgew0KICAgIAkJDQoJICAgIAlpZih0aGlzLl9nZXRQbHVnaW5z KCkpew0KCSAg
ICAJCWFsZXJ0KCdfZ2V0UGx1Z2lucycpOw0KICAgICAgICAJIAl0aGlzLl9p bmNsdWRlKCk7
DQogICAgICAgIAkgCQ0KICAgICAgICAJIAkvLyBnZXQgdGhlIEhUTUwncyBi b2R5IGVsZW1l
bnQNCiAgICAgICAgICAgCQl2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1l bnRzQnlUYWdO
YW1lKCdib2R5JylbMF07DQogICAgICAgICAgIA0KICAgICAgICAgICAJCWlm KGJvZHkpIHsN
CiAgICAgICAgICAgCQkNCiAgICAgICAJCQl2YXIgb25sb2FkID0gZG9jdW1l bnQuY3JlYXRl
QXR0cmlidXRlKCdvbmxvYWQnKTsNCiAgICAgICAJCQkNCiAgICAgICAJCQlv bmxvYWQubm9k
ZVZhbHVlID0gJ015RnVuY3Rpb24oKSc7DQogICAgICAgCQkJYm9keS5zZXRB dHRyaWJ1dGVO
b2RlKG9ubG9hZCk7DQogICAgICAgICAgIAkJCQ0KCQkJCWFsZXJ0KGRvY3Vt ZW50LmdldEVs
ZW1lbnRCeUlkKHRoaXMuX2lkKSk7DQoJICAgICAgDQogICAgICAgIAkJdmFy IENvbnRhaW5l
ck9iamVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX2lkKTsN CiAgICAgICAg
CQlhbGVydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCkpOw0K ICAgICAgICAJ
ICAgICAgICAgICAgICAgICANCiAgICAgICAgCQkvLyBTZXQgdGhlIENvbnRh aW5lcnMgU2l6
ZSAgICAgICAgCQ0KICAgICAgICAJCUNvbnRhaW5lck9iamVjdC5zdHlsZS53 aWR0aCA9ICI4
MDBweCI7DQogICAgICAgIAkJQ29udGFpbmVyT2JqZWN0LnN0eWxlLmhlaWdo dCA9ICIxMDY0
cHgiOw0KIAkNCi8vCQkJCUNvbnRhaW5lck9iamVjdC5pbm5lckhUTUwgPQ0K Ly8JCQkJCSc8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vby5h b2xjZG4uY29t
L2Rvam8vMS4yLjAvZG9qby9kb2pvLnhkLmpzIiBkakNvbmZpZz0icGFyc2VP bkxvYWQ6IHRy
dWUiPjwvc2NyaXB0PicrDQovLwkJCQkJJzxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0
Ij4gZG9qby5yZXF1aXJlKCJkaWppdC5mb3JtLkRhdGVUZXh0Qm94Iik7IDwv c2NyaXB0Picr
DQovLwkJCQkJJ0FiZmx1Z2hhZmVuOiA8aW5wdXQgbGVuZ3RoPSIxMCIgbmFt ZT0iZGVwYXJ0
dXJlQWlycG9ydCIgZG9qb1R5cGU9ImRpaml0LmZvcm0uRGF0ZVRleHRCb3gi Pjxici8+JysN
Ci8vCQkJCQknWmllbGZsdWdoYWZlbjogPGlucHV0IGxlbmd0aD0iMTAiIG5h bWU9ImFycml2
YWxBaXJwb3J0IiBkb2pvVHlwZT0iZGlqaXQuZm9ybS5EYXRlVGV4dEJveCI+ JysNCi8vCQkJ
CQknSGluZmx1Z2RhdHVtOiA8aW5wdXQgbGVuZ3RoPSIxMCIgbmFtZT0iZmls aW5nRGF0ZSIg
ZG9qb1R5cGU9ImRpaml0LmZvcm0uRGF0ZVRleHRCb3giPicrDQovLwkJCQkJ J1ImdXVtbDtj
a2ZsdWdkYXR1bTo8aW5wdXQgbGVuZ3RoPSIxMCIgbmFtZT0iZmlsaW5nRGF0 ZSIgZG9qb1R5
cGU9ImRpaml0LmZvcm0uRGF0ZVRleHRCb3giPicrDQovLwkJCQkJJzxidXR0 b24gZG9qb1R5
cGU9ImRpaml0LmZvcm0uQnV0dG9uIiBvbkNsaWNrPSJhbGVydChcJ0hhbGxv XCcpIj5TZW5k
PC9idXR0b24+JzsNCiAgICAgICAgICAgCQl9DQogICAgICAgICAgICAgICB9 ICAgICAgICAg
ICAgCSANCiAgICAgICB9DQogICAgfQ0KfSk7IA==
--------------030403040901050007040605
Content-Type: text/plain;
name="PluginReaderLCA.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="PluginReaderLCA.java"

package org.eclipse.rap.internal.contextreader.pluginreaderkit;

import java.io.IOException;

import org.eclipse.rap.contextreader.PluginReader;
import org.eclipse.rap.dojowidget.DojoForm;
import org.eclipse.rwt.lifecycle.AbstractWidgetLCA;
import org.eclipse.rwt.lifecycle.ControlLCAUtil;
import org.eclipse.rwt.lifecycle.JSWriter;
import org.eclipse.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Widget;

public class PluginReaderLCA extends AbstractWidgetLCA {

/**
* Used to make a specific javaScript function on the client side
* run.
*/
@Override
public void renderInitialization(Widget widget) throws IOException {
System.out.println("ContextWidget renderInitialziation");
JSWriter writer = JSWriter.getWriterFor(widget);
PluginReader pluginreader = (PluginReader) widget;
String id = WidgetUtil.getId( widget );
writer.newWidget( "org.eclipse.rap.contextreader.PluginReader", new Object[]{id} );
writer.set("appearance", "composite");
writer.set("overflow", "hidden");
ControlLCAUtil.writeStyleFlags( ( PluginReader )widget );
writer.call("_getPlugins", null);
//writer.set("plugin", pluginreader.getPlugin());
//System.out.println("Reader Plugins: "+pluginreader.getPlugin());
}

@Override
public void renderChanges(Widget widget) throws IOException {
System.out.println("ContextWidget renderChanges");
// PluginReader pluginreader = ( PluginReader )widget;
// //System.out.println("Reader Plugins: "+pluginreader.getPlugin());
// ControlLCAUtil.writeChanges( (Control) pluginreader );
// JSWriter writer = JSWriter.getWriterFor( widget );
}

@Override
public void readData(Widget widget) {
System.out.println("ContextWidget readData");

}

@Override
public void preserveValues(Widget widget) {
System.out.println("ContextWidget preserveValues");

}

@Override
public void renderDispose(Widget widget) throws IOException {
System.out.println("ContextWidget renderDispose");

}

}

--------------030403040901050007040605
Content-Type: text/html;
name="BrowserContext.html"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="BrowserContext.html"

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg VHJhbnNpdGlv
bmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0 bWwxLXRyYW5z
aXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGh0
bWwiPg0KPGhlYWQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ DQpmdW5jdGlv
biBNeVRlc3QoKQ0Kew0KCXZhciBhID0gbmF2aWdhdG9yLnBsdWdpbnMubGVu Z3RoOw0KCWFs
ZXJ0KGEpOw0KCWRvY3VtZW50LndyaXRlKGEpOw0KCXZhciBiID0gIiI7DQoJ Zm9yKGk9MDtp
PGE7aSsrKQ0KCXsNCgkJYiA9IG5hdmlnYXRvci5wbHVnaW5zW2ldLm5hbWU7 DQoJCWRvY3Vt
ZW50LndyaXRlbG4oYisiPGJyLz4iKTsNCgl9DQp9DQo8L3NjcmlwdD4NCjwv aGVhZD4NCg0K
PGJvZHkgb25sb2FkPSJNeVRlc3QoKSI+DQo8L2JvZHk+DQo8L2h0bWw+
--------------030403040901050007040605--
Re: Internal Error caused by JavaScript [message #137705 is a reply to message #137411] Wed, 24 June 2009 19:35 Go to previous message
Ivan Furnadjiev is currently offline Ivan FurnadjievFriend
Messages: 2426
Registered: July 2009
Location: Sofia, Bulgaria
Senior Member
Hi Jessica,

actually the recursion error is normal for your code - you call
this._getPlugins() from within the _getPlugins() function itself.

Best,
Ivan

Jessica Nierth wrote:
> Hello everyone,
>
> I wanted to get information about plugins that are installed on the
> client by using JavaScript. Initially I wanted to use the qooxdoo code
> at [1] but unfortunately the Qoxdoo class qx.bom.client.Multimedia,
> does not seem to be implemented within rap 1.2. Therefore I wrote and
> tested normal JavaScript code (see BrowserContext.html) without any
> errors.
>
> After implementing a widget, containing that JavaScript code and the
> necessary LCA I called the JavaScript method with writer.call.
> Initially the internal browser showed '0' as result and my external
> browser (Firefox 3.0.11) '22'. After starting the app a third time I
> get a recursion error, that starts after the construct within the
> javaScript class. Can I somehow correct this or is this a but?
>
> Thanks
>
> Jes
>
> [1] http://demo.qooxdoo.org:8181/current/demobrowser/#bom~Multim edia.html
> ------------------------------------------------------------ ------------
>
>
>
>
>
>
>
Previous Topic:How to set the perspective?
Next Topic:Webinar: Extend your RCP App to the Web with RAP - Jul. 9
Goto Forum:
  


Current Time: Thu Mar 28 13:20:10 GMT 2024

Powered by FUDForum. Page generated in 0.24868 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top