Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    jUnit throws ExceptionInInitializerError

    I'm consistently seeing this error trying to instantiate ListGridRecord, DataSource and TreeNode when using jUnit to test some code. Any insight, workarounds, etc would be appreciated.

    We're using SmartGWT1b2, jdk 1.5, junit4 and Eclipse 3.5

    Code:
    java.lang.ExceptionInInitializerError
    	at com.dragonverse.modules.core.client.resource.SourcebookResource.toListGridRecord(SourcebookResource.java:46)
    	at com.dragonverse.modules.core.client.resource.TestSourcebookResources.testSourcebookResource(TestSourcebookResources.java:40)
    	at com.dragonverse.modules.core.client.resource.__TestSourcebookResources_unitTestImpl.doRunTest(transient source for com.dragonverse.modules.core.client.resource.__TestSourcebookResources_unitTestImpl:7)
    	at junit.framework.TestCase.runTest(TestCase.java:62)
    	at com.google.gwt.junit.client.GWTTestCase.runBare(GWTTestCase.java:206)
    	at com.google.gwt.junit.client.GWTTestCase.__doRunTest(GWTTestCase.java:137)
    	at com.google.gwt.junit.client.impl.GWTRunner.runTest(GWTRunner.java:188)
    	at com.google.gwt.junit.client.impl.GWTRunner.doRunTest(GWTRunner.java:163)
    	at com.google.gwt.junit.client.impl.GWTRunner.access$3(GWTRunner.java:157)
    	at com.google.gwt.junit.client.impl.GWTRunner$JUnitHostListener.onSuccess(GWTRunner.java:61)
    	at com.google.gwt.junit.client.impl.GWTRunner$JUnitHostListener.onSuccess(GWTRunner.java:1)
    	at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:215)
    	at com.google.gwt.http.client.Request.fireOnResponseReceivedImpl(Request.java:254)
    	at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:219)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:585)
    	at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    	at com.google.gwt.dev.shell.mac.MethodDispatch.invoke(MethodDispatch.java:71)
    	at org.eclipse.swt.internal.carbon.OS.ReceiveNextEvent(Native Method)
    	at org.eclipse.swt.widgets.Display.sleep(Display.java:3801)
    	at com.google.gwt.dev.SwtHostedModeBase.sleep(SwtHostedModeBase.java:241)
    	at com.google.gwt.junit.JUnitShell.sleep(JUnitShell.java:568)
    	at com.google.gwt.dev.SwtHostedModeBase.processEvents(SwtHostedModeBase.java:236)
    	at com.google.gwt.dev.HostedModeBase.pumpEventLoop(HostedModeBase.java:556)
    	at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:652)
    	at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:346)
    	at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:219)
    	at junit.framework.TestCase.runBare(TestCase.java:134)
    	at junit.framework.TestResult$1.protect(TestResult.java:110)
    	at junit.framework.TestResult.runProtected(TestResult.java:128)
    	at junit.framework.TestResult.run(TestResult.java:113)
    	at junit.framework.TestCase.run(TestCase.java:124)
    	at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:132)
    	at junit.framework.TestSuite.runTest(TestSuite.java:232)
    	at junit.framework.TestSuite.run(TestSuite.java:227)
    	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError): Undefined value
     line: 35
     sourceURL: jar:file:/Workbench/Projects/Dragon%20Table/svn/qagwaai/dragonverse/trunk/dragoneditor/lib/smartgwt.jar!/com/smartgwt/client/core/JsObject.java
    	at com.smartgwt.client.core.JsObject.init(Native Method)
    	at com.smartgwt.client.core.JsObject.<clinit>(JsObject.java:27)
    	at com.dragonverse.modules.core.client.resource.SourcebookResource.toListGridRecord(SourcebookResource.java:46)
    	at com.dragonverse.modules.core.client.resource.TestSourcebookResources.testSourcebookResource(TestSourcebookResources.java:40)
    	at com.dragonverse.modules.core.client.resource.__TestSourcebookResources_unitTestImpl.doRunTest(transient source for com.dragonverse.modules.core.client.resource.__TestSourcebookResources_unitTestImpl:7)
    	at junit.framework.TestCase.runTest(TestCase.java:62)
    	at com.google.gwt.junit.client.GWTTestCase.runBare(GWTTestCase.java:206)
    	at com.google.gwt.junit.client.GWTTestCase.__doRunTest(GWTTestCase.java:137)
    	at com.google.gwt.junit.client.impl.GWTRunner.runTest(GWTRunner.java:188)
    	at com.google.gwt.junit.client.impl.GWTRunner.doRunTest(GWTRunner.java:163)
    	at com.google.gwt.junit.client.impl.GWTRunner.access$3(GWTRunner.java:157)
    	at com.google.gwt.junit.client.impl.GWTRunner$JUnitHostListener.onSuccess(GWTRunner.java:61)
    	at com.google.gwt.junit.client.impl.GWTRunner$JUnitHostListener.onSuccess(GWTRunner.java:1)
    	at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:215)
    	at com.google.gwt.http.client.Request.fireOnResponseReceivedImpl(Request.java:254)
    	at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:219)
    	at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:219)
    	at junit.framework.TestCase.runBare(TestCase.java:134)
    	at junit.framework.TestCase.run(TestCase.java:124)
    	at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:132)
    This class recreates the error:
    Code:
    package com.dragonverse.modules.core.client.resource;
    
    import com.google.gwt.junit.client.GWTTestCase;
    import com.smartgwt.client.widgets.grid.ListGridRecord;
    
    import org.junit.Test;
    
    public class SmartGWTTest extends GWTTestCase {
    
    	@Override
    	public String getModuleName() {
    		// Note: put your module of choice here
    		return "com.dragonverse.modules.core.Core";
    	}
    
    	@Test
    	public void testListGridRecord() {
    		ListGridRecord record = new ListGridRecord();
    	}
    }

    #2
    I tried out your sample and it runs fine. You're using JUnit 4 which is not supported by GWT. See http://code.google.com/p/google-web-...detail?id=1683

    Try using JUnit 3.8.1 instead.

    Sanjiv

    Comment


      #3
      Thanks Sanjiv, we'll downgrade today and test it out.

      Comment


        #4
        The stack trace also indicates that the smartclient js files are not loaded. Please verify that you're also inheriting the SmartGwt module.

        Comment


          #5
          That was the problem, we've been using SmartGWTNoScript in order to do custom skinning per other posts on the board.

          We need to figure out a way to use custom skins without using SmartGWTNoScript. Any guidance would be appreciated!

          Thanks -- L

          Comment


            #6
            I added a SmartGwtNoTheme module which only includes the smartclient js. So inherit this module along with the desired skin module. Let us know if still have issues.

            Sanjiv

            Comment


              #7
              Sanjiv -

              That worked great we now have Tests+Skins! Thanks for the rapid responses I really appreciate it, you guys have done some really superb work here with SmartClient and SmartGWT.

              On a side note: I had to comment out the doc target of the build from trunk last night, I kept running out of memory during the javadoc on TreeGrid even after I bumped up my ANT_OPTS memory settings to ridiculous levels.

              Code:
              ANT_OPTS="-Xms512m -Xmx1024m -XX:MaxPermSize=768m -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled"

              Comment

              Working...
              X