Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Troubleshooting


    1  General
       1.1  I want to connect modules which do not have the same interfaces at all, how to do it?
       1.2  I am not sure that I am using the correct version for my modules
       1.3  I use a lot of services and some of their names clash, what can I do?
       1.4  I am sending multiple times the same event service with different values, and it does not work as intended
       1.5  I have do do something in my module only after a service has been received, how can I do it?
       1.6  I am using scripts but I have trouble to debug them
       1.7  It seems that services are not received in the exact order I sent them
       1.8  I have a ClassCast exception but I can't see what I did wrong
       1.9  It appears that some services are not received, I send them but the subscriber looks not notified
       1.10  I have the JSONException class not found when starting the framework
    2  Java development
       2.1  I am not able to build my module on Linux / Mac OS X
    3  Python
       3.1  I have some exceptions when executing a Python module when using Anaconda with package xxx
       3.2  I want to continue to use an old Python module version with the last version of the tool
       3.3  My Python script takes a LOT of time to initialize, and therefore I am disconnected before initialization is finished
       3.4  I have a UDP or TCP Python output Buffer size too small error
       3.5  I dont understand how I can specify which Python runtime to use
       3.6  I am on Linux, and the framework does not find the Python runtime
       3.7  I have several services which are sent to my Python script faster than my script can handle them
       3.8  The framework seems not to initialize correctly when I use TkInter
       3.9  I have a strange encoding error when initializing Python script
    4  I have a module which uses some native libraries, and I have an UnsatisfiedLinkError. What can I do?
    5  I have a problem on a built-in module
    6  See also

This article present possible problems and their solution.

See error messages for the list of error messages and their meaning.

General

I want to connect modules which do not have the same interfaces at all, how to do it?

If the interfaces of two modules are not really compatible, there are still ways to allow to connect them. See connecting misaligned modules for more information.

I am not sure that I am using the correct version for my modules

If you want to see the modules version, add the showLibVersion property in the framework configuration. See framework properties

I use a lot of services and some of their names clash, what can I do?

You can use namespaces to declare your services.

I am sending multiple times the same event service with different values, and it does not work as intended


By default event Services datas are handled in a background Thread by each subscriber when the notification is effective. It means that if the same event service is sent multiple times in rapid succession with different values for its datas, it is possible that the values seen by the subscribers will appear to always have the last value. You can change this behavior.

I have do do something in my module only after a service has been received, how can I do it?

Main Article: service implementation

There is a method in the SeviceInstance class allowing to know if a Service has been received (or invoked) at least once.

I am using scripts but I have trouble to debug them

If you want to have help when you have exceptions in your scripts, add the debugScripts property in the framework configuration. See Debugging scripts

It seems that services are not received in the exact order I sent them


By default the framework will perform service invocations using a background Thread pool. It means that You can never be sure of when the invocation will be performed. If you want to be sure that the notification is performed immediately, you must set the serviceInvocationMode as blocking.

For example:
      <files>
         <file url="applications.xml" />
         <file url="services.xml" />
         <file url="types.xml" />
         <property key="serviceInvocationMode" value="blocking" />
      </files>

I have a ClassCast exception but I can't see what I did wrong


If you pass along object Types between different applications, you must reference the jar file which contain the underlying class definition in the applications deployment libraries rather than reference it in each application deployment.

It appears that some services are not received, I send them but the subscriber looks not notified

Main Article: Invoking a service

By design no service invocation can be lost. However, by default, the ordering of invocations will be kept for one module, but not for the whole framework. It is possible to change the default behavior to be sure the the ordering of invocations will be kept globally.

I have the JSONException class not found when starting the framework

This is because you don't have the json.jar file in your Classpath. See deploying for more information.

Java development

I am not able to build my module on Linux / Mac OS X

Prior to version 0.6.27.1b5, the manifest for the framework and several built-in modules used some "\" characters in the Class-path property, which prevented to use these modules as libraries in Mac OS X or Linux IDEs. The exception should be something like "error: error reading .../protoframework.jar; java.net.URISyntaxException: Illegal character in path at ..." You should upgrade to at least 0.6.27.1b5 for protoFramework and the following modules: uaApplication, Jena, MaryTTS, scenarioEngine, xulInterface.

Python

I have some exceptions when executing a Python module when using Anaconda with package xxx

You can have some exceptions with some packages when using Python modules with Anaconda (for example you may no be able to import NumPy). You have two ways to get rid of these errors:
  • Add the Anaconda paths to the PATH environment variable
  • Specify that the Python runtime is an Anaconda runtime
See Usage with Anaconda.

I want to continue to use an old Python module version with the last version of the tool

It is possible, see Python modules version.

My Python script takes a LOT of time to initialize, and therefore I am disconnected before initialization is finished

You should set either the waitAtStart or waitAtInit method. See using lengthy methods for the Python scripts for more information.

I have a UDP or TCP Python output Buffer size too small error

The outputSize of the pythonImplementation is too small. See input and output size for more information.

I dont understand how I can specify which Python runtime to use

You have several ways to do it. See Python runtime for more information.

I am on Linux, and the framework does not find the Python runtime

It appears that you tried to specify a pythonRuntime, whereas it is simpler to specify a pythonRuntimeEnv. See Usage on Linux or MAC OS X for more information.

I have several services which are sent to my Python script faster than my script can handle them

You can specify how the queue of notifications will be handled by the Python scripts. Note that you can have a different behavior for publish Service and event Service notifications. See Python notification queues.

The framework seems not to initialize correctly when I use TkInter


It's because TkInter maintains a main loop on the main Thread, eventually using all the space for itself. If you use TkInter, you should either use the xulInterface module, or communicate using the ExternalComm module or Ivy

I have a strange encoding error when initializing Python script


If you have for example the following error: Exception ignored in: _io.TextIOWrapper name='' mode='w' encoding='cp1252'> OSError: [Errno 22] Invalid argument before the script is even started.

This is probably due to the fact that not enough time is given to the Python runtime to start and create the script. In that case, you should set the value of the waitAtStart parameter. See also Waiting for Python runtime initialization.

I have a module which uses some native libraries, and I have an UnsatisfiedLinkError. What can I do?

The java.lang.UnsatisfiedLinkError is thrown because you did not define the java.library.path property. See the libraries paths declarations for more information.

I have a problem on a built-in module


See troubleshooting for built-in modules.

See also


Categories: troubleshooting

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence