Announcement

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

    GWTTestCase fails due to wrong loadScriptTagFiles.js path?

    Hello,
    We recently updated our project from running a quite old SmartGWT 5.0 version, to running SmartGwt 5.1.
    SmartClient Version: v10.1p_2016-07-08/LGPL Development Only (built 2016-07-08)
    Also tried to download the latest today, but gives the same result.

    For some reason, many of the GWTTestCases fail now, due to a missing javascript file:
    Code:
    logging for HtmlUnit thread
       [ERROR] Load Script Error: java.io.IOException: Unable to download JavaScript from 'http://127.0.0.1:55830/com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js' (status 404).
    java.io.IOException: Unable to download JavaScript from 'http://127.0.0.1:55830/com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js' (status 404).
        at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1106)
        at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1039)
        at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:409)
        at com.gargoylesoftware.htmlunit.html.HtmlScript$3.execute(HtmlScript.java:272)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:729)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$500(JavaScriptEngine.java:92)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:679)
        at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602)
        at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:570)
        at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1062)
        at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:409)
        at com.gargoylesoftware.htmlunit.html.HtmlScript$3.execute(HtmlScript.java:272)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:729)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$500(JavaScriptEngine.java:92)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:679)
        at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602)
        at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:570)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:545)
        at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:959)
        at com.gargoylesoftware.htmlunit.html.HtmlScript.executeInlineScriptIfNeeded(HtmlScript.java:347)
        at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:425)
        at com.gargoylesoftware.htmlunit.html.HtmlScript$3.execute(HtmlScript.java:272)
        at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:286)
        at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:683)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
        at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:642)
        at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1170)
        at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1072)
        at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
        at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:330)
        at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3116)
        at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2083)
        at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:918)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:899)
        at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:242)
        at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:188)
        at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:268)
        at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:156)
        at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:437)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:376)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:361)
        at com.google.gwt.junit.RunStyleHtmlUnit$HtmlUnitThread.run(RunStyleHtmlUnit.java:140)
    It seems to be doubling up the module name when looking for 'loadScriptTagFile.js'. Opening the path in my browser, and removing the extra 'com.code.transcoder.JUnit' from the path allows me to correctly load the file.
    Everything seems to be where it should be in the war folder.
    'junit.html' loads 'com.code.transcoder.JUnit.nocache.js', which seems to have this bit at the end:
    Code:
    document.write('<script src="com.code.transcoder.JUnit/loadScriptTagFiles.js"></script>');
    However, all these files are in the same directory, so it seems to me that this bit of code is the culprit, expecting junit.html to be in a parent folder or something?
    Is there some config I'm missing?

    #2
    The script load being injected is a workaround for the limitation in GWT 2.7.0 that causes <script> tags to be ignored. In our SGWT Showcases and the BuiltInDS Sample Project the main page is in the war directory (parent folder), so the document write is designed to create script directives paralleling those in that (the main) page. This is the first we've heard of the main page being in an alternative location.

    We are looking into it.

    Comment


      #3
      The structure of the war folder for me is something like this:
      war/
      - com.code.transcoder/
      - - ace/
      - - images/
      - - sc/
      - - ...
      - - ....gwt.rpc
      - - com.code.transcoder.devmode.js
      - - com.code.transcoder.nocache.js
      - - loadScriptTagFiles.js
      - - ...
      - com.code.transcoder.JUnit/
      - - .junit_symbolMaps/
      - - ace/
      - - images/
      - - sc/
      - - ...
      - - ....gwt.rpc
      - - com.code.transcoder.JUnit.devmode.js
      - - com.code.transcoder.JUnit.nocache.js
      - - ...
      - - junit.html
      - - loadScriptTagFiles.js
      - images/
      - WEB-INF/
      - index.html
      - transcoder.css

      The junit.html file has an older "Date modified" than the other files, but still seems to be re-generated at that location if it's deleted.


      Thank you for taking the time to look into it =)

      Comment


        #4
        It sounds like you're saying that both hierarchies of files are created (during GWT compilation) from a single module specification file (presumably com.code.transcoder.gwt.xml), is that correct? Or do you have a separate manually-coded gwt.xml file for the com.code.transcoder.Junit module hierarchy?

        Comment


          #5
          We only have a single module yes: com.code.transcoder.gwt.xml
          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.6.1//EN" "file:////opt/gwt-2.6.1/gwt-module.dtd">
          <module>

          <inherits name='com.google.gwt.user.User'/>

          <inherits name="com.smartgwt.SmartGwtNoTheme"/>
          <inherits name="com.code.theme.Theme"/>
          <inherits name="com.code.restclient" />
          <inherits name="com.code.GWTComponents" />
          <inherits name="com.code.MseClient" />
          <inherits name="com.code.dom.WebBrowserLib" />


          <inherits name="com.google.gwt.xml.XML" />
          <inherits name="com.google.gwt.logging.Logging"/>
          <inherits name="com.google.gwt.resources.Resources" />

          <inherits name="com.google.common.collect.Collect"/>
          <inherits name="com.google.common.base.Base"/>

          <set-configuration-property name='xsiframe.failIfScriptTag' value='FALSE'/>

          <set-property name='gwt.logging.enabled' value='TRUE'/>
          <set-property name='gwt.logging.consoleHandler' value='ENABLED'/>

          <set-property name="compiler.stackMode" value="emulated" />
          <set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />
          <set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />

          <source path='transcoder'/>
          <entry-point class='com.code.transcoder.Main'/>
          </module>
          As far as I know, we do nothing extra to generate or change the JUnit part.
          com.code.transcoder.Junit seems to be generated when we run the tests.

          Comment


            #6
            Can you provide the command line you're using to generate or run the tests - or a description of the required GUI tool interaction? Are you saying that the "extra" JUnit hierarchy is not created when you compile the module (e.g. "ant build") but only later when you actually explicitly trigger a run? Are you running the tests in production or (Super)Development Mode?

            Comment


              #7
              Ah, knew I forgot to mention something. We run everything using gradle:
              Code:
              apply plugin: 'java'
              apply plugin: 'checkstyle'
              
              repositories {
                  maven {
                      url 'http://nexus.internal/content/groups/trunk/'
                  }
              }
              
              dependencies {
                  compile 'com.isomorphic.smartgwt.lgpl:smartgwt-lgpl:5.1-p20160708'
                  compile 'com.code:code-smartgwt-theme:0.0-SNAPSHOT'
                  compile 'com.code:code-xml-bindings-framework:0.0-SNAPSHOT'
                  compile 'com.code:code-rest-client:0.0-SNAPSHOT'
                  compile 'com.code:code-gwt-components:0.0-SNAPSHOT'
                  compile 'com.code:code-webbrowserlib:0.0-SNAPSHOT'
                  compile 'com.code:code-mse-client:0.0-SNAPSHOT'
              
                  compile 'com.google.guava:guava-gwt:18.0'
              
                  compile 'com.google.gwt:gwt-user:2.7.0'
                  compile 'com.google.gwt:gwt-dev:2.7.0'
              
                  testCompile 'junit:junit:4.11'
              }
              
              test {
                  testLogging.showStandardStreams = true
                  systemProperties = ['gwt.args': '-logLevel WARN']
                  // Gwt tests require src/test dirs on classpath.
                  classpath += files(sourceSets.main.java.srcDirs,
                                     sourceSets.test.java.srcDirs)
              }
              
              task testWeb(type: Test) {
                  testLogging.showStandardStreams = true
                  systemProperties = ['gwt.args': '-web -logLevel WARN']
                  // Gwt tests require src/test dirs on classpath.
                  classpath += files(sourceSets.main.java.srcDirs,
                                     sourceSets.test.java.srcDirs)
              }
              
              clean {
                  delete 'war/WEB-INF'
              }
              
              task compileGwt(type: JavaExec,  group: 'GWT', dependsOn: [classes]) {
                  main 'com.google.gwt.dev.Compiler'
                  classpath files(sourceSets.main.compileClasspath,
                                  // Gwt compile requires source dirs on classpath.
                                  sourceSets.main.java.srcDirs)
              
                  args = ['com.code.transcoder', '-style', 'PRETTY']
              }
              
              task codeserver(type: JavaExec,  group: 'GWT', dependsOn: [classes]) {
                  main 'com.google.gwt.dev.DevMode'
                  classpath files(sourceSets.main.compileClasspath,
                                  // Gwt compile requires source dirs on classpath.
                                  sourceSets.main.java.srcDirs)
                  args = ['-superDevMode', '-port', '8889', '-startupUrl', 'index.html', 'com.code.transcoder']
              
              }
              
              task warCleanup (type: Delete) {
                  mustRunAfter compileGwt
              
                  delete 'war/com.code.transcoder/sc/schema'
                  delete 'war/com.code.transcoder/sc/system'
              }
              
              build {
                  dependsOn compileGwt
                  dependsOn warCleanup
              }
              Running just 'gradle compileGwt' or 'gradle codeserver' does not create the JUnit hierarchy.
              Running 'gradle test' does however create it.
              We also try running the tests from Eclipse directly, but it gives the same errors.

              As far as I see, we do nothing 'extra' for the JUnit part. Removing JUnit as a dependency for the testCompile, does stop the directory from being created, but all the tests also fail instantly, so that might not tell much.
              However, switching back to an older SmartGwt version does fix it(It doesn't seem like you use loadScriptTagFiles.js at all in the previous version we used.)

              Comment


                #8
                Are you able to see output similar to the following in your log files for the com.code.transcoder.JUnit module? You'll know that it applies to that module because above it some number of lines it will say:

                Linking into <some path>/war/com.code.transcoder.JUnit/

                Code:
                  
                     [java]    Invoking Linker SmartGwtScriptInjector
                     [java]       Creating loadScriptTagFiles.js to manually load the following script tags:
                     [java] sc/initsc.js
                     [java] sc/modules/ISC_Core.js
                     [java] sc/modules/ISC_Foundation.js
                     [java] sc/modules/ISC_Containers.js
                     [java] sc/modules/ISC_Grids.js
                     [java] sc/modules/ISC_Forms.js
                     [java] sc/modules/ISC_RichTextEditor.js
                     [java] sc/modules/ISC_Calendar.js
                     [java] sc/modules/ISC_DataBinding.js
                     [java] sc/skins/Enterprise/load_skin.js
                     [java]    Link succeeded
                     [java]    Linking succeeded -- 2.550s

                Comment


                  #9
                  Yes, with logging level set to info I get this:
                  Code:
                  :app:compileJava UP-TO-DATE
                  :app:processResources UP-TO-DATE
                  :app:classes UP-TO-DATE
                  :app:compileTestJava UP-TO-DATE
                  :app:processTestResources UP-TO-DATE
                  :app:testClasses UP-TO-DATE
                  :app:test
                  
                  com.code.transcoder.common.AtomParserTests > testParse STANDARD_OUT
                      Linking module 'com.code.transcoder.JUnit'
                         Invoking Linker Cross-Site-Iframe
                            Ignoring the following script tags in the gwt.xml file
                      sc/modules/ISC_Core.js
                      sc/modules/ISC_Foundation.js
                      sc/modules/ISC_Containers.js
                      sc/modules/ISC_Grids.js
                      sc/modules/ISC_Forms.js
                      sc/modules/ISC_RichTextEditor.js
                      sc/modules/ISC_Calendar.js
                      sc/modules/ISC_DataBinding.js
                      sc/skins/code/load_skin.js
                  
                         Invoking Linker SmartGwtScriptInjector
                            Creating loadScriptTagFiles.js to manually load the following script tags:
                      sc/modules/ISC_Core.js
                      sc/modules/ISC_Foundation.js
                      sc/modules/ISC_Containers.js
                      sc/modules/ISC_Grids.js
                      sc/modules/ISC_Forms.js
                      sc/modules/ISC_RichTextEditor.js
                      sc/modules/ISC_Calendar.js
                      sc/modules/ISC_DataBinding.js
                      sc/skins/code/load_skin.js
                      Ignored 3 units with compilation errors in first pass.
                      Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
                      Starting http://10.211.111.197:58692/com.code.transcoder.JUnit/junit.html?gwt.codesvr=10.211.111.197:58688 on browser FF17
                      200 - GET /com.code.transcoder.JUnit/junit.html?gwt.codesvr=10.211.111.197:58688 (10.211.111.197) 2064 bytes
                      200 - GET /com.code.transcoder.JUnit/com.code.transcoder.JUnit.nocache.js (10.211.111.197) 8017 bytes
                      200 - GET /com.code.transcoder.JUnit/com.code.transcoder.JUnit.devmode.js (10.211.111.197) 14981 bytes
                      [WARN] 404 - GET /com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js (10.211.111.197) 1440 bytes
                         Request headers
                            Host: 10.211.111.197:58692
                            User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0
                            Referer: http://10.211.111.197:58692/com.code.transcoder.JUnit/junit.html?gwt.codesvr=10.211.111.197:58688
                            Accept-Encoding: gzip, deflate
                            Accept-Language: en-us
                            Accept: */*
                            Connection: keep-alive
                         Response headers
                            Content-Type: text/html;charset=ISO-8859-1
                            Cache-Control: must-revalidate,no-cache,no-store
                            Content-Length: 1440
                  
                  com.code.transcoder.common.AtomParserTests > testParse STANDARD_ERROR
                      Aug 08, 2016 7:07:57 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
                      INFO: statusCode=[404] contentType=[text/html]
                      Aug 08, 2016 7:07:57 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
                      INFO: <html>
                      <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
                      <title>Error 404 Not Found</title>
                      </head>
                      <body><h2>HTTP ERROR 404</h2>
                      <p>Problem accessing /com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js. Reason:
                      <pre>    Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                      <br/>                                                
                  
                      </body>
                      </html>
                  
                      Aug 08, 2016 7:07:57 PM com.gargoylesoftware.htmlunit.html.HtmlPage loadExternalJavaScriptFile
                      SEVERE: Error loading JavaScript from [http://10.211.111.197:58692/com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js].
                      java.io.IOException: Unable to download JavaScript from 'http://10.211.111.197:58692/com.code.transcoder.JUnit/com.code.transcoder.JUnit/loadScriptTagFiles.js' (status 404).
                          at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1106)
                          at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1039)
                  ...
                  ...
                  ...

                  Setting to to DEBUG I get a LOT more, but maybe of interest is this:
                  Code:
                  ...
                  Started web server on port 58844
                      Linking modules
                      Loading module 'com.code.transcoder.JUnit'
                      Loading inherited module 'com.code.transcoder'
                         Module location: file:/C:/Users/kst/Documents/transcoder-ui/app/build/resources/main/com/code/transcoder.gwt.xml
                         Loading inherited module 'com.google.gwt.core.Core'
                  ...
                  ...
                  Loading inherited module 'com.google.gwt.junit.JUnit'
                         Module location: jar:file:/C:/Users/kst/.gradle/caches/modules-2/files-2.1/com.google.gwt/gwt-user/2.7.0/bdc7af42581745d3d79c2efe0b514f432b998a5b/gwt-user-2.7.0.jar!/com/google/gwt/junit/JUnit.gwt.xml
                         Loading inherited module 'com.google.gwt.junit.JUnit3'
                            Module location: jar:file:/C:/Users/kst/.gradle/caches/modules-2/files-2.1/com.google.gwt/gwt-user/2.7.0/bdc7af42581745d3d79c2efe0b514f432b998a5b/gwt-user-2.7.0.jar!/com/google/gwt/junit/JUnit3.gwt.xml
                  ...
                  ...
                  ...
                            Emitting resource junit.html
                            Emitting resource loadScriptTagFiles.js
                  ...

                  Comment


                    #10
                    OK. We'll be making an initial change to verify that the configuration properties defined in your gwt.xml are available to our linker in the automatically generated module. If so, we should be able to provide a fix.

                    Comment


                      #11
                      OK. If you could update to today's build (2016-08-09) or later of SGWT 5.1p, and add the following to your com.code.transcoder module definition file (gwt.xml):

                      Code:
                       <set-configuration-property name="scriptInjector.testProperty" value="test1" />
                      Let us know if you see the test output when the com.code.transcoder.JUnit module is built. (You posted earlier the section of the log that would contain this output.)

                      Comment


                        #12
                        Yes, it seems to output during the test compile:
                        Code:
                        ...
                        com.code.transcoder.common.AtomParserTests > testParse STANDARD_OUT
                            Loading inherited module 'com.code.transcoder'
                               [WARN] Line 31: Setting configuration property named 'scriptInjector.testProperty' in module 'com.code.transcoder' that has not been previously defined
                            Linking module 'com.code.transcoder.JUnit'
                               Invoking Linker Cross-Site-Iframe
                                  Ignoring the following script tags in the gwt.xml file
                            sc/modules/ISC_Core.js
                            sc/modules/ISC_Foundation.js
                            sc/modules/ISC_Containers.js
                            sc/modules/ISC_Grids.js
                            sc/modules/ISC_Forms.js
                            sc/modules/ISC_RichTextEditor.js
                            sc/modules/ISC_Calendar.js
                            sc/modules/ISC_DataBinding.js
                            sc/skins/code/load_skin.js
                        
                            *** scriptInjector.testProperty = test1
                               Invoking Linker SmartGwtScriptInjector
                                  Creating loadScriptTagFiles.js to manually load the following script tags:
                            sc/modules/ISC_Core.js
                            sc/modules/ISC_Foundation.js
                        ...

                        Comment


                          #13
                          We've applied a configuration capability to SGWT 5.1p and newer that will let you set the expected path of the module directory relative to the root HTML page. It will be in the nightly builds dated 2016-08-12 and beyond.

                          Example usage of the new configuration capability has been added to the BuiltInDS Sample Project included in the SGWT EE Showcase. Based on what you've said above, for you the lines you'll need to add to your gwt.xml file are:
                          Code:
                          <define-configuration-property name="scriptInjector.pageRelativeModulePath" is-multi-valued="true"/>
                          <extend-configuration-property name="scriptInjector.pageRelativeModulePath" value="com.code.transcoder.JUnit=."/>
                          Additional bindings can be added if needed, of the form <module name>=<relative path>. If no binding is present for a module than the default relative path is assumed.

                          Comment


                            #14
                            Yes, that fixed the problem with loading the javascript files.
                            There still seems to be other places which still get's the wrong path. For example Page.getIsomorphicDir() and the special [ISOMORPHIC] path prefix still returns the wrong path, which causes our skin files to fail loading:
                            Code:
                            404 - GET /com.code.transcoder.JUnit/com.code.transcoder.JUnit/sc/skins/code/skin_styles.css
                            For the tests this isn't really a problem, as they run anyway, but the warnings cause a lot of spam.


                            Anyway, Thank you for taking the time to look into this and provide a fix =)



                            Comment


                              #15
                              The value of isomorphicDir is typically set by the HTML page before the <module>.nocache.js file is loaded. Can you post the content of the junit.html file?

                              Comment

                              Working...
                              X