# Troubleshootings

#### The plug-outs start but do nothing

The exchanges between BOUML and each plug-out are supported by a TCP/IP socket. When you ask BOUML to start a plug-out, it search for a free port number starting at 1024 on localhost (127.0.0.1), this port is given in argument to the called plug-out. In case you have a firewall it may be necessary to configure it to allow BOUML and the plug-outs to use a socket.

#### A modification made by a plug-out is not see by the other ones

To reduce the number of exchanges with BOUML and run faster, a plug-out does not ask for BOUML each time you want to get a value. The system classes read and memorize all the data of a given item the first time you access to one of them (with the restrictions allowed by WITHCPP, WITHJAVA and WITHIDL). This is transparent for you until two plug-outs access to the same data, when one plug-out modify a value already read by the other, the second plug-out does not see the new value until it unload (an operation defined on UmlBaseItem) the object, then ask for the value.

#### A class is defined with operations, attributes ... but the C++/Java/Idl generator doesn't generate it

The class doesn't have an associated artifact, or the class/artifact is not defined for the language. Note that a default definition (set through the generation settings) may be done at the creation for each language if you ask for it through the Languages menu

#### I cannot edit a browser item, the edit menu entry or button does not appear :

you do not have the write permission for the associated files or the item is a system item supporting the plug-out API. It is also not possible to edit/delete a class when an other item is already edited.

#### I use a multiple monitor (side by side) configuration and the dialogs are placed partially on each

The environment variable BOUML_LIMIT_DESKTOP is for you !

This optional variable allows to specify a sub-part of all the desktop, its value must be x0,y0,x1,y1 without any spaces, where x0,y0 specify the top-left corner and x1,y1 the bottom-right corner. These limits are taken into account only for the initial size and position of the BOUML's windows and when a dialog is opened, after that you are able to go out of these limits up to the true desktop limits.

#### After editing a description or other part the font is modified or several characters are replaced by a space

During the edition the characters encoded with a 16 bits unicode character set, but out of the editions the characters are saved on only 8 bits. When you use non ISO_8859-1 (latin1) characters you must specify how to do the conversion through the environment variable BOUML_CHARSET.

When this variable is undefined or has an empty value, the character set is ISO_8859-1. If its value is not a known character set's name, a dialog appears when you start Bouml giving the available names. So, to know the possible character sets, set BOUML_CHARSET to wrong for instance and call Bouml.

Examples (the list depends on the release of Qt) :

- ISO_8859-1 (latin1) for English, French, Italien, German ...

- ISO_8859-7 for Greek

- KOI8-R or KOI8-RU or CP_1251 to allow Cyrillic

- JIS7 for Japan

The specified encoding is used for :

- the description of every elements,

- the user properties and associate values of every elements,

- the stereotype of every elements,

- the definition of the artifacts, classes, operations, attributes, relations and extra members,

- the state action behavior

- the state entry / exit / do behavior

- the transition trigger / guard / do behavior

- the attribute's value in an object diagram

- the notes and text in the diagrams

It is not used else where, for instance you can't use non ISO_8859-1 characters to name the elements or in a message of a sequence or collaboration diagram.

The specified encoding is followed in the project's files and for the exchanges with the plug-out, this means for instance that Cyrillic characters may be used in the comments and are generated unchanged by the code generators.

Previous : Project files

Next : GNU public license