adding <script> tag (even empty one) within head or body of source .html page generates NullPointerException in Design view,
steps to recreate:
#1
create default project using new GWT project wizard with default module generated
#2
generated source files:
.html
- Code: Select all
<html>
<head>
<!-- -->
<!-- Any title is fine -->
<!-- -->
<title>Wrapper HTML for TestScriptTag</title>
<!-- -->
<!-- The module reference below is the link -->
<!-- between html and your Web Toolkit module -->
<!-- -->
<meta name='gwt:module' content='com.mycompany.project.TestScriptTag'/>
<!-- -->
<!-- Link CSS file -->
<!-- -->
<link type="text/css" rel='stylesheet' href='TestScriptTag.css'/>
</head>
<!-- -->
<!-- The body can have arbitrary html, or -->
<!-- we leave the body empty because we want -->
<!-- to create a completely dynamic ui -->
<!-- -->
<body>
<!-- -->
<!-- This script is required bootstrap stuff. -->
<!-- You can put it in the HEAD, but startup -->
<!-- is slightly faster if you include it here. -->
<!-- -->
<script language="javascript" src="com.mycompany.project.TestScriptTag.nocache.js"></script>
<!-- OPTIONAL: include this if you want history support -->
<iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
</body>
</html>
generated entry point:
- Code: Select all
package com.mycompany.project.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class TestScriptTag implements EntryPoint {
private Button clickMeButton;
public void onModuleLoad() {
RootPanel rootPanel = RootPanel.get();
clickMeButton = new Button();
rootPanel.add(clickMeButton);
clickMeButton.setText("Click me!");
clickMeButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
Window.alert("Hello, GWT World!");
}
});
}
}
#3
now try to add "script" tag within head or body:
- Code: Select all
<head>
<!-- -->
<!-- Any title is fine -->
<!-- -->
<title>Wrapper HTML for TestScriptTag</title>
<!-- -->
<!-- The module reference below is the link -->
<!-- between html and your Web Toolkit module -->
<!-- -->
<meta name='gwt:module' content='com.mycompany.project.TestScriptTag'/>
<!-- -->
<!-- Link CSS file -->
<!-- -->
<link type="text/css" rel='stylesheet' href='TestScriptTag.css'/>
<!-- custom script -->
<script type="text/javascript"></script>
</head>
#4
switch to design view and click refresh
#5
stack trace:
- Code: Select all
Stack trace:
java.lang.NullPointerException
at com.swtdesigner.gwt.model.widgets.support.GWTState.getCSSDeclarations(GWTState.java:286)
at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:104)
at com.swtdesigner.gwt.support.browser.ie.GWTStateIE6.<init>(GWTStateIE6.java:28)
at com.swtdesigner.gwt.support.browser.ie.BrowserSupportFactory.createState(BrowserSupportFactory.java:12)
at com.swtdesigner.gwt.model.widgets.support.GWTState.createState(GWTState.java:1470)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:181)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:63)
at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:50)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:35)
at com.swtdesigner.gwt.model.widgets.panel.PanelInfo.<init>(PanelInfo.java:25)
at com.swtdesigner.gwt.model.widgets.panel.ComplexPanelInfo.<init>(ComplexPanelInfo.java:23)
at com.swtdesigner.gwt.model.widgets.panel.AbsolutePanelInfo.<init>(AbsolutePanelInfo.java:36)
at com.swtdesigner.gwt.model.widgets.panel.RootPanelInfo.<init>(RootPanelInfo.java:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:152)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:112)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:95)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:88)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3766)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.endVisit(JavaInfoParser.java:1885)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:246)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:224)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.VariableDeclarationStatement.accept0(VariableDeclarationStatement.java:272)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:135)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:501)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:3003)
at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at com.swtdesigner.model.parser.JavaInfoParser.parse(JavaInfoParser.java:320)
at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1136)
at com.swtdesigner.gef.DesignerEditor.refreshDesignView(DesignerEditor.java:1222)
at com.swtdesigner.gef.DesignerEditor$14.widgetSelected(DesignerEditor.java:954)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Full stack trace (to see full context):
org.apache.commons.lang.exception.NestableError: org.apache.commons.lang.exception.NestableError: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3777)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.endVisit(JavaInfoParser.java:1885)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:246)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:224)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.VariableDeclarationStatement.accept0(VariableDeclarationStatement.java:272)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:135)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:501)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:3003)
at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
at com.swtdesigner.model.parser.JavaInfoParser.parse(JavaInfoParser.java:320)
at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1136)
at com.swtdesigner.gef.DesignerEditor.refreshDesignView(DesignerEditor.java:1222)
at com.swtdesigner.gef.DesignerEditor$14.widgetSelected(DesignerEditor.java:954)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Caused by: org.apache.commons.lang.exception.NestableError: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:118)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:95)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:88)
at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3766)
... 50 more
Caused by: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:160)
at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:112)
... 53 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:152)
... 54 more
Caused by: org.apache.commons.lang.exception.NestableError: java.lang.NullPointerException
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:396)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:181)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:63)
at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:50)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:35)
at com.swtdesigner.gwt.model.widgets.panel.PanelInfo.<init>(PanelInfo.java:25)
at com.swtdesigner.gwt.model.widgets.panel.ComplexPanelInfo.<init>(ComplexPanelInfo.java:23)
at com.swtdesigner.gwt.model.widgets.panel.AbsolutePanelInfo.<init>(AbsolutePanelInfo.java:36)
at com.swtdesigner.gwt.model.widgets.panel.RootPanelInfo.<init>(RootPanelInfo.java:23)
... 59 more
Caused by: java.lang.NullPointerException
at com.swtdesigner.gwt.model.widgets.support.GWTState.getCSSDeclarations(GWTState.java:286)
at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:104)
at com.swtdesigner.gwt.support.browser.ie.GWTStateIE6.<init>(GWTStateIE6.java:28)
at com.swtdesigner.gwt.support.browser.ie.BrowserSupportFactory.createState(BrowserSupportFactory.java:12)
at com.swtdesigner.gwt.model.widgets.support.GWTState.createState(GWTState.java:1470)
at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
... 67 more
System: Windows XP
GWT: 1.4.60
GWT Designer:
- Code: Select all
Product: GWT Designer Subscription
Version: 3.0.0 [20071028031434]
Expected: Eclipse 3.3
Actual: Eclipse 3.3.100.v20070530
Actual Eclipse Build Name:
Actual Eclipse Build ID: M20070921-1145
IDE Actual Name: Eclipse SDK
IDE Actual Version: 3.3.1.r331_v20070904
sadly above stops me from testing javascript bindings
regards,
Peter