Project

General

Profile

Troubleshooting

Back to Table of Contents

In addition to the help provided in this document, refer to the GIFT portal at http://www.gifttutoring.org for more information including forum discussions and an issue tracker.

Which network ports does GIFT use?

See Network communication ports and firewall

GIFT Gateway module setup error when running the jnlp downloaded file

If you are seeing the following error when running a course on GIFT Cloud (GIFT in server mode) that requires the user to download and run the GIFT Gateway module (a .jnlp file):

(snippet)

GIFT Communication Application Closing

The GIFT Communication Application (Gateway module) has not heard from the GIFT server since being started.
Therefore it will be closing in order to prevent multiple running concurrent instances on your machine.
If this happened while running a GIFT course than you will most likely need to restart the course.

The most likely cause is that network traffic on port 1001 is being blocked (NOTE: port 1001 is the port used by GIFT Cloud as reported at Network communication ports and firewall). First check your firewall settings for the network type you are currently connected to (e.g. Domain, Private, Public).

Another cause could be that the network connection between your computer and GIFT is very slow, causing the heartbeat being done is timing out and your locally running GIFT Gateway module considers the GIFT server to be not reachable.

Finally, in rare cases switching networks (e.g. network cable to wifi or vice-versa) while interacting with certain key parts of GIFT can cause GIFT to use old network IP addresses.

UMS Module fails to Launch

When the UMS module fails to start (either by launching GIFT through the learner mode (SPL) or through the monitor), here are some things to look at:
  1. Is there another instance of the UMS still running? Check for the UMS in any existing command prompt windows found on your Windows taskbar. Only 1 instance of each GIFT application (module or tool) can run on a single computer due to Java debug ports.
  2. It could be a problem with the UMS derby database. Open the latest UMS log file found in GIFT/output/logger/module/. Find the first “ERROR” entry in the file. Does it mention things like “SQL”, “derby”, “database”…? If so then there is a problem launching the derby database. More often than not it has to do with permission issues caused by the execution of the derby server (more specifically the log and lock files it creates)
    1. First, are the credentials correct for your database? If you didn’t change them and are using the default values then this isn’t an issue. If you did change them, make sure the GIFT/config/ums/ums.hibernate.cfg.xml file has the correct values for username and password.
    2. Now try launching the derby database independent of the UMS module. This often times identifies issues. Double left click on GIFT\external\db-derby-10.10.1.1-bin\bin\stopNetworkServer.bat followed by stopNetworkServer.bat to stop any existing execution and then start an execution of the server. Find the command prompt window that just appeared and review it for any errors. Often times the issue is related to file/folder permissions.
    3. Finally give full access/permissions to GIFT\data\derbyDb\GiftUms\. Normally this means the following:
      1. Right click on that folder and select “Properties”
      2. Select the “Security” tab
      3. Select the “Edit…” button
      4. Select “Users” from the section titled “Group or user names:”. You may also try selecting your user name if it appears.
      5. Make sure a check exists in the “Full Control” row under “Allow” column.
      6. Finally, selection “Apply” button followed by “OK” buttons until all the property windows are closed.

At any point you can check if the UMS derby database server is running using the following command in the Windows command prompt:

'netstat -aon | find \"1527\" '

No Feedback in the TUI

First, verify with the Monitor tool that Performance Assessment messages are being sent out for a particular user by viewing the “User # Msgs” tabbed pane after selecting to monitor that user. Next, verify that simulation messages are being sent out by the Gateway Module in the same “User # Msgs” tabbed pane in the Monitor tool.
  • If you are expecting Entity State messages (e.g. if you are running a VBS scenario you should see Entity State messages) and there are no entity state messages are being sent out refer to No Entity State Messages in the Monitor’s System Messages.
  • Otherwise check the Domain and Gateway module log files for any issues. Also make sure that your interop configuration is correct. Refer to GIFT Configuration Settings for more information.

No Performance Assessment Messages in the Monitor

If the user is not displayed in the active users list on the Monitor main window, refer to Missing appropriate User ID in the Monitor’s List of Active Users.

Performance Assessment messages will appear on the “User # Msgs” labeled tabbed pane during a domain session’s lesson. If Performance Assessment messages are not being sent, it could be that there are no active tasks in the scenario.
  • Open the appropriate domain knowledge file and look at the start trigger information. Performance assessing will only happen if there is an active task to assess and tasks are only activated when the task start trigger is fired.

Missing appropriate User ID in the Monitor’s List of Active Users

The user ID will only show up if it is found in a message sent between the GIFT modules. If you noticed the user id appear and then disappear from the list of active users, it is because there have been no new user session messages sent recently. Usually the sensor module’s high throughput of sensor data via a domain session message is what keeps a user id from timing out in the list of active user’s while the learner is not actively engaging in the lesson by progressing through the TUI or training application.

No Entity State Messages in the Monitor’s System Messages

If you are expecting Entity State messages (e.g. if you are running a VBS scenario you should see Entity State messages) and there are no Entity State messages, then GIFT and/or the training application is not properly configured.
  • For a DIS connection between GIFT and the training application:
    • GIFT:
      • Open up the file ‘GIFT/configuration/gateway/interopConfig.xml’ in the GIFT directory
    • Training Application:
      • VBS:
        • Open ‘config/DIS/DIS.config’ in the VBS install directory.
          • Verify that ‘<networkAddress>’ in the DISInterface connection in ‘interopConfig.xml’ and ‘dis.inet’ in ‘DIS.config’ match as well as correspond to a broadcast address of a network the machine is currently connected to. ‘dis.inet’ can be left blank in most cases.
          • Verify that ‘<exerciseID>’ in the ‘DISInterface’ connection in ‘interopConfig.xml’ matches ‘dis.exerciseID’ in ‘DIS.config’
          • Verify that ‘<networkPort>’ in the ‘DISInterface’ connection in ‘interopConfig.xml’ matches ‘dis.sendPort’ and ‘dis.recievePort’ in ‘DIS.config’
I am connected to a network
  • Verify that ‘dis.address’ is not sent to anything in ‘DIS.config’, it should look like:
    dis.address=
I am NOT connected to a network
  • Verify that ‘dis.address’ is set to the global broadcast address in ‘DIS.config’, it should look like:
    dis.address=255.255.255.255

ActiveMQ Failed to Start

When starting GIFT do you see something like "Could not start ActiveMQ, check log file for more details"?
- OR -
Are you seeing the following ActiveMQ related errors?

  • “Unable to execute Java command. The system cannot find the file specified.”
    • This error was seen on the prompt that appears after executing the launchActiveMQ.bat file
    • The cause is that ActiveMQ is using the wrong java. The correct java should be referenced on your PATH (JAVA_HOME). To test, edit the “wrapper.java.command” value in GIFT/external/activemq/bin/win32/wrapper.conf and then try the launchActiveMQ.bat again. Example: wrapper.java.command=%JAVA_HOME%/bin/java
  • “Caused by: java.io.IOException: Failed to bind to server socket: tcp://0.0.0.0:61617 due to: java.net.BindException: Address already in use: JVM_Bind” is in the console
    • An 'address already in use' error happens when a network port is being used by another program on your computer. The program could be GIFT or something else entirely.
    • Verify that no other ActiveMQ instances are running
      • Note that if you installed ICT Virtual Human Toolkit that you may have inadvertently installed ActiveMQ as a service
        • To determine if ActiveMQ has been installed as a service and running:
          1. Open up the start menu, type “Services”
          2. Select “Services” in the list
          3. In the window that appears, look in the list for “ActiveMQ”
          4. If it is in the list, check its “Status”, if it is “Started” then another ActiveMQ is running
            • To stop it, right click the row and select “Stop”
            • Note: This will only shut it down temporarily, when you restart your computer you will need to go through these procedures again. In order to make this permanent, you will have to set the “Startup Type” of the service to “Disabled” in the service’s properties.
      • Check if GIFT is running in the Windows System Tray as seen in the screenshot below. If so, right click on the GIFT icon in the system tray and close that instance of GIFT.
    • You may need to change to a different ActiveMQ port.
      1. Change the ActiveMQ port in GIFT by:
        1. Open GIFT\config\module.common.properties for editing
        2. Change the ActiveMQURL property value. For example to change the port from 61617 to 61618, change "ActiveMQURL=tcp://localhost:61617" to "ActiveMQURL=tcp://localhost:61618"
      2. Change the ActiveMQ port in ActiveMQ:
        1. Open GIFT\external\activemq\conf\activemq.xml for editing
        2. Change the "openwire" uri value to the same port number used in GIFT\config\module.common.properties. For example change "<transportConnector name="openwire" uri="tcp://0.0.0.0:61617"/>" to "<transportConnector name="openwire" uri="tcp://0.0.0.0:61618"/>".

Domain Module showing Errors upon Start

  • Hibernate error: “unable to get the default bean validation factory”
    • This was seen while using Eclipse IDE to launch the Domain module right after adding all the gwt jars to the build path located in GIFT/external/gwt/.
    • The simple solution is to remove the gwt libraries (supported by this thread: https://forum.hibernate.org/viewtopic.php?p=2451977, comment: (“I just removed my GWT library from build path and all became fine. This library contains validation-api-1.0.0.GA.jar which caused the error.”)
  • Course, DKF and/or Training Material validation errors in the domain log file
    • Frequently, errors relating to this file or references are due to misconfigurations, such as not extracting training material or domain knowledge content to the appropriate directories. Depending on the error, correct accordingly. The most common error is with files not found. In this case, just satisfy the path mentioned in the error message in the log file.

Missing Courses in the List of Courses shown on the Web-TUI

The domain module is responsible for parsing, validating and then providing the list of courses to the tutor. Check the domain log file for errors. Also refer to the Domain Module showing Errors upon Start section for more information.

Course/Domain fails to start

If after selecting a course to start in the TUI webpage course list you receive an error related to:
  • domain selection failure
  • starting a domain session
  • action failed on server
  • NACK received from Domain_Queue:144.114.227.254:Inbox: Failed to allocate a connection to Gateway module because Failed to create a message client for a module of type Gateway_Module from known modules of that type

The problem may be related to you network configuration. Currently GIFT uses simple logic to check that your TUI client (the TUI webpage) IP address matches that of the GIFT Gateway module (described further in GIFT Configuration Settings – Approved Module Workstation Configurations). If this ‘simple’ logic appears to not be working based on your network configuration, then you can disable this check by doing the following:

  1. Open GIFT/config/module.common.properties
  2. change "IgnoreIPAddrAllocation=false" to "IgnoreIPAddrAllocation=true"
  3. Save the file and run GIFT again. You should no longer have the NACK previously mentioned.

VBS Scenario Does Not Load

If there is an IOException (e.g., java.net.ConnectionException, java.net.SocketException) in the latest Gateway Module log file, please check the following:
  1. Match the port numbers that VBS and the Gateway Module use to communicate (see below), or you need to change to a different port number because the current port is most likely being used by another process. You could also try restarting your machine and see if the problem persists.
  2. Are you using the GIFT VBS shortcut rather than the shortcuts VBS provides? Remember, GIFT creates a VBS shortcut for you when you run the install VBS extensions script mentioned in the install instructions.

Changing VBS and Gateway Module port numbers

  • Verify that the port numbers of both the GIFT VBS plugin config and the Gateway module interopconfig match.
    • You can find the port number the GIFT VBS plugin is using in the file ‘giftvbsplugin.properties’ in ‘plugins/gift/config’ directory of the VBS install directory, it is the “PortNumber” property.
    • You can find the port number that the Gateway module is using in the file ‘interopConfig.xml’ in the ‘GIFT/configuration/gateway/’ directory of the GIFT checkout directory, it is the “networkPort” property of the “InteropInterfaceConfig” with the “className” “gateway.interop.vbsplugin.VBSPluginInterface.”
  • Try restarting the Gateway module and VBS, launching the Gateway module first.

If during the execution of a GIFT course, VBS was automatically transitioned to the “Create game” menu screen (as seen in Figure 1) when it should have started a VBS scenario instead, you need to make sure the appropriate VBS scenario file is in the appropriate location (normally My Documents\VBS\MPMissions\). Please refer to the appropriate course XML file which references the VBS scenario that should be loaded, in addition to any install instructions or release notes for the domain causing the issue. Chances are the scenario files are in your possession but were not copied to the appropriate VBS folder in order for VBS to find them.

Note: VBS may have to be restarted if you copy new scenario files into a VBS folder in order for the new scenario(s) to show up in the list of scenarios to select.

Screenshot of VBS v1.4 Create game menu screen.

VBSPluginInterface IOException in Gateway Module Log File

08:28:51 [Gateway_Queue:10.1.21.178] ERROR mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface - IOException caught when connecting to the VBS Plugin
java.net.ConnectException: Connection refused: connect
                at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
                at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
                at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
                at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
                at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
                at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
                at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
                at java.net.Socket.connect(Socket.java:579)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendCommand(VBSPluginInterface.java:533)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendCommand(VBSPluginInterface.java:496)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendGIFTMessage(VBSPluginInterface.java:272)
                at mil.arl.gift.gateway.GatewayModule.sendMessageFromGIFT(GatewayModule.java:280)
                at mil.arl.gift.gateway.GatewayModule.handleMessage(GatewayModule.java:198)
                at mil.arl.gift.common.module.AbstractModule$1.processMessage(AbstractModule.java:159)
                at mil.arl.gift.net.api.NetworkSession$1.processMessage(NetworkSession.java:286)
                at mil.arl.gift.net.api.MessageClient.handleMessage(MessageClient.java:348)
                at mil.arl.gift.net.api.MessageClient.dispatchMessages(MessageClient.java:309)
                at mil.arl.gift.net.api.MessageClient.run(MessageClient.java:337)
08:28:51 [Gateway_Queue:10.1.21.178] ERROR mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface - The attempt at sending the command hostMission ["PresencePatrol.Sara"] has failed because it returned a result of null
08:28:51 [Gateway_Queue:10.1.21.178] ERROR mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface - IOException caught when connecting to the VBS Plugin
java.net.SocketException: Socket is not connected
                at java.net.Socket.getOutputStream(Socket.java:906)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendCommand(VBSPluginInterface.java:536)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendCommand(VBSPluginInterface.java:496)
                at mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface.sendGIFTMessage(VBSPluginInterface.java:303)
                at mil.arl.gift.gateway.GatewayModule.sendMessageFromGIFT(GatewayModule.java:280)
                at mil.arl.gift.gateway.GatewayModule.handleMessage(GatewayModule.java:198)
                at mil.arl.gift.common.module.AbstractModule$1.processMessage(AbstractModule.java:159)
                at mil.arl.gift.net.api.NetworkSession$1.processMessage(NetworkSession.java:286)
                at mil.arl.gift.net.api.MessageClient.handleMessage(MessageClient.java:348)
                at mil.arl.gift.net.api.MessageClient.dispatchMessages(MessageClient.java:309)
                at mil.arl.gift.net.api.MessageClient.run(MessageClient.java:337)
08:28:51 [Gateway_Queue:10.1.21.178] ERROR mil.arl.gift.gateway.interop.vbsplugin.VBSPluginInterface - The attempt at sending the command endMission "end1" has failed because it returned a result of null

Refer to VBS Scenario Does Not Load.

VBS Plugin Failed to Respond

08:28:51 [Domain_Queue:10.1.21.178] ERROR mil.arl.gift.domain.BaseDomainSession - Error while 'Loading scenario'. Recieved NACK from Gateway_Queue:10.1.21.178:Inbox, The VBS plugin failed to respond
08:28:51 [Domain_Queue:10.1.21.178] ERROR mil.arl.gift.domain.BaseDomainSession - Error stopping scenario on shutdown: NACK Received from Gateway_Queue:10.1.21.178:Inbox, The VBS plugin failed to respond

If you see this in the domain module log file, please open the Gateway module log file for more information. The Gateway module handles the VBS plugin connection and it’s log should show more information about the issue.

Usage Manager Memory Limit Message in ActiveMQ Terminal

If a message is sent on the ActiveMQ connection that causes the memory limit to be reached, the message client will become unusable. The ActiveMQ terminal will show a message similar to this:

jvm 1 | INFO | Usage Manager Memory Limit (1048576) reached on queue://Logger_Queue. Producers will be throttled to the rate at which messages are removed from this destination to prevent flooding it. See http://activemq.apache.org/producer-flow-control.html for more info

If the module is clearly running (probably because the terminal window is still open) but the Monitor shows the status as not-running/offline, the only recourse, currently, is to restart ActiveMQ and the affected modules. The best solution is to restart all of the modules.

Monitor shows Module to be Offline

  • Is the terminal/command prompt window still open for that module and it does not contain an error message?
    • Check for: Usage Manager Memory Limit message in ActiveMQ terminal
    • Is the UMS module running? In earlier versions of GIFT, the monitor requires that the UMS be running and producing Aggregate module status messages containing certain module’s status information before it will show those modules as running/active.
  • Try launching that module again. If it starts successfully then continue on with starting your GIFT instance. If the command prompt for that module opens and then closes quickly and it can’t be found as one of the minimized windows, refer to Module/Application Console or Prompt Appears then Disappears.

Monitor Fails to Launch

If after executing the “GIFT\scripts\launchMonitor.bat” file the monitor fails to appear, start by opening the Monitor console window found in the Window’s taskbar. If the console shows:

Caught exception while trying to create and connect
javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61617. Reason: java.net.ConnectException: Connection refused: connect
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:286)
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
        at mil.arl.gift.net.api.MessageClient.initializeConnection(MessageClient.java:312)
        at mil.arl.gift.net.api.MessageClient.connect(MessageClient.java:335)
        at mil.arl.gift.net.api.NetworkSession.initializeModuleConnection(NetworkSession.java:555)
        at mil.arl.gift.net.api.NetworkSession.<init>(NetworkSession.java:382)
        at mil.arl.gift.common.module.AbstractModule.<init>(AbstractModule.java:165)
        at mil.arl.gift.common.module.AbstractModule.<init>(AbstractModule.java:113)
        at mil.arl.gift.tools.monitor.MonitorModule.<init>(MonitorModule.java:159)
        at mil.arl.gift.tools.monitor.MonitorModule.getInstance(MonitorModule.java:148)
        at mil.arl.gift.tools.monitor.MonitorModule.main(MonitorModule.java:775)
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
        at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.java:484)
        at org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:447)
        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
        at org.apache.activemq.transport.InactivityMonitor.start(InactivityMonitor.java:126)
        at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
        at org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:72)
        at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
        at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:266)
        ... 11 more
mil.arl.gift.common.ConfigurationException: Unable to configure class because Unable to establish a network connection
        at mil.arl.gift.net.api.NetworkSession.initializeModuleConnection(NetworkSession.java:562)
        at mil.arl.gift.net.api.NetworkSession.<init>(NetworkSession.java:382)
        at mil.arl.gift.common.module.AbstractModule.<init>(AbstractModule.java:165)
        at mil.arl.gift.common.module.AbstractModule.<init>(AbstractModule.java:113)
        at mil.arl.gift.tools.monitor.MonitorModule.<init>(MonitorModule.java:159)
        at mil.arl.gift.tools.monitor.MonitorModule.getInstance(MonitorModule.java:148)
        at mil.arl.gift.tools.monitor.MonitorModule.main(MonitorModule.java:775)
The module has exited, check prompt and log for more details
Press Enter to Exit

Then make sure to start ActiveMQ before trying to start the monitor (or any GIFT module) by executing GIFT\scripts\launchActiveMQ.bat.

Eclipse IDE Error Dialog when Launching a Debug Configuration

When using a GIFT provided Debug configuration for the Eclipse IDE, you might get an error dialog like this:

The issue is that Eclipse has lost focus on the current project, therefore the value of the eclipse variable “project_name” is not declared.

To fix the problem, select the root of the GIFT project in Eclipse and then try to launch the debug configuration again.

Module/Application Console or Prompt Appears then Disappears

If a module or application console (aka terminal window) appears and then quickly disappears (and is not located on the windows taskbar or grouped with similar applications on the windows taskbar) then there is an error with that program. To see the error, you will need to enable the debug option by:

  • Open console, change directory to <gift install directory>/GIFT/scripts
  • Run launchProcess command (launchModule for GIFT v1.0):
launchProcess.bat start <process name> debug
example: launchProcess.bat start domain debug

If that doesn’t work, then try the following to pause the execution of the command:

  1. Open GIFT/scripts/runCommand.bat in a text editor.
  2. Remove the comment argument text of “REM” from the following two lines in that file:
    REM echo %Command%
    REM pause
    
  3. Save the file.
  4. Execute your application again (e.g. double click on the bat file or click on the button on the monitor) and you should now see a console window (maybe minimized).

Gateway Module shows Error upon Launching

  • Exception in thread "main" mil.arl.gift.common.ConfigurationException: Unable to configure class because Caught exception while trying to parse interop interface, check log for more detail.

… the Gateway module log shows:

  • java.lang.IllegalArgumentException: The PowerPoint type library of C:\\Program Files (x86)\\Microsoft Office\\Office14\\MSPPT.OLB could not be found on this machine. The PPT interop interface will not be available.

Issue: The path to the PowerPoint type library (i.e., the library used to launch PowerPoint on the same computer the Gateway module is running on) can’t be found at the specified path.

Solution:
If you have Microsoft PowerPoint application installed on that computer, provide it the correct path to the OLB file. Each PowerPoint version might have a different named OLB file. Refer to “GIFTConfigurationSettings” document for more information.

On the other hand, if you don’t have PowerPoint, then just comment out the PowerPoint interop interface XML element in the interopConfig.xml file as mentioned in the “GIFTInstallInstructionsWin7” document.

Tutor User Interface (TUI) Webpage does not Display the Login Screen

Does the TUI webpage display anything?

  • Yes – does it look like the image below?

If so, in the GIFT installation directory go to ‘GIFT/config/tutor/server/contexts’ and verify that ‘tutor.xml’ is the only file and delete or move any other files.

Next, verify that you only have one Tutor Module running. Sometimes this page is shown when you attempt to run more than one GIFT instance at a time on the same computer. Kill all modules (which may mean closing GIFT via the Windows System tray if your running GIFT in learner mode) and launch each module individually by running in Power User mode using the GIFT Monitor application, confirming that the Tutor Module starts up with no errors, and see if the problem continues.

  • No – Are you running an approved web browser version? As of GIFT 2014-1X, only Internet Explorer 10 (IE10) is supported (Chrome is also supported for GWT GIFT development but not tested against for GIFT releases). You can set your IE11 browser to “Emulation” and the document mode to 10 in order to run GIFT; however this is not officially supported. Please refer to these forum posts (as well as searching the forums in general) for more information - https://gifttutoring.org/boards/5/topics/288, https://gifttutoring.org/boards/5/topics/266.

Avatar is not working

If an avatar is set to be used but not working (is not displayed, is not speaking, etc), this can be the fault of several problems that can be generally solved by following these instructions.

  1. Make sure your references to your avatar in your GIFT course XML file and/or DKF is valid, that they reference the avatar relative to the ‘GIFT/Domain’ directory.
  2. This step is intended for users that made their own avatars using the Character Builder application. If your avatar is using Text-to-Speech, that its Character Server URL is either the URL of the tutor module (e.g. http://localhost:8090/cs) or points to a working external Character Server. Ideally you should use the URL of the tutor module and have the Tutor module reference your external Character Server.
  3. If you are using a local character server (i.e. you don’t have access to an external character server on the network), make sure the Media Semantics Character Server is installed on your computer. You can verify that it is installed by either checking “Program Files” for a “Character Server” folder or by checking your computer’s “Services” for a “Character Server” service.
    1. Make sure the ‘Logs’ directory of the Character Server installation directory has the correct permissions to read and write
    2. To edit permissions on the folder:
      1. Right click the folder “Logs” and select “Properties”, then select the “Security” tab.
      2. Press the “Edit…” button underneath the “Group or user names” list, a dialog will appear.
      3. In the “Group or user names” list, find the user that will run the Character Server (most likely your current login), if it is not visible you may need to add that user with the “Add…” button and search for the username. Select the user in the list.
      4. In the “Permissions for…” list, select under “Allow”: Select “Modify”, “Read”, and “Write”
      5. Press “Apply” and then “OK”. The dialog will disappear
  4. Once you have ascertained that a Character Server is installed locally, or you are using an external Character Server on the network, make sure GIFT is configured correctly to use the Character Server by making sure ‘GIFT\config\tutor\server\contexts\tutor.xml’ has the property “CharacterServerDirectory” set to either that installation directory or the URL of the external Character Server by uncommenting appropriate block of file (If you an unsure what is the appropriate block, read the comments).
  5. If the Avatar is still not speaking, check the Character Server logs directory for an “Error” file.
    a. ERROR - The template file 'C:\Program Files\Character Builder\Library\Templates\Server\Speech.xml' was not found.
    - If you see this error, verify that Character Builder was installed by checking "Program Files" or "Program Files (x86)" for a "Character Builder" folder. If missing, install Media Semantics Character Builder and then restart the computer.
    - If you see this error and you have installed Character Builder but it was installed to another directory (e.g. “Program Files (x86)”), you can copy the “Character Builder” directory to the location it is looking for. In this case it is “Program Files” directory. This appeared to solve my problem of the avatar not speaking. Not sure what side effects it will have on the Character Builder application. Ideally there should be a configuration file for setting this information.
  6. If the Avatar is still not speaking, check your GIFT module logs for any errors.
  7. If the Avatar is still not speaking, try clearing out your browser’s cache.
    1. For Internet Explorer 10, you can do this by following these instructions
      1. Click the gear icon in the top-right corner, hover over “Safety”, then select “Delete Browsing History…”
      2. Deselect Preserve Favorites website data, and select Temporary Internet files, Cookies, and History.
      3. Click Delete.
  8. If the Avatar is still not speaking, see if the problem is in the web browser by viewing your browser’s console
    1. For Internet Explorer 10, you can do this by following these instructions
      1. Click the gear icon in the top-right corner and click “F12 Developer Tools”
      2. In the window/panel that appears, select “Console” in the second menu bar
      3. Refresh the web page and then get the Tutor to speak
  9. If there are errors in the browser console window, they may be specific enough to determine and solve the problem, otherwise make a forum post on the GIFT Tutoring website detailing your problem.

GIFT Fails to Build

There are a few reasons why this might be happening. The first place to look is in the console window created when executing the build batch file. Below is a list of explanations on some common issues:

Missing third party libraries

The third party libraries were not extracted to GIFT\external\. The build requires third party libraries to build the GIFT java source code. This is done for you in GIFT releases.

Jarsigner issue

This build error normally happens when building GIFT on a poor internet connection where the request to sign a jar file being created by GIFT times out on the third party server. The work around is to build GIFT with no internet connection OR trying to push through and build again with the poor internet connection.

This error can present as the following examples:

  • C:\devtools\gameMasterMapView\GIFT\src\mil\arl\gift\gateway\build.xml:265: jarsigner returned: 1
  • C:\devtools\gameMasterMapView\GIFT\src\mil\arl\gift\common\build.xml:256: jarsigner returned: 1
  • [signjar] jarsigner: unable to sign jar: java.net.SocketException: Unexpected end of file from server

Windows Path name length issue

The path that GIFT is installed in is too long (i.e. there are too many characters in the full path to the GIFT folder). You might see an exception like the one shown below in the console window. To fix this issue, install GIFT in a directory whose path is shorter than the current path to GIFT.

C:\5-29-0848\GIFT_release_3.0_2013-05-31\GIFT_Source_release_3.0\GIFT_Test\GIFT\build.xml:32: The following error occurred while executing this line:
C:\5-29-0848\GIFT_release_3.0_2013-05-31\GIFT_Source_release_3.0\GIFT_Test\GIFT\build.xml:241: Javadoc failed: java.io.IOException: Cannot run program "C:\Progr
am Files (x86)\Java\jdk1.7.0_02\bin\javadoc.exe": CreateProcess error=206, The filename or extension is too long
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        at java.lang.Runtime.exec(Runtime.java:615)
        at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:862)
        at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:481)
        at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:495)
        at org.apache.tools.ant.taskdefs.Javadoc.execute(Javadoc.java:1758)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:809)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.io.IOException: CreateProcess error=206, The filename or extension is too long
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:189)
        at java.lang.ProcessImpl.start(ProcessImpl.java:133)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
        ... 33 more

How to clear and refresh you Internet Explorer Information

GIFT supports Internet Explorer for its web based user interfaces (i.e. TUI, SAS, etc.). In some instances your IE may cache out of date information about a GIFT authored webpage. This can be anything from how to display a component of a webpage to how to handle an audio track. When and if you notice an issue with a GIFT webpage here are some steps you can follow to clear your Internet Explorer (version 10 in these instructions) memory:

  • To clear information:
    1. Open Internet Explorer
    2. Click on the Tools button (looks like a gear) in the top right of the window. You can also use “ALT+X” keyboard shortcut.
    3. Select “F12 developer tools”. You could have also used the “F12” keyboard shortcut to directly get to the developer console.
    4. Select the “Cache” menu option
    5. Select “Clear Browser Cache”.
    6. Select the “Yes” button on the “Clear Browser Cache” confirmation dialog that appears.
    7. Select the “Cache” menu option
    8. Select “Clear Session Cookies”
    9. Close all instances of IE.

TC3 (vMedic) Fails to launch

If you receive an error, like the image below, when launching TC3 (vmedicsim.exe), you will need to install “Microsoft Visual C++ Redistributable” package to fix the issue. Try this link: http://www.microsoft.com/en-us/download/details.aspx?id=5555. After installing “msvc”, retry starting TC3.

GIFT Fails to launch

If you execute/start the launchGIFT.bat and it appears that the process fails because the GIFT system tray icon is not visible, then try the following.

End Java Processes and try again

It’s possible that GIFT is already running but there was a problem because you can’t access it.

If there is no GIFT icon in the system tray of Windows then follow these steps:

  1. open the Windows Task Manager
    1. Press Ctrl + Alt + Delete keyboard buttons and select “Start Task Manager” (Windows 7).
    2. - OR – type “task manager” into the search text field of the windows start menu.
  2. In the Processes tab of the Task Manager, look for “javaw.exe *32” as the “Image Name” with an “Image Path Name” of “<path-to-gift>\external\jre7\bin\javaw.exe.
    1. Note: if “Image Path Name” is not shown on your Task Manager:
      1. Select the View menu option on the Task Manager window
      2. Then select “Select Columns…”
      3. Click on the checkbox next to “Image Path Name” to place a check in the box.
      4. Select the OK button.
  3. If found, right click on that line and select “End Process”. Follow the prompts to end the process.
  4. Try to launch GIFT again.

A window appears and then disappears quickly

Try to determine if there is an error during startup by following these steps

PowerPoint fails to play audio file

If you are running a GIFT course that presents a PowerPoint show (e.g. Hemorrhage Control) and the embedded/linked audio files (e.g. mp3) fail to play at all then follow these steps:

  1. Open the PowerPoint show outside of GIFT, i.e. find the file and open it using PowerPoint.
    1. Is there a prompt to enable content of some type?
      If so, make sure to enable the content on the prompt shown. Furthermore follow the Allow PowerPoint macros in the GIFT Configuration Settings document. Finally, try to run the PowerPoint show in GIFT again to see if that fixed the issue. If the audio still doesn’t play, continue reading…
    2. It is possible that the path to the audio file(s) are too long as mentioned here:
      http://office.microsoft.com/en-us/powerpoint-help/use-embedded-and-linked-sound-files-in-powerpoint-HA001034823.aspx

Snippet from that website for a “Linked File”: NOTE If the path name of a linked file exceeds 128 characters, Microsoft Office PowerPoint is not able to find and play that linked file. In such a case, you can either rename the linked file, or shorten the path name by copying the linked file into the folder where your presentation is located. Then either update links automatically by using the Package for CD feature, or update them manually by removing the sounds from the presentation and then adding them again.

There are two ways we use to fix this issue.

i. Move your GIFT installation to a path with a less characters such as “C:\”. This is a quick and easy way to not only solve the issue but also test that the path length is indeed the problem.

We suggest that you try this first before continuing to confirm the issue at hand.

ii. Follow these steps to change the paths to the audio files from absolute to relative as mentioned here:
http://superuser.com/questions/42661/how-do-i-embed-video-in-powerpoint-with-relative-paths

Snippet from that website:
Note: doesn't work for PowerPoint 2003, only for new pptx files (since 2007)
Seems like relative paths are supported, they are just not straightforward to implement. For example if your Powerpoint presentation is in the MyFiles folder, and the MyMovie.avi is in the Media folder inside MyFiles. The trick is to edit the xml files inside the Powerpoint file:

  • Make a copy of your presentation as Presentation.pptx (just to keep the original safe).
  • Rename your Presentation.pptx file into Presentation.pptx.zip
  • Open the resulting zip file by clicking on it.
  • It will open as a folder. Inside it, go to ppt, then slides, then _rels
  • You will see files called slide1.xml.rels etc.
  • Copy (drag and drop) all those to another place, outside the archive.
  • Now open the file corresponding to the number of your slide with video with some editor (for example, Notepad).
  • Look for the line that says something like: Target="file:///C:\MyFiles\Media\MyMovie.avi"
  • If your Powerpoint presentation is in the MyFiles folder, and the MyMovie.avi is in the Media folder inside MyFiles, then change the above line to: Target="Media\MyMovie.avi"
  • Save the slide1.xml.rels file (or whatever number it was), then drag it back to that archive (that is actually a Powerpoint file), and then rename the archive back to Presentation.pptx
  • This is it. Now you should be able to carry around the folder MyFiles with the presentation and with the Media folder inside it that contains your video.
  • You cannot do these procedures with a “ppt” file, instead you have to save the “ppt” as a “pptx” or “pptm” first.

PowerPoint – How to enable/allow Macros

Some of the GIFT courses use PowerPoint to present PowerPoint show files which contain macros (for more information on Macros refer to http://msdn.microsoft.com/en-us/library/office/ee814734(v=office.14).aspx ). In order to automatically allow those macros to execute in PowerPoint while running a GIFT course, you will need to include the GIFT domain folder as a trusted location in PowerPoint. To do this follow the steps mentioned in the GIFT Configuration Settings document under the section Training Applications, subsection PowerPoint.

YouTube Video Lesson Material Fails to Play

If you authored a course with lesson material that references a YouTube video and that video fails to play inside the GIFT Tutor User Interface, then the most common problem is that the YouTube video address is not compatible with GIFT. The figure below shows a snippet of the error message presented in the TUI after selecting the link on the lesson material webpage for the video when the address of the video is not correct. If this is the case please refer to GIFTDomainCourseFile.htm and search for “YouTube” to find the section on formatting raw YouTube video addresses to a GIFT compliant address. If you are receiving a different error please author a forum post on www.gifttutoring.org for more help.

Java out of memory (heap space) error/exception

Most of the GIFT applications are allocated a maximum of 1GB of Java Heap space (using the Java command line argument of –Xmx1024m) which is normally enough for most instances. However, when executing the ERT on a large data set it was discovered (because there was a Java out of memory error in the ERT/GAS log file - java.lang.OutOfMemoryError: Java heap space) that the JVM may require more memory than just 1GB. To increase the available memory of a GIFT application, please refer to the GIFT Configuration Settings document (search for Java Heap Space).

GWT JavaScript Exception

During development the <div> element with id of “ta-placeholder” was removed/renamed in GIFT/src/mil/arl/gift/tutor/web/war/TutorUserWebInterface.html. That element name was referenced by GIFT/src/mil/arl/gift/tutor/web/client/Document.java and when it wasn’t found it caused the Tutor User Interface (TUI) to not be displayed and the error dialog seen below was shown in IE:

A snippet is included here for find/searching purposes:

There was an error while exception caught: Invalidating Browser Session
com.google.gwt.core.client.JavaScriptException: (TypeError) description: Unable to get property 'style' of undefined or null reference number: -2146823281 stack: TypeError: Unable to get property 'style' of undefined or null reference at APc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:4999:19) at fPc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:3184:33) at sKc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:5139:119) at vTc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:4855:96) at IKc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:3904:31) at LKc (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:5290:22) at Kvb (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:5214:498) at GE (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:4845:135) at VE (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:5281:15234) at Anonymous function (http://localhost:8090/tutor/tutoruserwebinterface/5B2E863A14EF038C729840B3FA189C09.cache.html:4235:63) __gwt$exception: : Unable to get property 'style' of undefined or null reference

The exception information is not helpful at all. Once the name used in the html and the Document.java matched and a build of the tutor was done, the exception went away.

Jar Signer