Erreur compilation RT

Bonjour,
Après réalisation d'un programme FPGA et de sa compilation dans un CompactRio, j'ai fais le programme RT qui va avec mais au moment de le compiler, il m'affiche l'erreur:
LabVIEW:  (Hex 0x627) Le nom de fonction du nœud LabVIEW:FpgaSdkMemoryEmulationWriteAddress:C est introuvable dans la bibliothèque.
Etant donné que je ne saisi pas vraiment a quoi cela est du, je ne peut pas corriger ce probleme...
Est-ce que quelqu'un aurait une idée d'où le probleme pourrait venir ou encore comment le régler ?
Merci d'avance,
Nathan
Résolu !
Accéder à la solution.

Bonjour,
Je pense que vous avez utilisé un élément qui n'est pas compatible sur la partie RT.
Vous devriez utiliser les DMA FIFOs pour transférer vos données de l'hôte vers le FPGA et du FPGA vers l'hôte.
Vous avez un exemple ici :
 https://decibel.ni.com/content/docs/DOC-9893
Brice S.
National Instruments France

Similar Messages

  • IMPOSSIBLE d'exporter ma vidéo en H.264 erreur systématique : Erreur compilation vidéo

    Hello, je dispose de la version adobe première pro 2014 depuis 5 jours et IMPOSSIBLE d'exporter mon projet.
    Forma choisi : en H.264 et Encoder me dit erreur systématique : "Erreur compilation vidéo. Erreur indéterminée."
    Merci pour vos réponse ça fait des jours que je cherche. Je n'en peux plus ...
    Amicalement, Olive

    Error Compiling Movie... some past discussions and ideas
    -http://helpx.adobe.com/premiere-pro/kb/error-compiling-movie-rendering-or.html
    -http://helpx.adobe.com/premiere-elements/kb/error-error-compiling-movie-render.html
    -and nested sequences http://forums.adobe.com/thread/955172

  • Erreur compilation du film

    Bonjour,
    J'ai adobe éléments 12 depuis décembre 2013, impossible de créer un film, l'erreur suivant apparait  après quelques instants
    Ordinateur:
    Vista32
    4Go Ram
    pross 4 Coeurs intel
    Disque dur: plusieurs de 500 go
    Merci de votre aide.

    charles.preivet
    Please review the following Adobe document on Compiling Errors which points to a problem with file(s) used in your Timeline content.
    http://helpx.adobe.com/premiere-elements/kb/error-error-compiling-movie-render.html
    Premiere Elements 12
    Windows Vista 32 bit
    What are you doing in the program when this error appears?
    Let us start here and then decide what next.
    If necessary, we will next look at the project in detail
    a. project preset
    b. properties of source media
    c. export settings
    d. other
    Thank you.
    ATR

  • Erreur lors de compilation de l' FPGA

    bonjour, 
    Voici l'erreur que j'obtiens quand je veux compiler mon programme FPGA
    LabVIEW FPGA: La compilation a échoué à cause d'une erreur Xilinx.
    Details:
    ERRORack:2310 - Too many comps of type "SLICE" found to fit this device.
    Design Summary:
    Number of errors: 1
    Number of warnings: 89
    Logic Utilization:
    Number of Slice Flip Flops: 7,963 out of 10,240 77%
    Number of 4 input LUTs: 10,607 out of 10,240 103% (OVERMAPPED)
    Logic Distribution:
    Number of occupied Slices: 5,523 out of 5,120 107% (OVERMAPPED)
    Number of Slices containing only related logic: 4,143 out of 5,523 75%
    Number of Slices containing unrelated logic: 1,380 out of 5,523 24%
    *See NOTES below for an explanation of the effects of unrelated logic.
    Total Number of 4 input LUTs: 11,028 out of 10,240 107% (OVERMAPPED)
    Number used as logic: 10,454
    Number used as a route-thru: 421
    Number used as 16x1 RAMs: 70
    Number used as Shift registers: 83
    Number of bonded IOBs: 90 out of 324 27%
    IOB Flip Flops: 97
    Number of MULT18X18s: 38 out of 40 95%
    Number of BUFGMUXs: 2 out of 16 12%
    Peak Memory Usage: 359 MB
    Total REAL time to MAP completion: 19 secs
    Total CPU time to MAP completion: 19 
    J'ai essayé de reduire mon programme le maximum mais l'erreur revien a chaque fois que j'ajoute une nouvelle variable
    voici une capture ecran du programme 
    merci d'avance
    Pièces jointes :
    Capture.PNG ‏39 KB
    Solved!
    Go to Solution.

    Hi ramlus,
    you know you posted in the English section of the forum?
    To your problem: you have too much code to fit into your FPGA…
    On your code:
    - Why do you convert readings to SGL in the first place, when you have I16 indicators?
    - Why don't you use FXP indicators?
    - Why don't you scale the values in the RT host?
    - Why don't you create an array of all measurement values and use just one array indicator to forward values to your RT host?
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Erreur logiciel lors d'une compilation FPGA

    Bonjour,
    Suite à un bug durant la compilation FPGA, j'ai installer la derniere version de LabView avec la derniere version du NI-RIO, et effectivement le bug est parti !
    Mais comme le bonheur ne dure qu'un temps, j'ai maintenant une erreur qui se produit lors de la compilation...
    En cliquant sur le bouton "Détails" de la fenetre de compilation, le message suivant apparait :
    Cette erreur peut elle etre due à mon code ou alors la raison est tout autre ?
    Cordialement
    Nathan

    Solution trouvé !
    http://digital.ni.com/public.nsf/allkb/5B8827503F7D90F386257BEA002D8E99
     

  • Erreur pendant la compilation d'un executable

    Bonjour,
    j'essaye de compler un programme, mais avant même de commencer la compilation, LabVIEW sort l'erreur : 
    L'erreur 6 s'est produite à : AB_Destination.lvclass:Create_Destination.vi -> AB_Build.lvclass:Create_Destinations.vi -> AB_Application.lvclass:Create_Destinations.vi -> AB_Build.lvclass:Build.vi -> AB_Application.lvclass:Build.vi -> AB_EXE.lvclass:Build.vi -> AB_Engine_Build.vi -> AB_Build_Invoke.vi -> AB_Build_Invoke.vi.ProxyCaller
    Raisons possibles :
    LabVIEW: Erreur générique de fonction d'E/S sur fichiers
    =========================
    NI-488: L'opération d'E/S a été abandonnée.
    Je n'arribe pas a comprendre ce que cela veut dire, ni a trouver les VI qui sont indiqué ci-dessus. 
    Auriez-vous des idées pour résoudre ce problème.
    Merci d'avance,
    Gabriel de Ramecourt

    Bonsoir Gabouch,
    tout d'abord merci d'avoir posté sur le forum de discussion National Instruments.
    L'erreur 6 est une erreur d'entrée/sortie sur les fichiers. L'aide LabVIEW donne un peu plus d'explications :
    « Erreur générique de fonction d'E/S sur fichiers Cette erreur peut se produire si le disque dur ou le lecteur spécifié pour l'enregistrement est plein. Essayez de libérer de la place sur le disque ou d'enregistrer sur un autre disque ou lecteur. Vous pouvez aussi recevoir cette erreur si la connexion réseau est mauvaise. Par exemple, la connexion réseau est coupée ou un câble réseau est déconnecté. »
    Est-ce que cela vous parle plus ?
    Est-ce qu’il vous serait possible de poster votre projet pour qu’on regarde ça de plus près ?
    Bien cordialement,
    Audrey_P
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...

  • Erreur à la compilation

    Bonjour,
    j'utilise labview 2010.
    lorsque je veux compiler mon application,j'ai le message d'erreur suivant :
    Visitez la page de demande de support sur ni.com/ask_fr pour en apprendre davantage sur la résolution de ce problème. Utilisez les informations suivantes comme référence :
    L'erreur 6 s'est produite à : AB_Destination.lvclass:Create_Destination.vi -> AB_Build.lvclass:Create_Destinations.vi -> AB_Application.lvclass:Create_Destinations.vi -> AB_Build.lvclass:Build.vi -> AB_Application.lvclass:Build.vi -> AB_EXE.lvclass:Build.vi -> AB_Engine_Build.vi -> AB_Build_Invoke.vi -> AB_Build_Invoke.vi.ProxyCaller
    Raisons possibles :
    LabVIEW:  Erreur générique de fonction d'E/S sur fichiers
    =========================
    NI-488:  L'opération d'E/S a été abandonnée.
    Que dois-je faire ?
    En vous remerciant,
    Vincent

    Bonjour,
    Merci d’avoir posté votre question sur les forums de
    National Instruments.
    Afin de vous aider au mieux j’aurais besoin de quelques
    précisions supplémentaires par rapport à la façon dont vous réalisez votre
    application.
    Utilisez-vous des bibliothèques LabVIEW, des DLL ou des
    Assembly.NET dans votre programme ?
    Si c’est le cas, l’erreur peut venir d’un de ces éléments (un
    sous VI que vous utilisez peut par exemple avoir besoin d’autres éléments
    contenus dans la bibliothèque et que vous n’avez pas forcement inclus dans
    votre projet).
    Ce problème peut aussi apparaitre si un de vos VI est
    corrompu (lors d’un problème au cours d’une sauvegarde par exemple).
    Le plus simple, pour vérifier si tous les Vis de votre
    application sont fonctionnels, est de faire une compilation de masse de votre
    projet – appelée MASS COMPILE.
    Pour ce faire, ouvrez un nouveau VI ou, directement sur la
    fenêtre de démarrage, allez dans le menu Outils>>Avancé>>Recompiler.
    Sélectionnez alors le projet que vous souhaitez voir
    recompiler puis cliquez sur recompiler.
    Vous pourrez alors vérifier si certains de vos Vis sont
    brisés. Si ce n’est pas le cas, vous devriez être en mesure de créer votre
    application.
    Pour plus d’informations sur la procédure de MASS COPMPILE :
    How Do I Mass Compile VIs,
    LLBs, or Folders in LabVIEW?
    Bien cordialement,
    Guillaume H.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Erreur lors la compilation

    bonjour
    est ce qu'il y a quelqu'un peuvent m'aider pour résoudre se problème qu'apparait lors de la compilation?
    votre solution est trés urgent
    j'ai besoin de votre réponse pour finaliser mon projet de fin d'étude
    merci pour votre attention
    ci joint le message d'erreur:
    Attachments:
    ERROR.JPG ‏104 KB

    Pour avoir une réponse rapide, tu devrais plutôt appeler le support technique (mais comme c'est NIDays aujourd'hui), il est possible que sa soit pas trop dispo...
    Rodéric L
    Certified LabVIEW Architect

  • Erreur sur la compilation FPGA

    Bonjour, j'ai une erreur au debut de la demande de compilation. Voir le fichier joint. Le compilateur fonction avec un autre projet. Je ne sais pas d'où viens l'erreur ?
    Help please.
    Ludo
    Attachments:
    message NI.zip ‏1192 KB

    Bonjour LUDO,
    L'erreur que tu reçois vient est causé par Xilinx (le FPGA que tu as, un "Xilinx Virtex-II, 1 Million Gate").
    Lorsque LabVIEW compile ton VI, il est convertit en VHD pour être compilé par Xilinx et être envoyé au FPGA.
    Malheureusement il semblerait que ta version de FPGA ne puisse gérer des lignes de VHD supérieures à 4150 caractères (tu en demandes 12826).
    Il pourrait être interessant d'updater la version de ton compilateur Xilinx en regardant ici
    Valentin
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Erreur -19050 lors de la compilation avec Deployment Utility/TestStand

    Bonjour à tous,
    Je souhaite créer un exécutable incluant des séquences TestStand avec des VIs Labview. Je suis tombé sur l'outil Deployment Utility qui a l'air de correspondre à ce que je souhaite faire.
    J'ai donc essayer de construire un installateur avec cet outils qui inclut mes séquences et mes Vis etc..
    Le problème arrive lors de la construction, une erreur apparait mais ne me donne pas plus de détails que ceci:
    "error -19050: The bitness of LabVIEW does not match the bitness of the deployment utility."
    J'ai essayé de chercher d'où vient le problème mais je suis au point mort la, je ne sais pas du tout où je dois regarder pour régler ce problème.
    J'utilise les versions 2014 de LabVIEW et TestStand. Mes séquences fonctionnent correctement.
    Merci de votre aide
    Mehdi

    Bonjour,
    Je pense que tu risques d'avoir queslques difficultés pour exécuter ton application de test en distribution. Pour la distribution, il te faut effectivement au moins une licence Run-Time de TestStand et je pense que tu veux te passer de la licence LabVIEW.
    Si j'ai bien compris, tu veux une distribution avec un installer de ton application TestStand. Tu as des séquences en TS2014 64 bits et tes codes modules LabVIEW sont en LabVIEW 32 bits pour le développement. J'imagine que ton adapter LabVIEW est configuré pour fonctionner avec LabVIEW en développement.
    Première étape, as tu essayé de passer ton adapter LabVIEW en run-time ? A mon avis,ca ne va pas fonctionner d'parès cette KB .
    Il faudrait que tes modules LabVIEW soient en LabVIEW 64 bits.
    Le Run-Time TestStand n'est pas l'éditeur de Séquence. TestStand est un serveur ActiveX, et si tu as créé une interface opérateur spécifique, tu n'as pas besoin d'avoir l'éditrru de séquence pour exécuter ton application. SI tu veux les éditer ou l'exécuter depuis la même interface que celle que tu as en développement, il faut installer au moins le séquence Editor qui est disponible dans les "Optional TestStand Features..." lorsque tu coches Install testStand Run-Time. Pour l'acitvation de la licence, au pire, lors du premier lancement de ton application, il proposera de l'activer. Pense a ajouter le run-Time LabVIEW dans ton installeur si tu veux que ca installe tout d'un seul coup.
    Mais je pense qu'avant de réussir tout ca, il faudrait vraiment vérifier l'exécution en Run-Time LabVIEW au niveau de l'adapter.
    Petite question de curiosité, pourquoi tu chsoisis d'utiliser TestStand 64 bits ?
    Cordialement
     

  • GPIB-USB-B 4882query.c erreur de compilation

    Bonjour,
    J'utilise un adaptateur GPIB-USB-B. Celui ci communique bien avec mon instrument (optical multimeter) lorque j'utilise MAX.
    Maintenant, je cherche à piloter mon instrument directement en langage c c++. J'ai trouvé un example nommé 4882query.c, mais à la compilation sous VS 2008, je suis confronté à un problème de linker :
    ------ Début de la génération : Projet : test, Configuration : Release Win32 ------
    Édition des liens en cours...
    4882query.obj : error LNK2001: symbole externe non résolu _Ibcnt@0
    4882query.obj : error LNK2001: symbole externe non résolu _Ibsta@0
    4882query.obj : error LNK2001: symbole externe non résolu _Iberr@0
    C:\test\Release\test.exe : fatal error LNK1120: 3 externes non résolus
    ------ Début de la génération : Projet : test, Configuration : Release Win32 ------Édition des liens en cours...4882query.obj : error LNK2001: symbole externe non résolu [email protected] : error LNK2001: symbole externe non résolu [email protected] : error LNK2001: symbole externe non résolu _Iberr@0C:\test\Release\test.exe : fatal error LNK1120: 3 externes non résolus
    J'ai ajouté le fichier gpib-32.obj dans les ressources du projet et ni4882.h dans les header. J'ai consulté des posts sur le forum NI, mais rien ne m'a permi de résoudre le problème.
    J'ai déjà passé du temps à chercher, donc si quelqu'un aurait une idée, ce serait super !
    Merci d'avance.
    Paul

    Bonjour Paul29o,
    Une petite question: avez-vous bien pensé à ajouter le fichier ni4882.obj dans le resource file de votre projet? Vous ne le mentionnez pas dans votre message, donc je voudrais m'en assurer.
    Merci
    Mathieu B
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Forum Aéronautique, Spatial et Défense. Avec la participation exceptionnelle de Bernard DUPRIEU, Res...

  • Erreur execution apres compilation d'un executable

    Bonjour,
    Suite à la compilation de mon projet avec application builder ( projet réalisé en labView 2010 ), j'obtient le message suivant :
    Error 1 occurred at Supprimer le premier élément d'une file d'attente dans NI_LVConfig.lvlib:Read Value Without Comment.vi->NI_LVConfig.lvlib:Read Key (U32).vi->SubVI_read_ini_channels.vi->SubVI__chn_cfg.vi->RMP_main_interface.vi
    Possible reason(s):
    LabVIEW:  Un paramètre d'entrée n'est pas valide. Par exemple, si l'entrée est un chemin, celui-ci contient peut-être un caractère qui n'est pas autorisé par le système d'exploitation, comme ? ou @.
    =========================
    NI-488:  La commande requiert un contrôleur GPIB comme contrôleur en charge.
    Mon application utilise des fichier de configuration INI et il les VI spécifié dans le message utilisent ces fichiers mais bien que je place les fichiers INI à coté de l'executable construit, j'obtient toujours le meme message.
    Merci d'avance pour votre aide.
    Cordialement

    Bonjour,
    Si votre exécutable fait référence à des fichiers, vous rencontrez peut être un problème de chemins relatifs.
    Il faudrait s'assurer que l'executable va bien chercher le fichier au bon endroit, pour cela, je vous invite à afficher temporairement sur un indicateur en face-avant le chemin du VI que l'exécutable cherche à ouvrir et à vérifier que ce chemin est correct.
    Voila un lien qui en dit plus sur le sujet:
    Why Does
    My Executable Not Work When Using the Current VI's Path Constant?
    http://digital.ni.com/public.nsf/allkb/FD7DE8BC8FFC256C862565F4006BE363?OpenDocument
    Si le problème persiste, je vous invite à m'envoyer un projet d'exemple permettant de mettre en valeur le problème. Plus celui-ci sera simple est compact, plus il sera facile d'isoler l'origine du problème.
    Cordialement,
    Thomas B. | CLAD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Inscrivez-vous gratuitement aux Journées Techniques : de l'acquisition de données au contrôle/com...

  • Dwm 5.9 Compilation issues

    Ok guys, I really need your help.
    I am currently with dwm 5.8.2 (everything's fine) and I downloaded 5.9 via ABS.
    I launched a makepkg under ~/dwm. And next, I tried to apply this patch called pertag2. diff: https://github.com/simongmzlj/dwmhacks/ … rtag2.diff
    It succeeded. Used:
    patch -p1 < pertag2.diff
    And I modified my config.h as jokerboy suggested me here: https://bbs.archlinux.org/viewtopic.php … 45#p960545
    I haven't others patches.
    But when I try to compile it, I got many errors messages.
    dwm build options:
    CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="5.9" -DXINERAMA
    LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
    CC = cc
    CC dwm.c
    In file included from dwm.c:293:0:
    config.h:31:16: erreur: ‘tile’ undeclared here (not in a function)
    dwm.c: In function ‘buttonpress’:
    dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:450:4: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
    /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:450:4: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
    dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c: In function ‘createmon’:
    dwm.c:686:29: erreur: request for member ‘mfact’ in something not a structure or union
    dwm.c:686:36: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
    dwm.c:686:61: erreur: request for member ‘mfact’ in something not a structure or union
    dwm.c:686:48: erreur: non concordance de type dans une expression conditionnelle
    dwm.c:686:16: erreur: incompatible types when assigning to type ‘double’ from type ‘const struct Layout *’
    dwm.c:686:3: attention : statement with no effect [-Wunused-value]
    dwm.c:687:31: erreur: request for member ‘nmaster’ in something not a structure or union
    dwm.c:687:40: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
    dwm.c:687:46: erreur: ‘nmaster’ undeclared (first use in this function)
    dwm.c:687:46: note: each undeclared identifier is reported only once for each function it appears in
    dwm.c:687:67: erreur: request for member ‘nmaster’ in something not a structure or union
    dwm.c:687:18: attention : assignment makes integer from pointer without a cast [enabled by default]
    dwm.c:688:26: erreur: request for member ‘layout’ in something not a structure or union
    dwm.c: In function ‘drawbar’:
    dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:767:3: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
    /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:767:3: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
    dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:769:19: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:769:3: attention : passing argument 1 of ‘drawtext’ from incompatible pointer type [enabled by default]
    dwm.c:190:13: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c: Hors de toute fonction :
    dwm.c:1550:1: attention : ‘setnmaster’ defined but not used [-Wunused-function]
    dwm.c:1539:1: attention : ‘incnmaster’ defined but not used [-Wunused-function]
    dwm.c:1691:1: attention : ‘ntile’ defined but not used [-Wunused-function]
    make: *** [dwm.o] Erreur 1
    Here my config.h:
    /* See LICENSE file for copyright and license details. */
    /* appearance */
    static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
    static const char normbordercolor[] = "#cccccc";
    static const char normbgcolor[] = "#cccccc";
    static const char normfgcolor[] = "#000000";
    static const char selbordercolor[] = "#0066ff";
    static const char selbgcolor[] = "#0066ff";
    static const char selfgcolor[] = "#ffffff";
    static const unsigned int borderpx = 1; /* border pixel of windows */
    static const unsigned int snap = 32; /* snap pixel */
    static const Bool showbar = True; /* False means no bar */
    static const Bool topbar = True; /* False means bottom bar */
    static const Rule rules[] = {
    /* class instance title tags mask isfloating monitor */
    { "Gimp", NULL, NULL, 0, True, -1 },
    { "Firefox", NULL, NULL, 1 << 8, False, -1 },
    /* layout(s) */
    static const int nmaster = 1; /* clients in the master area */
    static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
    static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
    static const Layout layouts[] = {
    /* symbol arrange function */
    { "[]=", tile }, /* first entry is default */
    { "><>", NULL }, /* no layout function means floating behavior */
    { "[M]", monocle },
    { "[N]", ntile },
    /* tagging */
    static const Tag tags[] = {
    /* name layout mfact nmaster */
    { "1", &layouts[0], -1, -1 },
    { "2", &layouts[1], -1, -1 },
    { "3", &layouts[2], -1, -1 },
    { "4", &layouts[3], 0.40, -1 },
    { "5", &layouts[0], -1, -1 },
    { "6", &layouts[0], -1, -1 },
    { "7", &layouts[0], -1, -1 },
    { "8", &layouts[0], -1, -1 },
    { "9", &layouts[0], -1, -1 },
    /* key definitions */
    #define MODKEY Mod1Mask
    #define TAGKEYS(KEY,TAG) \
    { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
    { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
    /* helper for spawning shell commands in the pre dwm-5.0 fashion */
    #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
    /* commands */
    static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    static const char *termcmd[] = { "uxterm", NULL };
    static Key keys[] = {
    /* modifier key function argument */
    { MODKEY, XK_p, spawn, {.v = dmenucmd } },
    { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
    { MODKEY, XK_b, togglebar, {0} },
    { MODKEY, XK_j, focusstack, {.i = +1 } },
    { MODKEY, XK_k, focusstack, {.i = -1 } },
    { MODKEY, XK_a, incnmaster, {.i = +1 } },
    { MODKEY, XK_z, incnmaster, {.i = -1 } },
    { MODKEY, XK_h, setmfact, {.f = -0.05} },
    { MODKEY, XK_l, setmfact, {.f = +0.05} },
    { MODKEY, XK_Return, zoom, {0} },
    { MODKEY, XK_Tab, view, {0} },
    { MODKEY|ShiftMask, XK_c, killclient, {0} },
    { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
    { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
    { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
    { MODKEY, XK_n, setlayout, {.v = &layouts[3]} },
    { MODKEY, XK_space, setlayout, {0} },
    { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
    { MODKEY, XK_0, view, {.ui = ~0 } },
    { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
    { MODKEY, XK_comma, focusmon, {.i = -1 } },
    { MODKEY, XK_period, focusmon, {.i = +1 } },
    { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
    { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
    TAGKEYS( XK_1, 0)
    TAGKEYS( XK_2, 1)
    TAGKEYS( XK_3, 2)
    TAGKEYS( XK_4, 3)
    TAGKEYS( XK_5, 4)
    TAGKEYS( XK_6, 5)
    TAGKEYS( XK_7, 6)
    TAGKEYS( XK_8, 7)
    TAGKEYS( XK_9, 8)
    { MODKEY|ShiftMask, XK_q, quit, {0} },
    /* button definitions */
    /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
    static Button buttons[] = {
    /* click event mask button function argument */
    { ClkLtSymbol, 0, Button1, setlayout, {0} },
    { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
    { ClkWinTitle, 0, Button2, zoom, {0} },
    { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
    { ClkClientWin, MODKEY, Button1, movemouse, {0} },
    { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
    { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
    { ClkTagBar, 0, Button1, view, {0} },
    { ClkTagBar, 0, Button3, toggleview, {0} },
    { ClkTagBar, MODKEY, Button1, tag, {0} },
    { ClkTagBar, MODKEY, Button3, toggletag, {0} },
    dwm.c
    /* See LICENSE file for copyright and license details.
    * dynamic window manager is designed like any other X client as well. It is
    * driven through handling X events. In contrast to other X clients, a window
    * manager selects for SubstructureRedirectMask on the root window, to receive
    * events about window (dis-)appearance. Only one X connection at a time is
    * allowed to select for this event mask.
    * The event handlers of dwm are organized in an array which is accessed
    * whenever a new event has been fetched. This allows event dispatching
    * in O(1) time.
    * Each child of the root window is called a client, except windows which have
    * set the override_redirect flag. Clients are organized in a linked client
    * list on each monitor, the focus history is remembered through a stack list
    * on each monitor. Each client contains a bit array to indicate the tags of a
    * client.
    * Keys and tagging rules are organized as arrays and defined in config.h.
    * To understand everything else, start reading main().
    #include <errno.h>
    #include <locale.h>
    #include <stdarg.h>
    #include <signal.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <X11/cursorfont.h>
    #include <X11/keysym.h>
    #include <X11/Xatom.h>
    #include <X11/Xlib.h>
    #include <X11/Xproto.h>
    #include <X11/Xutil.h>
    #ifdef XINERAMA
    #include <X11/extensions/Xinerama.h>
    #endif /* XINERAMA */
    /* macros */
    #define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
    #define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
    #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH))
    #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
    #define LENGTH(X) (sizeof X / sizeof X[0])
    #define MAX(A, B) ((A) > (B) ? (A) : (B))
    #define MIN(A, B) ((A) < (B) ? (A) : (B))
    #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
    #define WIDTH(X) ((X)->w + 2 * (X)->bw)
    #define HEIGHT(X) ((X)->h + 2 * (X)->bw)
    #define TAGMASK ((1 << LENGTH(tags)) - 1)
    #define TEXTW(X) (textnw(X, strlen(X)) + dc.font.height)
    /* enums */
    enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
    enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
    enum { NetSupported, NetWMName, NetWMState,
    NetWMFullscreen, NetActiveWindow, NetLast }; /* EWMH atoms */
    enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
    enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
    ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
    typedef union {
    int i;
    unsigned int ui;
    float f;
    const void *v;
    } Arg;
    typedef struct {
    unsigned int click;
    unsigned int mask;
    unsigned int button;
    void (*func)(const Arg *arg);
    const Arg arg;
    } Button;
    typedef struct Monitor Monitor;
    typedef struct Client Client;
    struct Client {
    char name[256];
    float mina, maxa;
    int x, y, w, h;
    int oldx, oldy, oldw, oldh;
    int basew, baseh, incw, inch, maxw, maxh, minw, minh;
    int bw, oldbw;
    unsigned int tags;
    Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
    Client *next;
    Client *snext;
    Monitor *mon;
    Window win;
    typedef struct {
    int x, y, w, h;
    unsigned long norm[ColLast];
    unsigned long sel[ColLast];
    Drawable drawable;
    GC gc;
    struct {
    int ascent;
    int descent;
    int height;
    XFontSet set;
    XFontStruct *xfont;
    } font;
    } DC; /* draw context */
    typedef struct {
    unsigned int mod;
    KeySym keysym;
    void (*func)(const Arg *);
    const Arg arg;
    } Key;
    typedef struct {
    const char *symbol;
    void (*arrange)(Monitor *);
    } Layout;
    struct Monitor {
    char ltsymbol[16];
    int num;
    int by; /* bar geometry */
    int mx, my, mw, mh; /* screen size */
    int wx, wy, ww, wh; /* window area */
    unsigned int seltags;
    unsigned int sellt;
    unsigned int tagset[2];
    Bool showbar;
    Bool topbar;
    Client *clients;
    Client *sel;
    Client *stack;
    Monitor *next;
    Window barwin;
    const Layout *lt[2];
    int curtag;
    int prevtag;
    const Layout **lts;
    double *mfacts;
    int *nmasters;
    typedef struct {
    const char *name;
    const Layout *layout;
    float mfact;
    int nmaster;
    } Tag;
    typedef struct {
    const char *class;
    const char *instance;
    const char *title;
    unsigned int tags;
    Bool isfloating;
    int monitor;
    } Rule;
    /* function declarations */
    static void applyrules(Client *c);
    static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact);
    static void arrange(Monitor *m);
    static void arrangemon(Monitor *m);
    static void attach(Client *c);
    static void attachstack(Client *c);
    static void buttonpress(XEvent *e);
    static void checkotherwm(void);
    static void cleanup(void);
    static void cleanupmon(Monitor *mon);
    static void clearurgent(Client *c);
    static void clientmessage(XEvent *e);
    static void configure(Client *c);
    static void configurenotify(XEvent *e);
    static void configurerequest(XEvent *e);
    static Monitor *createmon(void);
    static void destroynotify(XEvent *e);
    static void detach(Client *c);
    static void detachstack(Client *c);
    static void die(const char *errstr, ...);
    static Monitor *dirtomon(int dir);
    static void drawbar(Monitor *m);
    static void drawbars(void);
    static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
    static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
    static void enternotify(XEvent *e);
    static void expose(XEvent *e);
    static void focus(Client *c);
    static void focusin(XEvent *e);
    static void focusmon(const Arg *arg);
    static void focusstack(const Arg *arg);
    static unsigned long getcolor(const char *colstr);
    static Bool getrootptr(int *x, int *y);
    static long getstate(Window w);
    static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
    static void grabbuttons(Client *c, Bool focused);
    static void grabkeys(void);
    static void initfont(const char *fontstr);
    static void keypress(XEvent *e);
    static void killclient(const Arg *arg);
    static void manage(Window w, XWindowAttributes *wa);
    static void mappingnotify(XEvent *e);
    static void maprequest(XEvent *e);
    static void monocle(Monitor *m);
    static void movemouse(const Arg *arg);
    static Client *nexttiled(Client *c);
    static void pop(Client *);
    static void propertynotify(XEvent *e);
    static Monitor *ptrtomon(int x, int y);
    static void quit(const Arg *arg);
    static void resize(Client *c, int x, int y, int w, int h, Bool interact);
    static void resizeclient(Client *c, int x, int y, int w, int h);
    static void resizemouse(const Arg *arg);
    static void restack(Monitor *m);
    static void run(void);
    static void scan(void);
    static Bool sendevent(Client *c, Atom proto);
    static void sendmon(Client *c, Monitor *m);
    static void setclientstate(Client *c, long state);
    static void setfocus(Client *c);
    static void setlayout(const Arg *arg);
    static void setmfact(const Arg *arg);
    static void setnmaster(const Arg *arg);
    static void incnmaster(const Arg *arg);
    static void setup(void);
    static void showhide(Client *c);
    static void sigchld(int unused);
    static void spawn(const Arg *arg);
    static void tag(const Arg *arg);
    static void tagmon(const Arg *arg);
    static int textnw(const char *text, unsigned int len);
    static void ntile(Monitor *);
    static void togglebar(const Arg *arg);
    static void togglefloating(const Arg *arg);
    static void toggletag(const Arg *arg);
    static void toggleview(const Arg *arg);
    static void unfocus(Client *c, Bool setfocus);
    static void unmanage(Client *c, Bool destroyed);
    static void unmapnotify(XEvent *e);
    static Bool updategeom(void);
    static void updatebarpos(Monitor *m);
    static void updatebars(void);
    static void updatenumlockmask(void);
    static void updatesizehints(Client *c);
    static void updatestatus(void);
    static void updatetitle(Client *c);
    static void updatewmhints(Client *c);
    static void view(const Arg *arg);
    static Client *wintoclient(Window w);
    static Monitor *wintomon(Window w);
    static int xerror(Display *dpy, XErrorEvent *ee);
    static int xerrordummy(Display *dpy, XErrorEvent *ee);
    static int xerrorstart(Display *dpy, XErrorEvent *ee);
    static void zoom(const Arg *arg);
    /* variables */
    static const char broken[] = "broken";
    static char stext[256];
    static int screen;
    static int sw, sh; /* X display screen geometry width, height */
    static int bh, blw = 0; /* bar geometry */
    static int (*xerrorxlib)(Display *, XErrorEvent *);
    static unsigned int numlockmask = 0;
    static void (*handler[LASTEvent]) (XEvent *) = {
    [ButtonPress] = buttonpress,
    [ClientMessage] = clientmessage,
    [ConfigureRequest] = configurerequest,
    [ConfigureNotify] = configurenotify,
    [DestroyNotify] = destroynotify,
    [EnterNotify] = enternotify,
    [Expose] = expose,
    [FocusIn] = focusin,
    [KeyPress] = keypress,
    [MappingNotify] = mappingnotify,
    [MapRequest] = maprequest,
    [PropertyNotify] = propertynotify,
    [UnmapNotify] = unmapnotify
    static Atom wmatom[WMLast], netatom[NetLast];
    static Bool running = True;
    static Cursor cursor[CurLast];
    static Display *dpy;
    static DC dc;
    static Monitor *mons = NULL, *selmon = NULL;
    static Window root;
    /* configuration, allows nested code to access above variables */
    #include "config.h"
    /* compile-time check if all tags fit into an unsigned int bit array. */
    struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
    /* function implementations */
    void
    applyrules(Client *c) {
    const char *class, *instance;
    unsigned int i;
    const Rule *r;
    Monitor *m;
    XClassHint ch = { 0 };
    /* rule matching */
    c->isfloating = c->tags = 0;
    if(XGetClassHint(dpy, c->win, &ch)) {
    class = ch.res_class ? ch.res_class : broken;
    instance = ch.res_name ? ch.res_name : broken;
    for(i = 0; i < LENGTH(rules); i++) {
    r = &rules[i];
    if((!r->title || strstr(c->name, r->title))
    && (!r->class || strstr(class, r->class))
    && (!r->instance || strstr(instance, r->instance)))
    c->isfloating = r->isfloating;
    c->tags |= r->tags;
    for(m = mons; m && m->num != r->monitor; m = m->next);
    if(m)
    c->mon = m;
    if(ch.res_class)
    XFree(ch.res_class);
    if(ch.res_name)
    XFree(ch.res_name);
    c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
    Bool
    applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
    Bool baseismin;
    Monitor *m = c->mon;
    /* set minimum possible */
    *w = MAX(1, *w);
    *h = MAX(1, *h);
    if(interact) {
    if(*x > sw)
    *x = sw - WIDTH(c);
    if(*y > sh)
    *y = sh - HEIGHT(c);
    if(*x + *w + 2 * c->bw < 0)
    *x = 0;
    if(*y + *h + 2 * c->bw < 0)
    *y = 0;
    else {
    if(*x > m->mx + m->mw)
    *x = m->mx + m->mw - WIDTH(c);
    if(*y > m->my + m->mh)
    *y = m->my + m->mh - HEIGHT(c);
    if(*x + *w + 2 * c->bw < m->mx)
    *x = m->mx;
    if(*y + *h + 2 * c->bw < m->my)
    *y = m->my;
    if(*h < bh)
    *h = bh;
    if(*w < bh)
    *w = bh;
    if(resizehints || c->isfloating) {
    /* see last two sentences in ICCCM 4.1.2.3 */
    baseismin = c->basew == c->minw && c->baseh == c->minh;
    if(!baseismin) { /* temporarily remove base dimensions */
    *w -= c->basew;
    *h -= c->baseh;
    /* adjust for aspect limits */
    if(c->mina > 0 && c->maxa > 0) {
    if(c->maxa < (float)*w / *h)
    *w = *h * c->maxa + 0.5;
    else if(c->mina < (float)*h / *w)
    *h = *w * c->mina + 0.5;
    if(baseismin) { /* increment calculation requires this */
    *w -= c->basew;
    *h -= c->baseh;
    /* adjust for increment value */
    if(c->incw)
    *w -= *w % c->incw;
    if(c->inch)
    *h -= *h % c->inch;
    /* restore base dimensions */
    *w = MAX(*w + c->basew, c->minw);
    *h = MAX(*h + c->baseh, c->minh);
    if(c->maxw)
    *w = MIN(*w, c->maxw);
    if(c->maxh)
    *h = MIN(*h, c->maxh);
    return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
    void
    arrange(Monitor *m) {
    if(m)
    showhide(m->stack);
    else for(m = mons; m; m = m->next)
    showhide(m->stack);
    focus(NULL);
    if(m)
    arrangemon(m);
    else for(m = mons; m; m = m->next)
    arrangemon(m);
    void
    arrangemon(Monitor *m) {
    strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
    if(m->lt[m->sellt]->arrange)
    m->lt[m->sellt]->arrange(m);
    restack(m);
    void
    attach(Client *c) {
    c->next = c->mon->clients;
    c->mon->clients = c;
    void
    attachstack(Client *c) {
    c->snext = c->mon->stack;
    c->mon->stack = c;
    void
    buttonpress(XEvent *e) {
    unsigned int i, x, click;
    Arg arg = {0};
    Client *c;
    Monitor *m;
    XButtonPressedEvent *ev = &e->xbutton;
    click = ClkRootWin;
    /* focus monitor if necessary */
    if((m = wintomon(ev->window)) && m != selmon) {
    unfocus(selmon->sel, True);
    selmon = m;
    focus(NULL);
    if(ev->window == selmon->barwin) {
    i = x = 0;
    do {
    x += TEXTW(tags[i].name);
    } while(ev->x >= x && ++i < LENGTH(tags));
    if(i < LENGTH(tags)) {
    click = ClkTagBar;
    arg.ui = 1 << i;
    else if(ev->x < x + blw)
    click = ClkLtSymbol;
    else if(ev->x > selmon->ww - TEXTW(stext))
    click = ClkStatusText;
    else
    click = ClkWinTitle;
    else if((c = wintoclient(ev->window))) {
    focus(c);
    click = ClkClientWin;
    for(i = 0; i < LENGTH(buttons); i++)
    if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
    && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
    buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
    void
    checkotherwm(void) {
    xerrorxlib = XSetErrorHandler(xerrorstart);
    /* this causes an error if some other window manager is running */
    XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XSync(dpy, False);
    void
    cleanup(void) {
    Arg a = {.ui = ~0};
    Layout foo = { "", NULL };
    Monitor *m;
    view(&a);
    selmon->lt[selmon->sellt] = &foo;
    for(m = mons; m; m = m->next)
    while(m->stack)
    unmanage(m->stack, False);
    if(dc.font.set)
    XFreeFontSet(dpy, dc.font.set);
    else
    XFreeFont(dpy, dc.font.xfont);
    XUngrabKey(dpy, AnyKey, AnyModifier, root);
    XFreePixmap(dpy, dc.drawable);
    XFreeGC(dpy, dc.gc);
    XFreeCursor(dpy, cursor[CurNormal]);
    XFreeCursor(dpy, cursor[CurResize]);
    XFreeCursor(dpy, cursor[CurMove]);
    while(mons)
    cleanupmon(mons);
    XSync(dpy, False);
    XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
    void
    cleanupmon(Monitor *mon) {
    Monitor *m;
    if(mon == mons)
    mons = mons->next;
    else {
    for(m = mons; m && m->next != mon; m = m->next);
    m->next = mon->next;
    XUnmapWindow(dpy, mon->barwin);
    XDestroyWindow(dpy, mon->barwin);
    free(mon->mfacts);
    free(mon->nmasters);
    free(mon->lts);
    free(mon);
    void
    clearurgent(Client *c) {
    XWMHints *wmh;
    c->isurgent = False;
    if(!(wmh = XGetWMHints(dpy, c->win)))
    return;
    wmh->flags &= ~XUrgencyHint;
    XSetWMHints(dpy, c->win, wmh);
    XFree(wmh);
    void
    clientmessage(XEvent *e) {
    XClientMessageEvent *cme = &e->xclient;
    Client *c = wintoclient(cme->window);
    if(!c)
    return;
    if(cme->message_type == netatom[NetWMState] && cme->data.l[1] == netatom[NetWMFullscreen]) {
    if(cme->data.l[0] && !c->isfullscreen) {
    XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
    PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
    c->isfullscreen = True;
    c->oldstate = c->isfloating;
    c->oldbw = c->bw;
    c->bw = 0;
    c->isfloating = True;
    resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
    XRaiseWindow(dpy, c->win);
    else {
    XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
    PropModeReplace, (unsigned char*)0, 0);
    c->isfullscreen = False;
    c->isfloating = c->oldstate;
    c->bw = c->oldbw;
    c->x = c->oldx;
    c->y = c->oldy;
    c->w = c->oldw;
    c->h = c->oldh;
    resizeclient(c, c->x, c->y, c->w, c->h);
    arrange(c->mon);
    else if(cme->message_type == netatom[NetActiveWindow]) {
    if(!ISVISIBLE(c)) {
    c->mon->seltags ^= 1;
    c->mon->tagset[c->mon->seltags] = c->tags;
    pop(c);
    void
    configure(Client *c) {
    XConfigureEvent ce;
    ce.type = ConfigureNotify;
    ce.display = dpy;
    ce.event = c->win;
    ce.window = c->win;
    ce.x = c->x;
    ce.y = c->y;
    ce.width = c->w;
    ce.height = c->h;
    ce.border_width = c->bw;
    ce.above = None;
    ce.override_redirect = False;
    XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
    void
    configurenotify(XEvent *e) {
    Monitor *m;
    XConfigureEvent *ev = &e->xconfigure;
    Bool dirty;
    if(ev->window == root) {
    dirty = (sw != ev->width);
    sw = ev->width;
    sh = ev->height;
    if(updategeom() || dirty) {
    if(dc.drawable != 0)
    XFreePixmap(dpy, dc.drawable);
    dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
    updatebars();
    for(m = mons; m; m = m->next)
    XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
    arrange(NULL);
    void
    configurerequest(XEvent *e) {
    Client *c;
    Monitor *m;
    XConfigureRequestEvent *ev = &e->xconfigurerequest;
    XWindowChanges wc;
    if((c = wintoclient(ev->window))) {
    if(ev->value_mask & CWBorderWidth)
    c->bw = ev->border_width;
    else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) {
    m = c->mon;
    if(ev->value_mask & CWX)
    c->x = m->mx + ev->x;
    if(ev->value_mask & CWY)
    c->y = m->my + ev->y;
    if(ev->value_mask & CWWidth)
    c->w = ev->width;
    if(ev->value_mask & CWHeight)
    c->h = ev->height;
    if((c->x + c->w) > m->mx + m->mw && c->isfloating)
    c->x = m->mx + (m->mw / 2 - c->w / 2); /* center in x direction */
    if((c->y + c->h) > m->my + m->mh && c->isfloating)
    c->y = m->my + (m->mh / 2 - c->h / 2); /* center in y direction */
    if((ev->value_mask & (CWX|CWY)) && !(ev->value_mask & (CWWidth|CWHeight)))
    configure(c);
    if(ISVISIBLE(c))
    XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
    else
    configure(c);
    else {
    wc.x = ev->x;
    wc.y = ev->y;
    wc.width = ev->width;
    wc.height = ev->height;
    wc.border_width = ev->border_width;
    wc.sibling = ev->above;
    wc.stack_mode = ev->detail;
    XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
    XSync(dpy, False);
    /* TODO Check how many times createmon is called */
    Monitor *
    createmon(void) {
    Monitor *m;
    int i, numtags = LENGTH(tags) + 1;
    if(!(m = (Monitor *)calloc(1, sizeof(Monitor))))
    die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
    if(!(m->mfacts = calloc(sizeof(double), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(double) * numtags);
    if(!(m->nmasters = calloc(sizeof(int), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(int) * numtags);
    if(!(m->lts = calloc(sizeof(Layout *), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(Layout *) * numtags);
    m->tagset[0] = m->tagset[1] = 1;
    m->showbar = showbar;
    m->topbar = topbar;
    m->curtag = m->prevtag = 1;
    for(i = 1; i < numtags; i++) {
    m->mfacts[i] = tags[i - 1].mfact < 0 ? mfact : tags[i - 1].mfact;
    m->nmasters[i] = tags[i - 1].nmaster < 0 ? nmaster : tags[i - 1].nmaster;
    m->lts[i] = tags[i - 1].layout;
    m->lt[0] = m->lts[m->curtag];
    m->lt[1] = &layouts[1 % LENGTH(layouts)];
    strncpy(m->ltsymbol, m->lt[0]->symbol, sizeof m->ltsymbol);
    return m;
    void
    destroynotify(XEvent *e) {
    Client *c;
    XDestroyWindowEvent *ev = &e->xdestroywindow;
    if((c = wintoclient(ev->window)))
    unmanage(c, True);
    void
    detach(Client *c) {
    Client **tc;
    for(tc = &c->mon->clients; *tc && *tc != c; tc = &(*tc)->next);
    *tc = c->next;
    void
    detachstack(Client *c) {
    Client **tc, *t;
    for(tc = &c->mon->stack; *tc && *tc != c; tc = &(*tc)->snext);
    *tc = c->snext;
    if(c == c->mon->sel) {
    for(t = c->mon->stack; t && !ISVISIBLE(t); t = t->snext);
    c->mon->sel = t;
    void
    die(const char *errstr, ...) {
    va_list ap;
    va_start(ap, errstr);
    vfprintf(stderr, errstr, ap);
    va_end(ap);
    exit(EXIT_FAILURE);
    Monitor *
    dirtomon(int dir) {
    Monitor *m = NULL;
    if(dir > 0) {
    if(!(m = selmon->next))
    m = mons;
    else {
    if(selmon == mons)
    for(m = mons; m->next; m = m->next);
    else
    for(m = mons; m->next != selmon; m = m->next);
    return m;
    void
    drawbar(Monitor *m) {
    int x;
    unsigned int i, occ = 0, urg = 0;
    unsigned long *col;
    Client *c;
    for(c = m->clients; c; c = c->next) {
    occ |= c->tags;
    if(c->isurgent)
    urg |= c->tags;
    dc.x = 0;
    for(i = 0; i < LENGTH(tags); i++) {
    dc.w = TEXTW(tags[i].name);
    col = m->tagset[m->seltags] & 1 << i ? dc.sel : dc.norm;
    drawtext(tags[i].name, col, urg & 1 << i);
    drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
    occ & 1 << i, urg & 1 << i, col);
    dc.x += dc.w;
    dc.w = blw = TEXTW(m->ltsymbol);
    drawtext(m->ltsymbol, dc.norm, False);
    dc.x += dc.w;
    x = dc.x;
    if(m == selmon) { /* status is only drawn on selected monitor */
    dc.w = TEXTW(stext);
    dc.x = m->ww - dc.w;
    if(dc.x < x) {
    dc.x = x;
    dc.w = m->ww - x;
    drawtext(stext, dc.norm, False);
    else
    dc.x = m->ww;
    if((dc.w = dc.x - x) > bh) {
    dc.x = x;
    if(m->sel) {
    col = m == selmon ? dc.sel : dc.norm;
    drawtext(m->sel->name, col, False);
    drawsquare(m->sel->isfixed, m->sel->isfloating, False, col);
    else
    drawtext(NULL, dc.norm, False);
    XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
    XSync(dpy, False);
    void
    drawbars(void) {
    Monitor *m;
    for(m = mons; m; m = m->next)
    drawbar(m);
    void
    drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
    int x;
    XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
    x = (dc.font.ascent + dc.font.descent + 2) / 4;
    if(filled)
    XFillRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x+1, x+1);
    else if(empty)
    XDrawRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x, x);
    void
    drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
    char buf[256];
    int i, x, y, h, len, olen;
    XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
    XFillRectangle(dpy, dc.drawable, dc.gc, dc.x, dc.y, dc.w, dc.h);
    if(!text)
    return;
    olen = strlen(text);
    h = dc.font.ascent + dc.font.descent;
    y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
    x = dc.x + (h / 2);
    /* shorten text if necessary */
    for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
    if(!len)
    return;
    memcpy(buf, text, len);
    if(len < olen)
    for(i = len; i && i > len - 3; buf[--i] = '.');
    XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
    if(dc.font.set)
    XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
    else
    XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
    void
    enternotify(XEvent *e) {
    Client *c;
    Monitor *m;
    XCrossingEvent *ev = &e->xcrossing;
    if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
    return;
    c = wintoclient(ev->window);
    m = c ? c->mon : wintomon(ev->window);
    if(m != selmon) {
    unfocus(selmon->sel, True);
    selmon = m;
    else if(!c || c == selmon->sel)
    return;
    focus(c);
    void
    expose(XEvent *e) {
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;
    if(ev->count == 0 && (m = wintomon(ev->window)))
    drawbar(m);
    void
    focus(Client *c) {
    if(!c || !ISVISIBLE(c))
    for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
    /* was if(selmon->sel) */
    if(selmon->sel && selmon->sel != c)
    unfocus(selmon->sel, False);
    if(c) {
    if(c->mon != selmon)
    selmon = c->mon;
    if(c->isurgent)
    clearurgent(c);
    detachstack(c);
    attachstack(c);
    grabbuttons(c, True);
    XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
    setfocus(c);
    else
    XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
    selmon->sel = c;
    drawbars();
    void
    focusin(XEvent *e) { /* there are some broken focus acquiring clients */
    XFocusChangeEvent *ev = &e->xfocus;
    if(selmon->sel && ev->window != selmon->sel->win)
    setfocus(selmon->sel);
    void
    focusmon(const Arg *arg) {
    Monitor *m;
    if(!mons->next)
    return;
    if((m = dirtomon(arg->i)) == selmon)
    return;
    unfocus(selmon->sel, True);
    selmon = m;
    focus(NULL);
    void
    focusstack(const Arg *arg) {
    Client *c = NULL, *i;
    if(!selmon->sel)
    return;
    if(arg->i > 0) {
    for(c = selmon->sel->next; c && !ISVISIBLE(c); c = c->next);
    if(!c)
    for(c = selmon->clients; c && !ISVISIBLE(c); c = c->next);
    else {
    for(i = selmon->clients; i != selmon->sel; i = i->next)
    if(ISVISIBLE(i))
    c = i;
    if(!c)
    for(; i; i = i->next)
    if(ISVISIBLE(i))
    c = i;
    if(c) {
    focus(c);
    restack(selmon);
    unsigned long
    getcolor(const char *colstr) {
    Colormap cmap = DefaultColormap(dpy, screen);
    XColor color;
    if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color))
    die("error, cannot allocate color '%s'\n", colstr);
    return color.pixel;
    Bool
    getrootptr(int *x, int *y) {
    int di;
    unsigned int dui;
    Window dummy;
    return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui);
    long
    getstate(Window w) {
    int format;
    long result = -1;
    unsigned char *p = NULL;
    unsigned long n, extra;
    Atom real;
    if(XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
    &real, &format, &n, &extra, (unsigned char **)&p) != Success)
    return -1;
    if(n != 0)
    result = *p;
    XFree(p);
    return result;
    Bool
    gettextprop(Window w, Atom atom, char *text, unsigned int size) {
    char **list = NULL;
    int n;
    XTextProperty name;
    if(!text || size == 0)
    return False;
    text[0] = '\0';
    XGetTextProperty(dpy, w, &name, atom);
    if(!name.nitems)
    return False;
    if(name.encoding == XA_STRING)
    strncpy(text, (char *)name.value, size - 1);
    else {
    if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success && n > 0 && *list) {
    strncpy(text, *list, size - 1);
    XFreeStringList(list);
    text[size - 1] = '\0';
    XFree(name.value);
    return True;
    void
    grabbuttons(Client *c, Bool focused) {
    updatenumlockmask();
    unsigned int i, j;
    unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
    XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
    if(focused) {
    for(i = 0; i < LENGTH(buttons); i++)
    if(buttons[i].click == ClkClientWin)
    for(j = 0; j < LENGTH(modifiers); j++)
    XGrabButton(dpy, buttons[i].button,
    buttons[i].mask | modifiers[j],
    c->win, False, BUTTONMASK,
    GrabModeAsync, GrabModeSync, None, None);
    else
    XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
    BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
    void
    grabkeys(void) {
    updatenumlockmask();
    unsigned int i, j;
    unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
    KeyCode code;
    XUngrabKey(dpy, AnyKey, AnyModifier, root);
    for(i = 0; i < LENGTH(keys); i++) {
    if((code = XKeysymToKeycode(dpy, keys[i].keysym)))
    for(j = 0; j < LENGTH(modifiers); j++)
    XGrabKey(dpy, code, keys[i].mod | modifiers[j], root,
    True, GrabModeAsync, GrabModeAsync);
    void
    initfont(const char *fontstr) {
    char *def, **missing;
    int n;
    missing = NULL;
    dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
    if(missing) {
    while(n--)
    fprintf(stderr, "dwm: missing fontset: %s\n", missing[n]);
    XFreeStringList(missing);
    if(dc.font.set) {
    XFontStruct **xfonts;
    char **font_names;
    dc.font.ascent = dc.font.descent = 0;
    XExtentsOfFontSet(dc.font.set);
    n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
    while(n--) {
    dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
    dc.font.descent = MAX(dc.font.descent,(*xfonts)->descent);
    xfonts++;
    else {
    if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
    && !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
    die("error, cannot load font: '%s'\n", fontstr);
    dc.font.ascent = dc.font.xfont->ascent;
    dc.font.descent = dc.font.xfont->descent;
    dc.font.height = dc.font.ascent + dc.font.descent;
    #ifdef XINERAMA
    static Bool
    isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info) {
    while(n--)
    if(unique[n].x_org == info->x_org && unique[n].y_org == info->y_org
    && unique[n].width == info->width && unique[n].height == info->height)
    return False;
    return True;
    #endif /* XINERAMA */
    void
    keypress(XEvent *e) {
    unsigned int i;
    KeySym keysym;
    XKeyEvent *ev;
    ev = &e->xkey;
    keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
    for(i = 0; i < LENGTH(keys); i++)
    if(keysym == keys[i].keysym
    && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
    && keys[i].func)
    keys[i].func(&(keys[i].arg));
    void
    killclient(const Arg *arg) {
    if(!selmon->sel)
    return;
    if(!sendevent(selmon->sel, wmatom[WMDelete])) {
    XGrabServer(dpy);
    XSetErrorHandler(xerrordummy);
    XSetCloseDownMode(dpy, DestroyAll);
    XKillClient(dpy, selmon->sel->win);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XUngrabServer(dpy);
    void
    manage(Window w, XWindowAttributes *wa) {
    Client *c, *t = NULL;
    Window trans = None;
    XWindowChanges wc;
    if(!(c = calloc(1, sizeof(Client))))
    die("fatal: could not malloc() %u bytes\n", sizeof(Client));
    c->win = w;
    updatetitle(c);
    if(XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
    c->mon = t->mon;
    c->tags = t->tags;
    else {
    c->mon = selmon;
    applyrules(c);
    /* geometry */
    c->x = c->oldx = wa->x;
    c->y = c->oldy = wa->y;
    c->w = c->oldw = wa->width;
    c->h = c->oldh = wa->height;
    c->oldbw = wa->border_width;
    if(c->w == c->mon->mw && c->h == c->mon->mh) {
    c->isfloating = True;
    c->x = c->mon->mx;
    c->y = c->mon->my;
    c->bw = 0;
    else {
    if(c->x + WIDTH(c) > c->mon->mx + c->mon->mw)
    c->x = c->mon->mx + c->mon->mw - WIDTH(c);
    if(c->y + HEIGHT(c) > c->mon->my + c->mon->mh)
    c->y = c->mon->my + c->mon->mh - HEIGHT(c);
    c->x = MAX(c->x, c->mon->mx);
    /* only fix client y-offset, if the client center might cover the bar */
    c->y = MAX(c->y, ((c->mon->by == 0) && (c->x + (c->w / 2) >= c->mon->wx)
    && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
    c->bw = borderpx;
    wc.border_width = c->bw;
    XConfigureWindow(dpy, w, CWBorderWidth, &wc);
    XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
    configure(c); /* propagates border_width, if size doesn't change */
    updatesizehints(c);
    updatewmhints(c);
    XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
    grabbuttons(c, False);
    if(!c->isfloating)
    c->isfloating = c->oldstate = trans != None || c->isfixed;
    if(c->isfloating)
    XRaiseWindow(dpy, c->win);
    attach(c);
    attachstack(c);
    XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
    XMapWindow(dpy, c->win);
    setclientstate(c, NormalState);
    arrange(c->mon);
    void
    mappingnotify(XEvent *e) {
    XMappingEvent *ev = &e->xmapping;
    XRefreshKeyboardMapping(ev);
    if(ev->request == MappingKeyboard)
    grabkeys();
    void
    maprequest(XEvent *e) {
    static XWindowAttributes wa;
    XMapRequestEvent *ev = &e->xmaprequest;
    if(!XGetWindowAttributes(dpy, ev->window, &wa))
    return;
    if(wa.override_redirect)
    return;
    if(!wintoclient(ev->window))
    manage(ev->window, &wa);
    void
    monocle(Monitor *m) {
    unsigned int n = 0;
    Client *c;
    for(c = m->clients; c; c = c->next)
    if(ISVISIBLE(c))
    n++;
    if(n > 0) /* override layout symbol */
    snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
    for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
    resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
    void
    movemouse(const Arg *arg) {
    int x, y, ocx, ocy, nx, ny;
    Client *c;
    Monitor *m;
    XEvent ev;
    if(!(c = selmon->sel))
    return;
    restack(selmon);
    ocx = c->x;
    ocy = c->y;
    if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
    None, cursor[CurMove], CurrentTime) != GrabSuccess)
    return;
    if(!getrootptr(&x, &y))
    return;
    do {
    XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
    switch(ev.type) {
    case ConfigureRequest:
    case Expose:
    case MapRequest:
    handler[ev.type](&ev);
    break;
    case MotionNotify:
    nx = ocx + (ev.xmotion.x - x);
    ny = ocy + (ev.xmotion.y - y);
    if(nx >= selmon->wx && nx <= selmon->wx + selmon->ww
    && ny >= selmon->wy && ny <= selmon->wy + selmon->wh) {
    if(abs(selmon->wx - nx) < snap)
    nx = selmon->wx;
    else if(abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
    nx = selmon->wx + selmon->ww - WIDTH(c);
    if(abs(selmon->wy - ny) < snap)
    ny = selmon->wy;
    else if(abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
    ny = selmon->wy + selmon->wh - HEIGHT(c);
    if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
    && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
    togglefloating(NULL);
    if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
    resize(c, nx, ny, c->w, c->h, True);
    break;
    } while(ev.type != ButtonRelease);
    XUngrabPointer(dpy, CurrentTime);
    if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
    sendmon(c, m);
    selmon = m;
    focus(NULL);
    Client *
    nexttiled(Client *c) {
    for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
    return c;
    void
    pop(Client *c) {
    detach(c);
    attach(c);
    focus(c);
    arrange(c->mon);
    void
    propertynotify(XEvent *e) {
    Client *c;
    Window trans;
    XPropertyEvent *ev = &e->xproperty;
    if((ev->window == root) && (ev->atom == XA_WM_NAME))
    updatestatus();
    else if(ev->state == PropertyDelete)
    return; /* ignore */
    else if((c = wintoclient(ev->window))) {
    switch(ev->atom) {
    default: break;
    case XA_WM_TRANSIENT_FOR:
    if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
    (c->isfloating = (wintoclient(trans)) != NULL))
    arrange(c->mon);
    break;
    case XA_WM_NORMAL_HINTS:
    updatesizehints(c);
    break;
    case XA_WM_HINTS:
    updatewmhints(c);
    drawbars();
    break;
    if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
    updatetitle(c);
    if(c == c->mon->sel)
    drawbar(c->mon);
    Monitor *
    ptrtomon(int x, int y) {
    Monitor *m;
    for(m = mons; m; m = m->next)
    if(INRECT(x, y, m->wx, m->wy, m->ww, m->wh))
    return m;
    return selmon;
    void
    quit(const Arg *arg) {
    running = False;
    void
    resize(Client *c, int x, int y, int w, int h, Bool interact) {
    if(applysizehints(c, &x, &y, &w, &h, interact))
    resizeclient(c, x, y, w, h);
    void
    resizeclient(Client *c, int x, int y, int w, int h) {
    XWindowChanges wc;
    c->oldx = c->x; c->x = wc.x = x;
    c->oldy = c->y; c->y = wc.y = y;
    c->oldw = c->w; c->w = wc.width = w;
    c->oldh = c->h; c->h = wc.height = h;
    wc.border_width = c->bw;
    XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
    configure(c);
    XSync(dpy, False);
    void
    resizemouse(const Arg *arg) {
    int ocx, ocy;
    int nw, nh;
    Client *c;
    Monitor *m;
    XEvent ev;
    if(!(c = selmon->sel))
    return;
    restack(selmon);
    ocx = c->x;
    ocy = c->y;
    if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
    None, cursor[CurResize], CurrentTime) != GrabSuccess)
    return;
    XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
    do {
    XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
    switch(ev.type) {
    case ConfigureRequest:
    case Expose:
    case MapRequest:
    handler[ev.type](&ev);
    break;
    case MotionNotify:
    nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
    nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
    if(c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
    && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
    if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
    && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
    togglefloating(NULL);
    if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
    resize(c, c->x, c->y, nw, nh, True);
    break;
    } while(ev.type != ButtonRelease);
    XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
    XUngrabPointer(dpy, CurrentTime);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
    sendmon(c, m);
    selmon = m;
    focus(NULL);
    void
    restack(Monitor *m) {
    Client *c;
    XEvent ev;
    XWindowChanges wc;
    drawbar(m);
    if(!m->sel)
    return;
    if(m->sel->isfloating || !m->lt[m->sellt]->arrange)
    XRaiseWindow(dpy, m->sel->win);
    if(m->lt[m->sellt]->arrange) {
    wc.stack_mode = Below;
    wc.sibling = m->barwin;
    for(c = m->stack; c; c = c->snext)
    if(!c->isfloating && ISVISIBLE(c)) {
    XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc);
    wc.sibling = c->win;
    XSync(dpy, False);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    void
    run(void) {
    XEvent ev;
    /* main event loop */
    XSync(dpy, False);
    while(running && !XNextEvent(dpy, &ev)) {
    if(handler[ev.type])
    handler[ev.type](&ev); /* call handler */
    void
    scan(void) {
    unsigned int i, num;
    Window d1, d2, *wins = NULL;
    XWindowAttributes wa;
    if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
    for(i = 0; i < num; i++) {
    if(!XGetWindowAttributes(dpy, wins[i], &wa)
    || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
    continue;
    if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
    manage(wins[i], &wa);
    for(i = 0; i < num; i++) { /* now the transients */
    if(!XGetWindowAttributes(dpy, wins[i], &wa))
    continue;
    if(XGetTransientForHint(dpy, wins[i], &d1)
    && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
    manage(wins[i], &wa);
    if(wins)
    XFree(wins);
    void
    sendmon(Client *c, Monitor *m) {
    if(c->mon == m)
    return;
    unfocus(c, True);
    detach(c);
    detachstack(c);
    c->mon = m;
    c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
    attach(c);
    attachstack(c);
    focus(NULL);
    arrange(NULL);
    void
    setclientstate(Client *c, long state) {
    long data[] = { state, None };
    XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32,
    PropModeReplace, (unsigned char *)data, 2);
    Bool
    sendevent(Client *c, Atom proto) {
    int n;
    Atom *protocols;
    Bool exists = False;
    XEvent ev;
    if(XGetWMProtocols(dpy, c->win, &protocols, &n)) {
    while(!exists && n--)
    exists = protocols[n] == proto;
    XFree(protocols);
    if(exists) {
    ev.type = ClientMessage;
    ev.xclient.window = c->win;
    ev.xclient.message_type = wmatom[WMProtocols];
    ev.xclient.format = 32;
    ev.xclient.data.l[0] = proto;
    ev.xclient.data.l[1] = CurrentTime;
    XSendEvent(dpy, c->win, False, NoEventMask, &ev);
    return exists;
    void
    setfocus(Client *c) {
    if(!c->neverfocus)
    XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
    sendevent(c, wmatom[WMTakeFocus]);
    void
    setlayout(const Arg *arg) {
    if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
    selmon->sellt ^= 1;
    if(arg && arg->v)
    selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag] = (Layout *)arg->v;
    strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
    if(selmon->sel)
    arrange(selmon);
    else
    drawbar(selmon);
    static void
    incnmaster(const Arg *arg) {
    int i;
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    i = selmon->nmasters[selmon->curtag] + arg->i;
    selmon->nmasters[selmon->curtag] = i < 0 ? 0 : i;
    arrange(selmon);
    static void
    setnmaster(const Arg *arg) {
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    selmon->nmasters[selmon->curtag] = arg->i > 0 ? arg->i : 0;
    arrange(selmon);
    /* arg > 1.0 will set mfact absolutly */
    void
    setmfact(const Arg *arg) {
    float f;
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    f = arg->f < 1.0 ? arg->f + selmon->mfacts[selmon->curtag] : arg->f - 1.0;
    if(f < 0.1 || f > 0.9)
    return;
    selmon->mfacts[selmon->curtag] = f;
    arrange(selmon);
    void
    setup(void) {
    XSetWindowAttributes wa;
    /* clean up any zombies immediately */
    sigchld(0);
    /* init screen */
    screen = DefaultScreen(dpy);
    root = RootWindow(dpy, screen);
    initfont(font);
    sw = DisplayWidth(dpy, screen);
    sh = DisplayHeight(dpy, screen);
    bh = dc.h = dc.font.height + 2;
    updategeom();
    /* init atoms */
    wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
    wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
    wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
    wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False);
    netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
    netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
    netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
    netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
    netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
    /* init cursors */
    cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
    cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
    cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
    /* init appearance */
    dc.norm[ColBorder] = getcolor(normbordercolor);
    dc.norm[ColBG] = getcolor(normbgcolor);
    dc.norm[ColFG] = getcolor(normfgcolor);
    dc.sel[ColBorder] = getcolor(selbordercolor);
    dc.sel[ColBG] = getcolor(selbgcolor);
    dc.sel[ColFG] = getcolor(selfgcolor);
    dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
    dc.gc = XCreateGC(dpy, root, 0, NULL);
    XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
    if(!dc.font.set)
    XSetFont(dpy, dc.gc, dc.font.xfont->fid);
    /* init bars */
    updatebars();
    updatestatus();
    /* EWMH support per view */
    XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
    PropModeReplace, (unsigned char *) netatom, NetLast);
    /* select for events */
    wa.cursor = cursor[CurNormal];
    wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask
    |EnterWindowMask|LeaveWindowMask|StructureNotifyMask
    |PropertyChangeMask;
    XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
    XSelectInput(dpy, root, wa.event_mask);
    grabkeys();
    void
    showhide(Client *c) {
    if(!c)
    return;
    if(ISVISIBLE(c)) { /* show clients top down */
    XMoveWindow(dpy, c->win, c->x, c->y);
    if((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
    resize(c, c->x, c->y, c->w, c->h, False);
    showhide(c->snext);
    else { /* hide clients bottom up */
    showhide(c->snext);
    XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
    void
    sigchld(int unused) {
    if(signal(SIGCHLD, sigchld) == SIG_ERR)
    die("Can't install SIGCHLD handler");
    while(0 < waitpid(-1, NULL, WNOHANG));
    void
    spawn(const Arg *arg) {
    if(fork() == 0) {
    if(dpy)
    close(ConnectionNumber(dpy));
    setsid();
    execvp(((char **)arg->v)[0], (char **)arg->v);
    fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);
    perror(" failed");
    exit(EXIT_SUCCESS);
    void
    tag(const Arg *arg) {
    if(selmon->sel && arg->ui & TAGMASK) {
    selmon->sel->tags = arg->ui & TAGMASK;
    arrange(selmon);
    void
    tagmon(const Arg *arg) {
    if(!selmon->sel || !mons->next)
    return;
    sendmon(selmon->sel, dirtomon(arg->i));
    int
    textnw(const char *text, unsigned int len) {
    XRectangle r;
    if(dc.font.set) {
    XmbTextExtents(dc.font.set, text, len, NULL, &r);
    return r.width;
    return XTextWidth(dc.font.xfont, text, len);
    void
    ntile(Monitor *m) {
    int x, y, h, w, mw, nmax, nm;
    unsigned int i, n;
    Client *c;
    snprintf(m->ltsymbol, sizeof m->ltsymbol, "=%d]", m->nmasters[m->curtag]);
    for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
    c = nexttiled(m->clients);
    nmax = m->nmasters[m->curtag];
    nm = nmax == 1 ? 1 : MIN(n / 2, nmax);
    if(nm > n)
    nm = n;
    /* master */
    if(nm > 0) {
    mw = selmon->mfacts[selmon->curtag] * m->ww;
    h = m->wh / nm;
    if(h < bh)
    h = m->wh;
    y = m->wy;
    for(i = 0; i < nm; i++, c = nexttiled(c->next)) {
    resize(c, m->wx, y, (n == nm ? m->ww : mw) - 2 * c->bw,
    ((i + 1 == nm) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
    if(h != m->wh)
    y = c->y + HEIGHT(c);
    n -= nm;
    } else
    mw = 0;
    if(n == 0)
    return;
    /* tile stack */
    x = m->wx + mw;
    y = m->wy;
    w = m->ww - mw;
    h = m->wh / n;
    if(h < bh)
    h = m->wh;
    for(i = 0; c; c = nexttiled(c->next), i++) {
    resize(c, x, y, w - 2 * c->bw,
    ((i + 1 == n) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
    if(h != m->wh)
    y = c->y + HEIGHT(c);
    void
    togglebar(const Arg *arg) {
    selmon->showbar = !selmon->showbar;
    updatebarpos(selmon);
    XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh);
    arrange(selmon);
    void
    togglefloating(const Arg *arg) {
    if(!selmon->sel)
    return;
    selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
    if(selmon->sel->isfloating)
    resize(selmon->sel, selmon->sel->x, selmon->sel->y,
    selmon->sel->w, selmon->sel->h, False);
    arrange(selmon);
    void
    toggletag(const Arg *arg) {
    unsigned int newtags;
    unsigned int i;
    if(!selmon->sel)
    return;
    newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
    if(newtags) {
    selmon->sel->tags = newtags;
    if(newtags == ~0) {
    selmon->prevtag = selmon->curtag;
    selmon->curtag = 0;
    if(!(newtags & 1 << (selmon->curtag - 1))) {
    selmon->prevtag = selmon->curtag;
    for (i=0; !(newtags & 1 << i); i++);
    selmon->curtag = i + 1;
    selmon->sel->tags = newtags;
    selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag];
    arrange(selmon);
    void
    toggleview(const Arg *arg) {
    unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK);
    if(newtagset) {
    selmon->tagset[selmon->seltags] = newtagset;
    arrange(selmon);
    void
    unfocus(Client *c, Bool setfocus) {
    if(!c)
    return;
    grabbuttons(c, False);
    XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
    if(setfocus)
    XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
    void
    unmanage(Client *c, Bool destroyed) {
    Monitor *m = c->mon;
    XWindowChanges wc;
    /* The server grab construct avoids race conditions. */
    detach(c);
    detachstack(c);
    if(!destroyed) {
    wc.border_width = c->oldbw;
    XGrabServer(dpy);
    XSetErrorHandler(xerrordummy);
    XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
    XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
    setclientstate(c, WithdrawnState);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XUngrabServer(dpy);
    free(c);
    focus(NULL);
    arrange(m);
    void
    unmapnotify(XEvent *e) {
    Client *c;
    XUnmapEvent *ev = &e->xunmap;
    if((c = wintoclient(ev->window)))
    unmanage(c, False);
    void
    updatebars(void) {
    Monitor *m;
    XSetWindowAttributes wa = {
    .override_redirect = True,
    .background_pixmap = ParentRelative,
    .event_mask = ButtonPressMask|ExposureMask
    for(m = mons; m; m = m->next) {
    m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen),
    CopyFromParent, DefaultVisual(dpy, screen),
    CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);
    XDefineCursor(dpy, m->barwin, cursor[CurNormal]);
    XMapRaised(dpy, m->barwin);
    void
    updatebarpos(Monitor *m) {
    m->wy = m->my;
    m->wh = m->mh;
    if(m->showbar) {
    m->wh -= bh;
    m->by = m->topbar ? m->wy : m->wy + m->wh;
    m->wy = m->topbar ? m->wy + bh : m->wy;
    else
    m->by = -bh;
    Bool
    updategeom(void) {
    Bool dirty = False;
    #ifdef XINERAMA
    if(XineramaIsActive(dpy)) {
    int i, j, n, nn;
    Client *c;
    Monitor *m;
    XineramaScreenInfo *info = XineramaQueryScreens(dpy, &nn);
    XineramaScreenInfo *unique = NULL;
    for(n = 0, m = mons; m; m = m->next, n++);
    /* only consider unique geometries as separate screens */
    if(!(unique = (XineramaScreenInfo *)malloc(sizeof(XineramaScreenInfo) * nn)))
    die("fatal: could not malloc() %u bytes\n", sizeof(XineramaScreenInfo) * nn);
    for(i = 0, j = 0; i < nn; i++)
    if(isuniquegeom(unique, j, &info[i]))
    memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));
    XFree(info);
    nn = j;
    if(n <= nn) {
    for(i = 0; i < (nn - n); i++) { /* new monitors available */
    for(m = mons; m && m->next; m = m->next);
    if(m)
    m->next = createmon();
    else
    mons = createmon();
    for(i = 0, m = mons; i < nn && m; m = m->next, i++)
    if(i >= n
    || (unique[i].x_org != m->mx || unique[i].y_org != m->my
    || unique[i].width != m->mw || unique[i].height != m->mh))
    dirty = True;
    m->num = i;
    m->mx = m->wx = unique[i].x_org;
    m->my = m->wy = unique[i].y_org;
    m->mw = m->ww = unique[i].width;
    m->mh = m->wh = unique[i].height;
    updatebarpos(m);
    else { /* less monitors available nn < n */
    for(i = nn; i < n; i++) {
    for(m = mons; m && m->next; m = m->next);
    while(m->clients) {
    dirty = True;
    c = m->clients;
    m->clients = c->next;
    detachstack(c);
    c->mon = mons;
    attach(c);
    attachstack(c);
    if(m == selmon)
    selmon = mons;
    cleanupmon(m);
    free(unique);
    else
    #endif /* XINERAMA */
    /* default monitor setup */
    if(!mons)
    mons = createmon();
    if(mons->mw != sw || mons->mh != sh) {
    dirty = True;
    mons->mw = mons->ww = sw;
    mons->mh = mons->wh = sh;
    updatebarpos(mons);
    if(dirty) {
    selmon = mons;
    selmon = wintomon(root);
    return dirty;
    void
    updatenumlockmask(void) {
    unsigned int i, j;
    XModifierKeymap *modmap;
    numlockmask = 0;
    modmap = XGetModifierMapping(dpy);
    for(i = 0; i < 8; i++)
    for(j = 0; j < modmap->max_keypermod; j++)
    if(modmap->modifiermap[i * modmap->max_keypermod + j]
    == XKeysymToKeycode(dpy, XK_Num_Lock))
    numlockmask = (1 << i);
    XFreeModifiermap(modmap);
    void
    updatesizehints(Client *c) {
    long msize;
    XSizeHints size;
    if(!XGetWMNormalHints(dpy, c->win, &size, &msize))
    /* size is uninitialized, ensure that size.flags aren't used */
    size.flags = PSize;
    if(size.flags & PBaseSize) {
    c->basew = size.base_width;
    c->baseh = size.base_height;
    else if(size.flags & PMinSize) {
    c->basew = size.min_width;
    c->baseh = size.min_height;
    else
    c->basew = c->baseh = 0;
    if(size.flags & PResizeInc) {
    c->incw = size.width_inc;
    c->inch = size.height_inc;
    else
    c->incw = c->inch = 0;
    if(size.flags & PMaxSize) {
    c->maxw = size

    The diff you use rename tile() to ntile(), you should not have tile in your config.h. The rest of errors probably relate to what the diff has nerfed, or should be gone once you fix that tile.
    I think you should stay on 5.8.2 until all the patches have support for 5.9 if you can't patch on patch on your own.
    (edit) that github repo has issues, it might be good idea to create issue if that patch really have compatible issue with 5.9. That would benefit all other patch users.
    Last edited by livibetter (2011-09-12 14:55:00)

  • Erreur JSP with the online exemple simplest.jsp

    It's my first test java in IFS.
    I'm downloading the simplest exemple in this page :
    http://technet.oracle.com/products/ifs/htdocs/resources/dev/simpl
    est/simframe.htm
    I install all file like to explain.
    The type of document is good.
    I have load the xml file in IFS and it are the good attributs
    and name, all is good.
    Normaly when I open one of this type of file, the jsp page open
    with message "hello world" and the value of attribut.
    But when I select the file to open, I have this error message.
    Perhaps my simplest.class don't in the good repertory?
    in IFS => /custom_classes/simplest/simplest.class
    Erreur JSP :
    Demander URI :/ifs/jsp-bin/simplest/simplest.jsp
    Exception :
    oracle.jsp.provider.JspCompileException:
    Erreur de
    compilation :\ifsjsps\_ifs\_jsp_2d_bin\_simplest\_simplest.java
    Line #     Error     
    11     Class simplest.SimplestBean not found in import. import
    simplest.SimplestBean;      

    I have found my error :
    Just place simplest/simplest.class in
    /oracle/ora81/ifs1.1/custom_class/simplest/simplest.class
    out of the IFS but in your really drive.

  • [JSP compiler] How to change it

    Hi, I get an error when compiling a HUGE JSP page!!! Code is too large for try block!
    So, I just want to change the compiler ...
    I'm using the 10.1.3.1.0 and each time, I get that error:
    OracleJSP : oracle.jsp.provider.JspCompileException:
    I have try to use "javaccmd" param-init but it is deprecated (you can find it here: http://download-east.oracle.com/docs/cd/B32110_01/web.1013/b28951.pdf ).
    So I'm stuck, I get borring, nothing work... OC4J WON'T work!!! All others work.
    How can I change the JSP compiler please, it's the LAST THING I MUST DONE FOR SCHOOL!
    What must I use instead of "javaccmd" param-init ?
    Thanks very very very much...

    Here is the debug output... :
    OracleJSP : oracle.jsp.provider.JspCompileException:
    Erreurs de compilation :D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java
    [parsing started D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java]
    [parsing completed 641ms]
    [search path for source files: [C:\Java\jdk1.5.0_11\jre\lib\rt.jar, C:\Java\jdk1.5.0_11\jre\lib\jsse.jar, C:\Java\jdk1.5.0_11\jre\lib\jce.jar, C:\Java\jdk1.5.0_11\jre\lib\charsets.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\activation.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\clibwrapper_jiio.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\dnsns.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_codec.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_core.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_imageio.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-api.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-impl.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb1-impl.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-xjc.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jsr173_api.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\localedata.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\mlibwrapper_jai.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\sunjce_provider.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\sunpkcs11.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\which4j.jar, D:\oc4j_extended_101310\j2ee\home\oc4j-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-unsupported-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\activation.jar, D:\oc4j_extended_101310\j2ee\home\lib\mail.jar, D:\oc4j_extended_101310\j2ee\home\lib\persistence.jar, D:\oc4j_extended_101310\j2ee\home\lib\ejb30.jar, D:\oc4j_extended_101310\j2ee\home\lib\ejb.jar, D:\oc4j_extended_101310\j2ee\home\lib\javax77.jar, D:\oc4j_extended_101310\j2ee\home\lib\javax88.jar, D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar, D:\oc4j_extended_101310\j2ee\home\lib\jms.jar, D:\oc4j_extended_101310\j2ee\home\lib\jta.jar, D:\oc4j_extended_101310\j2ee\home\lib\jacc-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\connector.jar, D:\oc4j_extended_101310\j2ee\home\lib\jmx_remote_api.jar, D:\oc4j_extended_101310\j2ee\home\lib\jax-qname-namespace.jar, D:\oc4j_extended_101310\webservices\lib\jaxr-api.jar, D:\oc4j_extended_101310\webservices\lib\jaxrpc-api.jar, D:\oc4j_extended_101310\webservices\lib\saaj-api.jar, D:\oc4j_extended_101310\webservices\lib\jws-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-internal.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-oc4j.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-client.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-server.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-schemas.jar, D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j_orb.jar, D:\oc4j_extended_101310\j2ee\home\lib\iiop_support.jar, D:\oc4j_extended_101310\j2ee\home\lib\orbbase.jar, D:\oc4j_extended_101310\j2ee\home\iiop_gen_bin.jar, D:\oc4j_extended_101310\j2ee\home\lib\jmxcluster.jar, D:\oc4j_extended_101310\j2ee\home\jaccprovider.jar, D:\oc4j_extended_101310\j2ee\home\jacc-spi.jar, D:\oc4j_extended_101310\j2ee\home\jazncore.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\oraclepki.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\ojpse.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\ldapjclnt10.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\jssl-1_1.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\javax-ssl-1_1.jar, D:\oc4j_extended_101310\j2ee\home\..\..\lib\xmlparserv2.jar, D:\oc4j_extended_101310\j2ee\home\..\..\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\j2ee\home\..\..\lib\dms.jar, D:\oc4j_extended_101310\javavm\lib\jasper.zip, D:\oc4j_extended_101310\j2ee\home\lib\adminclient.jar, D:\oc4j_extended_101310\opmn\lib\optic.jar, D:\oc4j_extended_101310\j2ee\home\jazn.jar, D:\oc4j_extended_101310\jlib\ldapjclnt10.jar, D:\oc4j_extended_101310\jlib\jssl-1_1.jar, D:\oc4j_extended_101310\jlib\javax-ssl-1_1.jar, D:\oc4j_extended_101310\webservices\lib\wsserver.jar, D:\oc4j_extended_101310\webservices\lib\wsif.jar, D:\oc4j_extended_101310\webservices\lib\orawsmetadata.jar, D:\oc4j_extended_101310\webservices\lib\orajaxr.jar, D:\oc4j_extended_101310\webservices\lib\.\jaxr-api.jar, D:\oc4j_extended_101310\webservices\lib\.\orasaaj.jar, D:\oc4j_extended_101310\toplink\jlib\toplink-oc4j.jar, D:\oc4j_extended_101310\toplink\jlib\antlr.jar, D:\oc4j_extended_101310\diagnostics\lib\ojdl2.jar, D:\oc4j_extended_101310\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\xqs\lib\xqs-api.jar, D:\oc4j_extended_101310\xqs\lib\xds.jar, D:\oc4j_extended_101310\j2ee\home\lib\pcl.jar, D:\oc4j_extended_101310\webservices\lib\JMXSoapAdapterShared.jar, D:\oc4j_extended_101310\lib\dmsapp.jar, D:\oc4j_extended_101310\j2ee\home\applications\admin_ejb.jar, D:\oc4j_extended_101310\j2ee\home\lib\scheduler.jar, D:\oc4j_extended_101310\j2ee\home\connectors\datasources\datasources\datasources.jar, D:\oc4j_extended_101310\j2ee\home\connectors\OracleASjms\OracleASjms\gjra.jar, D:\oc4j_extended_101310\j2ee\home\applications\jmsrouter-ejb.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\design.model.ejb3.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.ejb3.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\enext.webtools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.corbatools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.framework.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.generic.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.idl.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.interfaces.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.mail.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.tools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.featureBridge.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.jaxb.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.generator.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.widget.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.tools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.wmt.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oracleDriver.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.ecw.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.feature.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.kernel.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.nis.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\ose.componentModel.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\wms.capabilities.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\catalog.ejb3.jar, D:\oc4j_extended_101310\lib\dms.jar, D:\oc4j_extended_101310\jdbc\lib\ojdbc14dms.jar, D:\oc4j_extended_101310\opmn\lib\ons.jar, D:\oc4j_extended_101310\jdbc\lib\ocrs12.jar, D:\oc4j_extended_101310\rdbms\jlib\aqapi.jar, D:\oc4j_extended_101310\j2ee\home\lib\ojms-provider.jar, D:\oc4j_extended_101310\jdbc\lib\orai18n.jar, D:\oc4j_extended_101310\lib\xmlparserv2.jar, D:\oc4j_extended_101310\lib\xml.jar, D:\oc4j_extended_101310\lib\xmlmesg.jar, D:\oc4j_extended_101310\lib\xsu12.jar, D:\oc4j_extended_101310\lib\xquery.jar, D:\oc4j_extended_101310\jlib\osdt_core.jar, D:\oc4j_extended_101310\jlib\osdt_cert.jar, D:\oc4j_extended_101310\jlib\osdt_xmlsec.jar, D:\oc4j_extended_101310\jlib\osdt_wss.jar, D:\oc4j_extended_101310\jlib\osdt_saml.jar, D:\oc4j_extended_101310\jlib\ojpse.jar, D:\oc4j_extended_101310\jlib\oraclepki.jar, D:\oc4j_extended_101310\toplink\jlib\toplink.jar, D:\oc4j_extended_101310\toplink\jlib\toplink-essentials.jar, D:\oc4j_extended_101310\webservices\lib\wsclient.jar, D:\oc4j_extended_101310\webservices\lib\orasaaj.jar, D:\oc4j_extended_101310\webservices\lib\xsdlib.jar, D:\oc4j_extended_101310\webservices\lib\relaxngDatatype.jar, D:\oc4j_extended_101310\webservices\lib\mdds.jar, D:\oc4j_extended_101310\javacache\lib\cache.jar, D:\oc4j_extended_101310\javacache\lib\..\..\lib\xmlparserv2.jar, D:\oc4j_extended_101310\javacache\lib\..\..\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\webservices\lib\soap.jar, D:\oc4j_extended_101310\sqlj\lib\runtime12.jar, D:\oc4j_extended_101310\sqlj\lib\translator.jar, D:\oc4j_extended_101310\webservices\lib\orawsdl.jar, D:\oc4j_extended_101310\j2ee\home\applib, D:\oc4j_extended_101310\j2ee\home\applib\jai_codec.jar, D:\oc4j_extended_101310\j2ee\home\applib\activation.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-awt-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-bridge.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-css.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-dom.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-ext.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-extension.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-gui-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-gvt.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-parser.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-script.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-svg-dom.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-svggen.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-swing.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-transcoder.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-xml.jar, D:\oc4j_extended_101310\j2ee\home\applib\Acme.jar, D:\oc4j_extended_101310\j2ee\home\applib\jai_core.jar, D:\oc4j_extended_101310\j2ee\home\applib\jai_imageio.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb1-impl.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-api.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-impl.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-xjc.jar, D:\oc4j_extended_101310\j2ee\home\applib\jsr173_api.jar, D:\oc4j_extended_101310\j2ee\home\applib\jdbcora10fixed.jar, D:\oc4j_extended_101310\j2ee\home\applib\JdbcOraWrapper.jar, D:\oc4j_extended_101310\j2ee\home\applib\mjdfotf.jar, D:\oc4j_extended_101310\j2ee\home\applib\pdf-transcoder.jar, D:\oc4j_extended_101310\j2ee\home\applib\sdoapifixed.jar, D:\oc4j_extended_101310\j2ee\home\jsp\lib\taglib, D:\oc4j_extended_101310\j2ee\home\jsp\lib\taglib\ojsputil.jar, D:\oc4j_extended_101310\lib\dsv2.jar, D:\oc4j_extended_101310\j2ee\home\lib\http_client.jar, D:\oc4j_extended_101310\j2ee\home\lib\jgroups-core.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\classes, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\aclibico-castrated.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-beanutils.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-collections.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-digester.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-fileupload.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-lang.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-logging.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-math-1.0.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-validator.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\design.apic2next.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\design.importPlugIn.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\designSource.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\ini4j-compat.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\ini4j.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jaas.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jakarta-oro.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\java_cup_10k.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jstl.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jta-spec1_0_1.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\mail.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\menu.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\relaxngDatatype.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\resolver.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\retroweaver-rt-1.2.1.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts-legacy.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\xmlsec.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\xsdlib.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Acme.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\antlr.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\sdoapifixed.jar]]
    [search path for class files: [C:\Java\jdk1.5.0_11\jre\lib\rt.jar, C:\Java\jdk1.5.0_11\jre\lib\jsse.jar, C:\Java\jdk1.5.0_11\jre\lib\jce.jar, C:\Java\jdk1.5.0_11\jre\lib\charsets.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\activation.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\clibwrapper_jiio.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\dnsns.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_codec.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_core.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jai_imageio.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-api.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-impl.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb-xjc.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jaxb1-impl.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\jsr173_api.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\localedata.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\mlibwrapper_jai.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\sunjce_provider.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\sunpkcs11.jar, C:\Java\jdk1.5.0_11\jre\lib\ext\which4j.jar, D:\oc4j_extended_101310\j2ee\home\oc4j-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-unsupported-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\activation.jar, D:\oc4j_extended_101310\j2ee\home\lib\mail.jar, D:\oc4j_extended_101310\j2ee\home\lib\persistence.jar, D:\oc4j_extended_101310\j2ee\home\lib\ejb30.jar, D:\oc4j_extended_101310\j2ee\home\lib\ejb.jar, D:\oc4j_extended_101310\j2ee\home\lib\javax77.jar, D:\oc4j_extended_101310\j2ee\home\lib\javax88.jar, D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar, D:\oc4j_extended_101310\j2ee\home\lib\jms.jar, D:\oc4j_extended_101310\j2ee\home\lib\jta.jar, D:\oc4j_extended_101310\j2ee\home\lib\jacc-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\connector.jar, D:\oc4j_extended_101310\j2ee\home\lib\jmx_remote_api.jar, D:\oc4j_extended_101310\j2ee\home\lib\jax-qname-namespace.jar, D:\oc4j_extended_101310\webservices\lib\jaxr-api.jar, D:\oc4j_extended_101310\webservices\lib\jaxrpc-api.jar, D:\oc4j_extended_101310\webservices\lib\saaj-api.jar, D:\oc4j_extended_101310\webservices\lib\jws-api.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-internal.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-oc4j.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-client.jar, D:\oc4j_extended_101310\j2ee\home\lib\oems-jms-server.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j-schemas.jar, D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar, D:\oc4j_extended_101310\j2ee\home\lib\oc4j_orb.jar, D:\oc4j_extended_101310\j2ee\home\lib\iiop_support.jar, D:\oc4j_extended_101310\j2ee\home\lib\orbbase.jar, D:\oc4j_extended_101310\j2ee\home\iiop_gen_bin.jar, D:\oc4j_extended_101310\j2ee\home\lib\jmxcluster.jar, D:\oc4j_extended_101310\j2ee\home\jaccprovider.jar, D:\oc4j_extended_101310\j2ee\home\jacc-spi.jar, D:\oc4j_extended_101310\j2ee\home\jazncore.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\oraclepki.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\ojpse.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\ldapjclnt10.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\jssl-1_1.jar, D:\oc4j_extended_101310\j2ee\home\..\..\jlib\javax-ssl-1_1.jar, D:\oc4j_extended_101310\j2ee\home\..\..\lib\xmlparserv2.jar, D:\oc4j_extended_101310\j2ee\home\..\..\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\j2ee\home\..\..\lib\dms.jar, D:\oc4j_extended_101310\javavm\lib\jasper.zip, D:\oc4j_extended_101310\j2ee\home\lib\adminclient.jar, D:\oc4j_extended_101310\opmn\lib\optic.jar, D:\oc4j_extended_101310\j2ee\home\jazn.jar, D:\oc4j_extended_101310\jlib\ldapjclnt10.jar, D:\oc4j_extended_101310\jlib\jssl-1_1.jar, D:\oc4j_extended_101310\jlib\javax-ssl-1_1.jar, D:\oc4j_extended_101310\webservices\lib\wsserver.jar, D:\oc4j_extended_101310\webservices\lib\wsif.jar, D:\oc4j_extended_101310\webservices\lib\orawsmetadata.jar, D:\oc4j_extended_101310\webservices\lib\orajaxr.jar, D:\oc4j_extended_101310\webservices\lib\.\jaxr-api.jar, D:\oc4j_extended_101310\webservices\lib\.\orasaaj.jar, D:\oc4j_extended_101310\toplink\jlib\toplink-oc4j.jar, D:\oc4j_extended_101310\toplink\jlib\antlr.jar, D:\oc4j_extended_101310\diagnostics\lib\ojdl2.jar, D:\oc4j_extended_101310\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\xqs\lib\xqs-api.jar, D:\oc4j_extended_101310\xqs\lib\xds.jar, D:\oc4j_extended_101310\j2ee\home\lib\pcl.jar, D:\oc4j_extended_101310\webservices\lib\JMXSoapAdapterShared.jar, D:\oc4j_extended_101310\lib\dmsapp.jar, D:\oc4j_extended_101310\j2ee\home\applications\admin_ejb.jar, D:\oc4j_extended_101310\j2ee\home\lib\scheduler.jar, D:\oc4j_extended_101310\j2ee\home\connectors\datasources\datasources\datasources.jar, D:\oc4j_extended_101310\j2ee\home\connectors\OracleASjms\OracleASjms\gjra.jar, D:\oc4j_extended_101310\j2ee\home\applications\jmsrouter-ejb.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\design.model.ejb3.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.ejb3.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\enext.webtools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.corbatools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.framework.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.generic.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.idl.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.interfaces.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.mail.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next.tools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.featureBridge.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.jaxb.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.generator.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.model.widget.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.tools.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\next7.wmt.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oracleDriver.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.ecw.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.feature.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.kernel.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\oranext.nis.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\ose.componentModel.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\applib\wms.capabilities.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\catalog.ejb3.jar, D:\oc4j_extended_101310\lib\dms.jar, D:\oc4j_extended_101310\jdbc\lib\ojdbc14dms.jar, D:\oc4j_extended_101310\opmn\lib\ons.jar, D:\oc4j_extended_101310\jdbc\lib\ocrs12.jar, D:\oc4j_extended_101310\rdbms\jlib\aqapi.jar, D:\oc4j_extended_101310\j2ee\home\lib\ojms-provider.jar, D:\oc4j_extended_101310\jdbc\lib\orai18n.jar, D:\oc4j_extended_101310\lib\xmlparserv2.jar, D:\oc4j_extended_101310\lib\xml.jar, D:\oc4j_extended_101310\lib\xmlmesg.jar, D:\oc4j_extended_101310\lib\xsu12.jar, D:\oc4j_extended_101310\lib\xquery.jar, D:\oc4j_extended_101310\jlib\osdt_core.jar, D:\oc4j_extended_101310\jlib\osdt_cert.jar, D:\oc4j_extended_101310\jlib\osdt_xmlsec.jar, D:\oc4j_extended_101310\jlib\osdt_wss.jar, D:\oc4j_extended_101310\jlib\osdt_saml.jar, D:\oc4j_extended_101310\jlib\ojpse.jar, D:\oc4j_extended_101310\jlib\oraclepki.jar, D:\oc4j_extended_101310\toplink\jlib\toplink.jar, D:\oc4j_extended_101310\toplink\jlib\toplink-essentials.jar, D:\oc4j_extended_101310\webservices\lib\wsclient.jar, D:\oc4j_extended_101310\webservices\lib\orasaaj.jar, D:\oc4j_extended_101310\webservices\lib\xsdlib.jar, D:\oc4j_extended_101310\webservices\lib\relaxngDatatype.jar, D:\oc4j_extended_101310\webservices\lib\mdds.jar, D:\oc4j_extended_101310\javacache\lib\cache.jar, D:\oc4j_extended_101310\javacache\lib\..\..\lib\xmlparserv2.jar, D:\oc4j_extended_101310\javacache\lib\..\..\diagnostics\lib\ojdl.jar, D:\oc4j_extended_101310\webservices\lib\soap.jar, D:\oc4j_extended_101310\sqlj\lib\runtime12.jar, D:\oc4j_extended_101310\sqlj\lib\translator.jar, D:\oc4j_extended_101310\webservices\lib\orawsdl.jar, D:\oc4j_extended_101310\j2ee\home\applib, D:\oc4j_extended_101310\j2ee\home\applib\jai_codec.jar, D:\oc4j_extended_101310\j2ee\home\applib\activation.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-awt-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-bridge.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-css.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-dom.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-ext.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-extension.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-gui-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-gvt.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-parser.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-script.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-svg-dom.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-svggen.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-swing.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-transcoder.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-util.jar, D:\oc4j_extended_101310\j2ee\home\applib\batik-xml.jar, D:\oc4j_extended_101310\j2ee\home\applib\Acme.jar, D:\oc4j_extended_101310\j2ee\home\applib\jai_core.jar, D:\oc4j_extended_101310\j2ee\home\applib\jai_imageio.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb1-impl.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-api.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-impl.jar, D:\oc4j_extended_101310\j2ee\home\applib\jaxb-xjc.jar, D:\oc4j_extended_101310\j2ee\home\applib\jsr173_api.jar, D:\oc4j_extended_101310\j2ee\home\applib\jdbcora10fixed.jar, D:\oc4j_extended_101310\j2ee\home\applib\JdbcOraWrapper.jar, D:\oc4j_extended_101310\j2ee\home\applib\mjdfotf.jar, D:\oc4j_extended_101310\j2ee\home\applib\pdf-transcoder.jar, D:\oc4j_extended_101310\j2ee\home\applib\sdoapifixed.jar, D:\oc4j_extended_101310\j2ee\home\jsp\lib\taglib, D:\oc4j_extended_101310\j2ee\home\jsp\lib\taglib\ojsputil.jar, D:\oc4j_extended_101310\lib\dsv2.jar, D:\oc4j_extended_101310\j2ee\home\lib\http_client.jar, D:\oc4j_extended_101310\j2ee\home\lib\jgroups-core.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\classes, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\aclibico-castrated.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-beanutils.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-collections.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-digester.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-fileupload.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-lang.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-logging.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-math-1.0.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\commons-validator.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\design.apic2next.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\design.importPlugIn.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\designSource.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\ini4j-compat.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\ini4j.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jaas.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jakarta-oro.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\java_cup_10k.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jstl.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jta-spec1_0_1.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\mail.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\menu.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\relaxngDatatype.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\resolver.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\retroweaver-rt-1.2.1.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts-legacy.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\xmlsec.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\xsdlib.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Acme.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\antlr.jar, D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\sdoapifixed.jar]]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\oc4j-internal.jar(com/orionserver/http/OrionHttpJspPage.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/HttpJspPage.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspPage.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/Servlet.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Object.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/http/HttpServletRequest.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/http/HttpServletResponse.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/IOException.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/ServletException.class)]
    [checking _config]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Error.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Exception.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Throwable.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/RuntimeException.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/ServletResponse.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/String.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/PageContext.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspWriter.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspFactory.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/ServletRequest.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/http/HttpSession.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspContext.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/ServletContext.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/ServletConfig.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/el/VariableResolver.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar(oracle/jsp/el/OracleVariableResolverImpl.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\oc4j-internal.jar(com/evermind/server/http/JspCommonExtraWriter.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/Writer.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Appendable.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/Closeable.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/Flushable.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/rt/core/SetTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar(oracle/jsp/runtime/OracleJspRuntime.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Class.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/Tag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/common/core/SetSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/BodyTagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/TagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/IterationTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/FormTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/PanelTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/LabelledTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/LayoutTagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/tab/TabsTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/BodyLayoutTagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/tab/TabTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/GridLayoutTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/MessageTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/ImageTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/ActionTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/BaseHandlerTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts.jar(org/apache/struts/taglib/html/BaseHandlerTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/TextFieldTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/AbstractFieldTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/AbstractLayoutFieldTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/AbstractModeFieldTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/EmptyTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/CheckboxTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/SelectTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/OptionsTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/ColumnTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/LinkTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\struts.jar(org/apache/struts/taglib/bean/MessageTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/CellTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/rt/core/IfTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\jstl.jar(javax/servlet/jsp/jstl/core/ConditionalTagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/common/core/ChooseTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/rt/core/WhenTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/common/core/WhenTagSupport.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\standard.jar(org/apache/taglibs/standard/tag/common/core/OtherwiseTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/RowTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/SubmitTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\applications\next\config\WEB-INF\lib\Struts-Layout-1.2-Struts-1.1-compatibility.jar(fr/improve/struts/taglib/layout/field/TextareaFieldTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/BodyTag.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/tagext/JspTag.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/Serializable.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/Boolean.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar(oracle/jsp/jml/JmlFPNumber.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\ojsp.jar(oracle/jsp/jml/JmlNumber.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/SkipPageException.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspException.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/System.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/PrintStream.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/FilterOutputStream.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/OutputStream.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/io/UnsupportedEncodingException.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/InstantiationException.class)]
    [loading C:\Java\jdk1.5.0_11\jre\lib\rt.jar(java/lang/IllegalAccessException.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/el/ELException.class)]
    [loading D:\oc4j_extended_101310\j2ee\home\lib\servlet.jar(javax/servlet/jsp/JspTagException.class)]
    D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java:9941: code too large for try statement
    catch (Throwable e) {
    ^
    D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java:9946: code too large for try statement
    catch (Exception clearException) {
    ^
    D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java:40: code too large for try statement
    try {
    ^
    D:\oc4j_extended_101310\j2ee\home\application-deployments\next\config\persistence\_pages\\_config.java:18: code too large
    public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {
    ^
    [total 9424ms]
    4 errors

Maybe you are looking for