The Marshall-Smith Syndrome (hereafter abbreviated to MSS) is a congenital condition. It cannot be cured. However, there are treatments to relieve some of the symptoms, but even with the best of care there will be challenges and health issues. The word syndrome means the occurrence of several symptoms. Besides the visible symptoms there are also mental and physical symptoms. People often notice the physical appearance of a person with MSS first. You can see that the eyes are more protruding for example and that the teeth are extended further forward. People with MSS have an intellectual disability. They also have physical disabilities such as problems with breathing, hearing and body movement. There is a more detailed overview of the symptoms available. The page What can you expect over the longer term deals with the development of the disease over time.
MSS is an ultra-rare condition. Only 66 people worldwide are known to have MSS. When people ask you what the Marshall-Smith syndrome is… It can be difficult to give a short and clear answer to this question. You could say: “My child has a syndrome which results in 3 things: a different appearance, an intellectual disability and (many) physical problems.” You could then mention a few examples: “She has more protruding eyes than other children”, “He has difficulty breathing because of constricted airways” and “She is now 3 years old and has learned to crawl. Most other children are already walking at this age”.
MSS in an ultra-rare condition? Only 50 people worldwide are known to have MSS.
The appearance of a person with MSS is very distinctive. The chart below shows the external symptoms that are part of this syndrome. Please note that not everybody with MSS has all the symptoms mentioned.
Eyes | - Shallow eye sockets;
- larger protruding eyes;
- long lashes;
- the white of the eye has a bluish colour.
- The eyelids don’t completely cover the protruding eyes;
- Glaucoma (a disease of the eye where the nerve in the eye is damaged by higher pressure in the eyeball, diminishing eyesight).
|
Head | - Abnormal shape of the back of the head (either more flat or pointed).
|
Face | - Small, withdrawn chin;
- small nasal bridge (part between the eyes);
- larger forehead.
|
Feet | - Flat feet;
- position of the feet and toes is different: twisted;
- shape of the toes is different: the underside is pointed.
|
Hands | - Long fingers;
- broad, round fingertips;
- shape of the inside of the fingertips (pointed).
|
Teeth | - Crooked teeth;
- outward angle of the jaw;
|
"When our son was diagnosed with the Marshall-Smith Syndrome 9 years ago, we were immediately told about all the possible problems. It was a huge shock. We can now say that we recognize a lot of the problems, but our son doesn’t have them all. Looking back it was good to hear everything right away. At least you know what to expect and what to look out for."
Not all physical symptoms are immediately noticeable in the appearance of someone with MSS. These other physical symptoms are mentioned in the overview below.
| - Difficulty breathing because of constricted airways
- Sleep apnoea (breathing intervals during sleep)
- Higher blood pressure in the capillaries of the lung (pulmonic hypertension)
- Greater risk of infection of the airways (from a cold to serious pneumonia)
|
Ears | - Ear defect
- Hearing impairment
|
Bones | - Low bone density (osteopenia) and osteoporosis -> increasing the chance of fractures
- Sideways curve of the spine (scoliosis)
- Unnatural curving of the upper back (kyphosis)
- Different bone maturation: the bones in hand and feet mature faster
- Pain in the joints (osteoarthritis)
|
Brains | - Developmental delay (both intellectually and motoric)
|
In tests and treatments you can find which tests and treatments are available per symptom or problem.
Intelligence and (social) development
All children with MSS have a serious intellectual disability. That is why most children will have limited speech or will never learn how to speak at all. They might never be toilet trained. Because this requires extra care, adapted day-care or schools are necessary. Some children go to day-care from their parental homes, others from a surrogate family unit with specialized care. As adults, most people with MSS live in an institution for people with intellectual disabilities. How does the Marshall-Smith syndrome affect daily life? explains the effects on daily life in more detail.
Nature and behaviour
Children and (young) adults with MSS are very social people. They enjoy being around people they are familiar with.
Many children with MSS like motion games. Playing wildly is not always possible because of the physical disabilities (reduced muscle strength, brittle bones and delayed development of normal movement).
Tenacious behaviour is typical for children with MSS. They can be very persistent and also repeat certain behaviour. They can be very possessive of people, animals or toys. They often get attached to a specific toy.
Maladjusted behaviour doesn't occur very often. When a child does show difficult behaviour, it might be caused by a physical problem. A child's behaviour is often a good indicator of pain and fatigue.
Language, speech and communication
For most children with MSS, learning to speak is not possible, but they can learn to communicate in other ways. For example by making eye contact or showing facial expressions. You can also pick something up, point to it or make a sign. By encouraging the child when it does well, communication will increasingly become a two-way street.
There are several courses on improving communication. You can read more about this in tests and treatments.
Different problems can occur during sleep. When a children are lying on their backs or tummies (as opposed to on their sides) the usual breathing difficulties can be made worse. Sometimes there are short intervals in breathing (sleep apnoea). Some children have epileptic seizures in their sleep. It is important to tell your paediatrician what you notice during your child’s sleep. Treating the symptoms is sometimes possible and necessary.
People with MSS have reduced muscle strength in their entire bodies. Doctors call this ‘hypotonia’. Normal development, such as a baby’s ability to independently hold its head up or a toddler learning to crawl, takes more time and effort. Children can easily fall during play. Sometimes children with MSS can learn how to walk with special aids. Reduced muscle strength can cause drooling. The shorter lower jaw also plays a part, as does the difficulty in swallowing and not being conscious of running saliva.
In the topic about the symptoms you’ve read what symptoms can occur with MSS. This topic deals with the different life phases in which these symptoms can start, worsen or get better.
Almost all babies with MSS have trouble breathing directly after birth. Because of their constricted airways and reduced muscle strength, they also have difficulty swallowing. This is why feeding is often very troublesome. Another frequent problem is bright (day)light: their eyes can’t handle it very well.
During the first months after birth, the babies are very susceptible to respiratory infections, making hospitalization sometimes necessary. It might even be life threatening during the first months. Thankfully, death as a result of the infection is less common these days. More and more knowledge about this syndrome is being gathered and treatment of the symptoms is getting increasingly better.
The physical symptoms caused by MSS often worsen between the ages of 8 and 10. Reduced muscle strength will become a bigger issue as children become more active. The spine becomes more curved as children suddenly grow very fast (growth spurt). Lastly osteoporosis can start at this age.
There are also symptoms that improve during this phase. Problems with breathing usually get better with age. Sometimes this is only temporary, the symptoms might get worse again later in life.
Growth and development of the body are normal for a person with MSS. Puberty will start and from that moment onward the bones mature faster than the rest of the body. Their bones will become brittle and can fracture more easily. The curve of the spine will also continue to worsen, which can start to increasingly hinder movement. More or other aids will become necessary to support standing and moving. Little is known about sexual development of children with MSS. You can always ask the advice of a doctor specialized in intellectual disabilities.
From the young adult phase until the age of 35, there don’t seem to be any new health problems. There is no knowledge about the quality of life after the age of 35 yet. Neither is anything known about life expectancy. More study into MSS is being done at the moment.
MSS is a congenital condition. It is caused by a change (mutation) in the genetic material. The gene where the change that causes MSS was found, is called NFIX.
There is nothing you can do or not do to prevent a child from being born with this condition.
The condition is not hereditary. In this case doctors call it a ‘spontaneous mutation’. So parents of a child with MSS don’t need to be tested for the syndrome. There is no increased risk of giving birth to another child with MSS when you already have a child with the syndrome.
When a baby is born with MSS, you notice very quickly that something isn’t right. Their physical appearance is different from that of most babies. From the start, the newborn often has trouble breathing and feeding is very difficult. It usually takes a few more days to weeks until MSS is diagnosed.
The doctor who determines the condition (the diagnosis) is called a clinical geneticist. Firstly, this doctor will look at the visible and noticeable symptoms of MSS. You can find these symptoms here. The clinical geneticist also looks at X-rays of the bones in the hands after which the doctor can usually confirm whether or not it is MSS.
To make absolutely sure the diagnosis is correct, the clinical geneticist will also examine the genetic material (DNA research). This is done by taking a small blood sample from the child. In the blood, the geneticist looks for a change (mutation) in a certain part of the genetic material. The gene that is responsible for MSS is called NFIX.
When you know your child has MSS, you can prevent certain health problems by having your child checked for symptoms that often occur with MSS. When the diagnosis is clear, you can go to the MSS centre of expertise for tests and treatment. This is the AMC in Amsterdam. The care providers at the centre of expertise have experience with other patients with MSS, both children and adults. The doctors are also informed of the latest (international) information on MSS. At your request, they can pass on their knowledge to the healthcare providers in your neighbourhood. This way it is not necessary to go to Amsterdam for all treatments and advice.
That recognizing a congenital condition is very hard because there are 8000 different conditions and syndromes worldwide? And most of these are rare. The Marshall-Smith Syndrome is even ultra-rare.
Which tests and treatments are available?
MSS cannot be cured. Still, there are treatments that diminish the symptoms or even make them go away completely. Health care providers will usually first examine the symptoms before suggesting a treatment.
Below is an overview of possible tests and treatments. It only lists the care that is mostly given to people with MSS. Not every adult or child with MSS will need to undergo all the tests or every treatment. The doctor might suggest different tests and treatments to some people with MSS, depending on the symptoms and age.
This topic deals with the available care. But you can do a lot yourself to improve the health and wellbeing of your child. More about this in What can you look out for as a parent/carer
What is the symptom | What causes it? | Which tests are available | Which treatment is available? |
---|
Difficulty swallowing (feeding) | Because parts of the mouth and throat are formed differently, children swallow air with their food. | A paediatrician films how food goed down by colouring the food (contrast fluid). This way the doctor can see where the food is and how quickly it goes down. | When the doctor has determined where the problem exactly is and how serious it is, you will get the appropiate advice. In some cases, the child will receive food through a tube in the nose (PEG-tube) or straight into the stomach (through a so called 'MIC-KEY button on the belly). |
Eye problems | The eye condition glaucoma (higher pressure in the eye) occurs often in people with MSS. That is why doctors pay extra attention to this when they know you have MSS. | An ophthalmologist looks at the eyes through a device to determine if the eye condition glaucoma is visible. | The treatment of glaucoma is the same treatment you receive when you do not have MSS. A doctor can inform you of the treatment available. |
Problems with the bones | The bones of people with mss mature much faster, causing them to fracture easier. | A paediatrician or orthopaedist checks the density of the bones with a device (dexa scan). | With low bone density (osteopenia) or osteoporosis a doctor can give medication to strengthen the bones. |
| People with mss can have a growth disorder in the bones (dysostosis) as well as curving of the spine (scoliosis or kyphosis) and calcification of the vertebrae (stenosis). These symptoms can start in puberty. | A paediatrician or orthopaedist checks if there are growth disorders or other problems with the bones. The doctor can recognize some defect with bare eyes, but for other disorders a device is necessary to make images of the inside of the body. | When the curving of the spine (scoliosis or kyphosis) is serious, an operation is needed. An operation involves risk, which the doctor will discuss with you. You can also discuss which other possible treatments there are for the (other) problems that have been found. |
Problems with movement of the hands | The joints in the thumbs are reversed. | A doctor will determine this with the bare eye or an X-ray. | An aid to help the fingers bend correctly (a splint or brace) |
Problems with the muscles and nervous system | Children and adults with MSS have reduced muscle strength (hypotonia). Movement and touching things or picking them up (motor skills) are therefore often more difficult. | A paediatrician looks at the level of movement and whether there is enough strengt to do all the daily things the person should be able to do at that age. | With physiotherapy you can work on improving muscle strength. An occupational therapist can advise on on aids to support movement. |
Communication and language development | Because of the intellectual disability that comes with MSS, language development doesn't start or is very difficult. That is why learning to communicate is doesn't happen by itself. | A speech therapist can test the level of communication. The therapist will check the use and understanding of language and other means of making contact. | There are many ways in which to teach a child how to communicate. Remedial educationalists can advise on which approach is best suitable. They also give parents and carers tips on how to work on communication at home. |
Ears | Ear infections can occur more often in children with MSS. Recurring ear infections increase the possibility of a hearing impairment. | Doctors regularly examine the children's hearing to determine whether or not it is getting worse. | Ear tubes can be placed through the ear drums (t-drains). This relieves the pain of the infection, but it might cause chronic runny ear. A hearing aid is another possibility. |
| The shape of the small bones in the ears may cause the passage to be too narrow. | The doctor will determine the width of the auditory passage. | The auditory passage on the outside of the ears can be enlarged slightly (meatoplasty). An operation on the bones in the ear (mastoidectomy) is also a possibility. |
Mouth and teeth | The jaw is usually too small for adult teeth. The gums can sometimes be thicker. | The dentist determines if the teeth need to be straightened. It is recommended to visit a dentist who has experience with children with an intellectual disability. Your own healthcare provider can refer you to a centre for specific dental care. | Teeth can be straightened when there are serious problems with closing the jaws and chewing. A dentist can also recommend removing teeth or molars. |
MSS influences almost all daily activities. Not just for the person who has this syndrome, but also for the parents and other carers. Much help is needed with personal care, movement and communication. All daytime activities require constant attention and support. Participating in society is challenging as it is often not equipped to deal with people who have a physical or intellectual disability.
For school and day care employees it is good to know more about MSS. You can give them a patient information brochure to read. If you require specific information, please contact the Marshall-Smith Foundation through info@marshallsmith.org
When a child with is MSS is around 1.5 to 2 years old, a remedial educationalist can already determine which support is most suitable for the child. A remedial educationalist is a carer who is specialized in the development and behaviour of children.
Some children with MSS live at home, others live in special care facilities. This depends on how much special care and support is needed, but also on the preference of the parents and how much care they are able to take upon themselves.
Children living at home can start going to a special day care facility from 2 years onward. There are different types of day care in different countries, for example:
- A specialized (medical) children's day care centre;
- remedial educational day centres;
- children's rehabilitation centres.
Which form of day care is best suited depends on the child's (physical) symptoms.
Children living in special care facilities are offered day care there as well. At a day centre for children with serious multiple disabilities, the groups are formed similarly to those in primary education. They are formed based on age as much as possible, but the professionals will also look at a child's ability when forming the groups.
Day care and housing for adults
Almost all individuals with MSS live in supported environments when they reach adulthood. Sometimes this means a small transition when the person has lived in a special care facility as a child. For others who have lived at home, the transition might have more impact. Various therapists connected to an institution for adults with an intellectual disability, prepare the young adult for the transition into a new living environment.
Questions about upbringing and daily life
Even with a lot of knowledge and experience, raising a child with MSS can be a challenge. You might have questions like: ‘How do I know what is normal behaviour and what is not?’ or ‘How do I make sure I give my other children enough attention?’
When your child lives in a special care facility, there is usually a network of carers available to assist you with your queries. When your child lives at home or when you do not yet have a network of special healthcare providers, don’t wait around with unanswered questions. There are many organizations that can support you and your family at home. Your general physician can help you find these organizations.
Many parents or near ones of a child with MSS, feel they need to be strong and shouldn’t complain, let alone give up. But the amount of care you have to give and the responsibility you carry, are enormous. Because others often don’t have the knowledge and experience, it is hard to trust someone else with the care of your child. This might take so much time and effort, you could develop health problems yourself. Exhaustion, irritability and depression are common symptoms. It is important to get help as soon as you notice you are starting to get these symptoms. When you are not fit and healthy yourself, you cannot care for someone else. It could be an option to build a network of family and friends who can fill in every now and again. Simply by being a sympathetic ear or doing odd jobs. There are also professional care providers who can do this for you. From a social worker and domestic help to trained council workers and a psychologist. If you find it hard to figure out who can best help you in your situation, ask your general physician. He or she will know where to find the right kind of help.
Siblings will often feel the effect the disease has on the entire family. No matter how well you try to split your attention between your children, a child with MSS will always need more care than healthy brothers or sisters. It often happens that brothers or sisters will efface themselves by requiring less attention from their parents. But the reverse is possible as well. Some children will demand extra attention from their parents by exhibiting problem behaviour. This can also be an (unconscious) way of dealing with emotions.
Try to take some extra time for your healthy child. Explain what the syndrome means. Give the child a chance to talk about the feelings he or she has about it. Show that feelings of anger and jealousy are normal and that he or she is allowed to feel that way. Let your healthy child know you love him or her just as much as you love your child with MSS.
If you are a working parent, tell your employer you also have a heavy care assignment. There are often ways to take this into account. You might think about flexible hours or (temporary) care leave. This doesn’t always have to have consequences for your income.
There is a lot of information and practical help for siblings of children with a chronic disease. Examples of books filled with identifiable situations, tips and advice are: 10 great books if you have a sibling with special needs. Some countries have their own website for siblings, for example Australia: http://siblingsaustralia.org.au, or United Kingdom: https://www.sibs.org.uk. Some organizations offer a workshop or training that will help you how to deal with a brother or sister who has a disease even better.
You can send an email to the patient organization Marshall-Smith Syndrome Research Foundation to get into contact with fellow parents of children with MSS. info@marshallsmith.org. It often helps to be able to talk to someone who has gone through the same thing or to just listen to their experiences. With this aim the foundation often organizes meetings for families. Besides practical advice it can also give you the support to keep going.
“For years I put up a brave face. Nights on end I would have trouble sleeping because of the feeding problems my daughter had. During the day it was all about her as well. Eventually I broke down and had to stop working. If I had asked for help sooner, it would have saved me a lot of grieve. I hope other parents can learn from this.”
It might seem that you are completely dependent on healthcare providers for the care and wellbeing of your child, but there is a lot you can do yourself.
Breathing | With breathing problems during sleep, it could help to have the child lie on his or her side. This way the airways have more room. Sleeping on a beanbag or special pillow can help the child to lie in this position by him or herself. When breathing suddenly stops during sleep, it can help to pick the child up and stroke its back. This often helps to start up the breathing again. For some parents using equipment at home to monitor the child's heartrate and oxygen levels during sleep, is comforting and gives them a sense of security. Discuss this with your doctor. Some insurance companies will reimburse this. |
Nutrition | You can play a part in teaching your child how to eat and drink. A pre-speech therapist can give you the appropriate advice. Standard quantities are advised for all children of a certain age when (drip) feeding, but this can sometimes be too much for a child with MSS. When you notice your child brings up a lot of food, discuss if the amount of food you give can be adjusted. Too much food can be damaging to children with MSS. |
Eyes | MSS causes the eyes to be more sensitive to bright light. This is bothersome and can be damaging to the eyes. You can adjust the light in your child's room by using different lights, but also by using a dimmer-switch on lights you already have and by using blinds. Sunglasses can be used outside to protect the eyes. |
Reduced muscle strength | Because of reduced muscle strength, a baby's head might fall backwards or sideways during feeding. It takes longer before the muscles have enough strength to hold the head up independently. Supporting the head correctly ensures it can't fall backwards and the child can drink more easily. |
Making contact | You can give a child a lot of confidence with physical contact. You could carry your child, hold his or her hand and make eye contact. It helps if you give the child enough time and space to process this physical contact. |
Movement and mobility | Larger movements (gross motor skills) can be encouraged by challenging a child to move. For example by letting the child walk behind a big ball. Moving on an air cushion, swinging and supervised swimming can be good ways to help improve the gross motor skills. With a lot of practice, children could learn how to ride a tricycle. You can also help develop the small movement for which coordination is needed. (fine motor skills). You could let a child feel shaving cream or sand carefully with its fingers. |
Dental care | Brushing teeth at a young age is difficult because of sensitivity of the mouth. You can playfully teach a child to brush with the advise of a pre-speech therapist. A pre-speech therapist can also help with other oral problems, like feeding and learning to babble. Ask your general physician or paediatrician for a referral. |
Toilet training | Because of the severe intellectual disability, toilet training is often not very succesful. But when the development age gets to 3 to 4 years, toilet training has a reasonable chance of being successful. A general physician or paediatrician can advise you on adjusted training. |
The best thing you can do yourself is staying in communication with your healthcare provider. Keep asking questions if something isn't clear and let them know when you feel uncomfortable about something. You can also ask for other options when you have doubts about certain examinations and treatments.
Be prepared when you have an appointment with your healthcare provider by thinking of what you want to ask and discuss before the appointment. Write it all down and take it with you to your healthcare provider. You can use the 'Individual care plan' in the back of the patient information.
You will be dealing with various health care providers. The paediatrician is usually your first point of contact. He or she arranges the care with other doctors.
As an adult with MSS, your first point of contact is a doctor for people with an intellectual disability. This doctor will arrange almost all of the care you will be needing with various other specialists. You will also be dealing with various other medical specialists, for example:
- Neurologists (for the brains and the nervous system)
- Doctors for ears, nose and throat (ENT specialists)
- Cardiologists (for the heart)
- Anaesthetists (for anaesthesia during examinations and possible operations)
- Radiologists (to make images of internal organs)
- Orthopaedists (for bones, joints and muscles)
- Specialists for internal medicine (for organs in the abdomen)
- Specialized dentists (for oral care and specific teeth problems for people with an intellectual disability)
- Doctors for clinical genetics (to determine the congenital condition).
You may also be dealing with paramedical health care providers like:
- (pre) Speech therapists (for support with communication and feeding)
- Dieticians (for nutritional advice)
- Podiatrists (for foot care)
- Orthoptists (for eye care)
- Exercise therapists, occupational therapists and physiotherapists (for mobility aids)
- Psychologists and remedial educationalists (for support in upbringing, behavioural problems and learning).
Expertise centre and treatment centre
An expertise centre is a hospital where the healthcare providers have a lot of knowledge about a (rare) disease. The various care providers involved in the examinations and treatments, work together in a team.
You don’t always have to go to the expertise centre for all treatments and advice. You could just go once a year for check-ups. The care providers in the expertise centre can pass on their advice to your own healthcare provide in a treatment centre near you. The rest of the healthcare needed, can be provided by the care providers in your area.
Did you know that…
The AMC in Amsterdam has been officially designated as an expertise centre for children with MSS since 2015? You can be referred to this expertise centre by the healthcare provider you are in contact with. You can also email the centre of expertise: marshallsmith@amc.uva.nl
A patient organization can play an important role in the lives of people with a disease and their near ones. The Marshall-Smith Syndrome Foundation does this by raising awareness about the syndrome. They provide tools for doctors and other healthcare providers to enable them to give better care to people with MSS. One of these tools is de standard of care for MSS. You can find this document on marshallsmith.org Active parents work together with other volunteers on an international level. Because there are so few people with MSS, international cooperation is important.
The foundation stimulates contact between patients and their near ones by organizing family days. You can read more about the family days and other activities organized by the foundation on the website marshallsmith.org and on the Facebook page.
It is very important to communicate with your healthcare providers to get all the information you need about which examinations and treatments are available. You often have a choice in which treatment or examination you think is right for your child. Your healthcare provider can tell you about the pros and cons so you can discuss which option is best for your child. If a treatment is suggested, you usually don’t need t say ‘yes’ or ‘no’ right away. You can think about it at home or ask for another appointment. You don’t have to make these difficult decisions by yourself. You can do this together with your healthcare provider and you can always bring someone you confide in for support.
You can kindly refer them to the Standards of Care Marshall-Smith Syndrome. This describes what good care is for people with MSS. Healthcare providers and near ones of people with MSS have made these agreements together. The healthcare providers at the expertise centre AMC in Amsterdam are well informed of this standard of good care for MSS. Healthcare providers in other institutions may not be aware of this standard. They can find it in the library of the Dutch Healthcare Institute http://www.zorginzicht.nl or on the MSS Research Foundation’s website: http://www.marshallsmith.org. It is also important for the healthcare providers of the treatment centre in your area (who do not have extra knowledge on MSS) to communicate with the expert team at the AMC.
Erreur dans l'exécution de la macro [velocity]. Cause : [null]. Cliquer sur ce message pour voir plus de détails.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [{{html}}
##------------------------------------------------------------------------------------
## WaihonaPedia has a Topic-tag model
## the idea is like the xwiki-tag model, but the difference that you can only tag with predefined Topicsd
## Below we show these tags
## and when context.user is a moderator we offer some edit functionality
##------------------------------------------------------------------------------------
#*
#if($doc.getObjects('WaihonaCode.ATEPublic.ATEPublicClass').size() == 0 && $doc.getObjects('WaihonaCode.diseaseClass').size()==0
&& $doc.getObjects('WaihonaCode.pageTopicTagClass','topicType', '2').size() > 0)
*#
#set($ateClassName = 'WaihonaCode.ATEPublic.ATEPublicClass' )
#set($atePublicMasterATEQueryDef = "from doc.object($ateClassName) as ate where ate.questionID = :thisKey")
#set($atePublicTranslationsATEQueryDef = "from doc.object($ateClassName) as ate where ate.parentQuestionID = :thisKey")
#set($atePublicTranslationTags = [])
#if($doc.getObject($ateClassName) && $doc.getObjects('WaihonaCode.pageTopicTagClass','topicType', '2').size() == 0) ## This is ATEPublic with NO topic-tags; often translations
#if($doc.getObject($ateClassName).getProperty('parentQuestionID') && $doc.getObject($ateClassName).getProperty('parentQuestionID').getValue() != '') ##This is translation doc
#set($thisQuestionID = $doc.getObject($ateClassName).getProperty('parentQuestionID').getValue())
#set($atePublicTranslationsDocRefList = $services.query.xwql($atePublicTranslationsATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicTranslationDocRef in $atePublicTranslationsDocRefList)
#set($atePublicTranslationDoc = $xwiki.getDocument($atePublicTranslationDocRef))
#set($theseTags = $atePublicTranslationDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($atePublicTranslationTags = $collectiontool.union($atePublicTranslationTags,$theseTags))
#end
## Find the master
#set($atePublicMasterDocRefList = $services.query.xwql($atePublicMasterATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicMasterDocRef in $atePublicMasterDocRefList)
#set($atePublicMasterDoc = $xwiki.getDocument($atePublicMasterDocRef))
#set($theseTags = $atePublicMasterDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($atePublicTranslationTags = $collectiontool.union($atePublicTranslationTags,$theseTags))
#end
#else ## This is a master, find the other translations
#set($thisQuestionID = $doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass').getProperty('questionID').getValue())
#set($atePublicTranslationsDocRefList = $services.query.xwql($atePublicTranslationsATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicTranslationDocRef in $atePublicTranslationsDocRefList)
#set($atePublicTranslationDoc = $xwiki.getDocument($atePublicTranslationDocRef))
#set($theseTags = $atePublicTranslationDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($atePublicTranslationTags = $collectiontool.union($atePublicTranslationTags,$theseTags))
#end
#end
#end
#if($doc.getObjects('WaihonaCode.pageTopicTagClass','topicType', '2').size() > 0 || $atePublicTranslationTags.size() > 0)
## The Ask the Expert application needs a specific way of handling these tags
## The class deals with translations by creating seperate pages for each region (e.g. nl-nl, be-nl)
## And each region could add topic's (allthough it is advised to do it only on the master page)
## Translations of a page are kept together by properties questionID (=master) and parentQuestionID (=translations)
#if($doc.getObject($ateClassName) && $atePublicTranslationTags.size() == 0)
#set($theseTags = $doc.getObjects('WaihonaCode.pageTopicTagClass','topicType', '2') )
#set($topicTags = $collectiontool.union($topicTags,$theseTags))
#if($doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass').getProperty('parentQuestionID') && $doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass').getProperty('parentQuestionID').getValue() != '') ##This is translation doc
#set($thisQuestionID = $doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass').getProperty('parentQuestionID').getValue())
#set($atePublicTranslationsDocRefList = $services.query.xwql($atePublicTranslationsATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicTranslationDocRef in $atePublicTranslationsDocRefList)
#set($atePublicTranslationDoc = $xwiki.getDocument($atePublicTranslationDocRef))
#set($theseTags = $atePublicTranslationDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($topicTags = $collectiontool.union($topicTags,$theseTags))
#end
## Find the master
#set($atePublicMasterDocRefList = $services.query.xwql($atePublicMasterATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicMasterDocRef in $atePublicMasterDocRefList)
#set($atePublicMasterDoc = $xwiki.getDocument($atePublicMasterDocRef))
#set($theseTags = $atePublicMasterDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($topicTags = $collectiontool.union($topicTags,$theseTags))
#end
#else ## This is a master, find the other translations
#set($thisQuestionID = $doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass').getProperty('questionID').getValue())
#set($atePublicTranslationsDocRefList = $services.query.xwql($atePublicTranslationsATEQueryDef).bindValue('thisKey', $thisQuestionID).addFilter('unique').execute() )
#foreach($atePublicTranslationDocRef in $atePublicTranslationsDocRefList)
#set($atePublicTranslationDoc = $xwiki.getDocument($atePublicTranslationDocRef))
#set($theseTags = $atePublicTranslationDoc.getObjects('WaihonaCode.pageTopicTagClass') )
#set($topicTags = $collectiontool.union($topicTags,$theseTags))
#end
#end
#else
#set($topicTags = $doc.getObjects('WaihonaCode.pageTopicTagClass','topicType', '2') )
#end
#set($topicTags = $collectiontool.union($topicTags,$atePublicTranslationTags ))
#set($topicClassName = 'WaihonaCode.healthTopicsClass')
#set($diseaseTagClassName = 'WaihonaCode.ATEPublic.diseaseTagClass' )
#set($diseaseClassName = 'WaihonaCode.diseaseClass')
#set($topicQueryDef = "from doc.object($topicClassName) as topic where topic.key = :thisKey")
#set($diseaseQueryDef = "from doc.object($diseaseClassName) as dis where dis.key = :thisKey")
#set($publicationsQueryDef = "from doc.object('WaihonaCode.pageTopicTagClass') as pub where pub.topicType = '2' and pub.topicKey = :thisTopicKey")
#set($publicationsCountQueryDef = "from doc.object('WaihonaCode.pageTopicTagClass') as prim where doc.fullName not in (select distinct obj1.name from BaseObject as obj1 where obj1.className = 'WaihonaCode.themeRoomCloserLookClass') AND doc.fullName not in (select distinct obj2.name from BaseObject as obj2 where obj2.className = 'WaihonaCode.ATEPublic.ATEPublicClass') AND doc.fullName not in (select distinct obj3.name from BaseObject as obj3 where obj3.className = 'WaihonaCode.ATEPrivatClass') AND doc.fullName not in (select distinct obj4.name from BaseObject as obj4 where obj4.className = 'WaihonaCode.themeRoomClass') AND doc.fullName not in (select distinct obj5.name from BaseObject as obj5 where obj5.className = 'Blog.BlogPostClass')AND prim.topicKey = :thisTopicKey AND prim.topicType = '2'")
#set($storyCount1QueryDef = "from doc.object('WaihonaCode.themeRoomCloserLookClass') as prim where prim.storyTopicKey = :thisTopicKey")
#set($storyCount2QueryDef = "from doc.object(WaihonaCode.pageTopicTagClass) as prim where doc.fullName in (select distinct obj1.name from BaseObject as obj1 where obj1.className = 'WaihonaCode.themeRoomCloserLookClass') AND prim.topicKey = :thisTopicKey")
#set($ateCountQueryDef = "from doc.object(WaihonaCode.pageTopicTagClass) as prim where doc.fullName in (select distinct obj1.name from BaseObject as obj1 where obj1.className = 'WaihonaCode.ATEPublic.ATEPublicClass')AND prim.topicKey = :thistopicKey")
#set($diseaseKey = '')
#set($topicsArray = [])
#set($showMoreOnObjects = {})
#foreach($topicTag in $topicTags)
#set($topicObject = {})
#set($thisKey = $topicTag.getProperty('topicKey').getValue() )
#set($thisTopicList = $services.query.xwql($topicQueryDef).bindValue('thisKey', $thisKey).addFilter('unique').execute() )
## =============
## Find the Topic Text, The Parent key
#foreach($thisTopicDocRef in $thisTopicList )
##This will loop only once since we should only find ONE document
#set($thisTopicDoc = $xwiki.getDocument($thisTopicDocRef))
## We need to search for a diseaseTag in the topicTree
## A better algorithm for below is a recursive one, but I always struggle with that one in Velocity
## ++++++++++++++++++++++++++++++
#if( $thisTopicDoc.getObject($topicClassName).getProperty('parent').getValue()
&& $thisTopicDoc.getObject($topicClassName).getProperty('parent').getValue() != '' )
#set($parentKey = $thisTopicDoc.getObject($topicClassName).getProperty('parent').getValue() )
#set($parentList = $services.query.xwql($topicQueryDef).bindValue('thisKey', $parentKey).addFilter('unique').execute() )
#foreach($parentDocRef in $parentList )
##This will loop only once since we should only find ONE document
#set($parentDoc = $xwiki.getDocument($parentDocRef))
#if( $parentDoc.getObject($topicClassName).getProperty('parent').getValue() && $parentDoc.getObject($topicClassName).getProperty('parent').getValue() != '' )
#set($parent2Key = $parentDoc.getObject($topicClassName).getProperty('parent').getValue() )
#set($parent2List = $services.query.xwql($topicQueryDef).bindValue('thisKey', $parent2Key).addFilter('unique').execute() )
#foreach($parent2DocRef in $parent2List )
#set($parent2Doc = $xwiki.getDocument($parent2DocRef))
#if( $parent2Doc.getObject($topicClassName).getProperty('parent').getValue() && $parent2Doc.getObject($topicClassName).getProperty('parent').getValue() != '' )
#set($parent3Key = $parent2Doc.getObject($topicClassName).getProperty('parent').getValue() )
#set($parent3List = $services.query.xwql($topicQueryDef).bindValue('thisKey', $parent3Key).addFilter('unique').execute() )
#foreach($parent3DocRef in $parent3List )
#set($parent3Doc = $xwiki.getDocument($parent3DocRef))
#if( $parent3Doc.getObject($topicClassName).getProperty('parent').getValue() && $parent3Doc.getObject($topicClassName).getProperty('parent').getValue() != '' )
#set($parent4Key = $parent3Doc.getObject($topicClassName).getProperty('parent').getValue() )
#set($parent4List = $services.query.xwql($topicQueryDef).bindValue('thisKey', $parent4Key).addFilter('unique').execute() )
#foreach($parent3DocRef in $parent3List )
#end
#else
#set($diseaseKey = $parent3Doc.getObject($diseaseTagClassName).getProperty('diseaseKey').getValue() )
#end
#end
#else
#set($diseaseKey = $parent2Doc.getObject($diseaseTagClassName).getProperty('diseaseKey').getValue() )
#end
#end
#else
#set($diseaseKey = $parentDoc.getObject($diseaseTagClassName).getProperty('diseaseKey').getValue() )
#end
#end
#else
#set($diseaseKey = $thisTopicDoc.getObject($diseaseTagClassName).getProperty('diseaseKey').getValue() )
#end
#set($discard = $topicObject.put('parentKey', $parentKey))
#end
#set($discard = $showMoreOnObjects.put('diseaseKey', $diseaseKey))
## =============
## Found the Topic Text, the disease with the topic, The Parent key
## ++++++++++++++++++++++++++++++
#set($diseaseDocRefList = $services.query.xwql($diseaseQueryDef).bindValue('thisKey', $diseaseKey).addFilter('unique').execute() )
#foreach($diseaseDocRef in $diseaseDocRefList)
#set($publicationDocRef = $xwiki.getDocument($diseaseDocRef).getObject($diseaseClassName).getProperty('publicationspace').getValue() )
#set($discard = $showMoreOnObjects.put('publicationDocRef', $publicationDocRef))
#end
## We have a user problem when the topic referred to has only ONE publication
## It will be $doc for the entity (informationb,Experience or question) currently viewed
## so we should count the publications that will be shown when the indexpage wil be shown, only > 1 : FOR THE CURRENT ENTITY!
#set($infoPageRefArray = [])
#set($answerPageRefArray = [])
#set($storyPageRefArray = [])
#if($services.query.xwql($publicationsQueryDef).bindValue('thisTopicKey', $thisKey).addFilter('unique').count() >= 1)
## We can have 1 page with multiple translations, these will be counted
#foreach($thisPageRef in $services.query.xwql($publicationsQueryDef).bindValue('thisTopicKey', $thisKey).addFilter('unique').execute())
#if(!$xwiki.getDocument($thisPageRef).getObject('WaihonaCode.ATEPublic.ATEPublicClass') &&
!$xwiki.getDocument($thisPageRef).getObject('WaihonaCode.themeRoomCloserLookClass') )
#set($tempArray = [])
#set($discard = $tempArray.add($thisPageRef))
#set($infoPageRefArray = $collectionstool.union($infoPageRefArray, $tempArray))
#elseif($xwiki.getDocument($thisPageRef).getObject('WaihonaCode.ATEPublic.ATEPublicClass'))
#set($tempArray = [])
#set($discard = $tempArray.add($thisPageRef))
#set($answerPageRefArray = $collectionstool.union($answerPageRefArray, $tempArray))
#else
#set($tempArray = [])
#set($discard = $tempArray.add($thisPageRef))
#set($storyPageRefArray = $collectionstool.union($storyPageRefArray, $tempArray))
#end
#end
#set($discard = $topicObject.put('informationArray', $infoPageRefArray))
#set($discard = $topicObject.put('storyArray', $storyPageRefArray))
#set($discard = $topicObject.put('answerArray', $answerPageRefArray))
##set($topicDisplayerURL = $xwiki.getDocument($topicDisplayerPageRef).getURL('view',"searchOrigin=topic&topic=${thisKey}&atepage=overview") )
#if(($request.displayer =='story' || $request.displayer =='stories'))
#set($thisPageEntity = 'story')
#elseif($doc.getObject('WaihonaCode.themeRoomCloserLookClass')) ## Story as well
#set($thisPageEntity = 'story')
#elseif($request.displayer =='information')
#set($thisPageEntity = 'information')
#elseif(!$doc.getObject('WaihonaCode.themeRoomCloserLookClass') && !$doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass')) ## Assume it is a information page
#set($thisPageEntity = 'information')
#else
#if($doc.getObject('WaihonaCode.ATEPublic.ATEPublicClass'))
#set($thisPageEntity = 'answer')
#elseif($doc.getObject('WaihonaCode.themeRoomCloserLookClass'))
#set($thisPageEntity = 'story')
#else
#set($thisPageEntity = 'information')
#end
#end
#end
#foreach($entityType in ['information','story','answer'])
#set($linkObject = {})
#set($discard = $linkObject.put('entity', $entityType) )
#if($thisPageEntity == $entityType)
## We need more as 1 page
#if($entityType == 'information' && $topicObject.informationArray.size() > 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-information' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.infoDisplayer&topic=${thisKey}"))
#set($discard = $linkObject.put('url', $thisURL ))
#set($discard = $linkObject.put('count', $topicObject.informationArray.size()))
#elseif($entityType == 'information' && $topicObject.informationArray.size() == 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-information' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($parentTopicDocRefList = $services.query.xwql($topicQueryDef).bindValue('thisKey', $topicObject.parentKey).addFilter('unique').execute() )
#foreach($parentTopicDocRef in $parentTopicDocRefList) ## we expect only one
#set($parentTitle = $xwiki.getDocument($parentTopicDocRef).getTranslatedDocument().getPlainTitle())
#set($discard = $linkObject.put('label', $parentTitle) )
#end
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.infoDisplayer&topic=${topicObject.parentKey}") )
#set($discard = $linkObject.put('url', $thisURL) )
##set($docRefList = $services.query.xwql($publicationsCountQueryDef).bindValue('thisTopicKey', $topicObject.parentKey).addFilter('unique'))
##$docRefList.size() $publicationsCountQueryDef
#set($discard = $linkObject.put('count', $services.query.xwql($publicationsCountQueryDef).bindValue('thisTopicKey', $topicObject.parentKey).addFilter('unique').count() ))
#elseif($entityType == 'story' && $topicObject.storyArray.size() > 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-stories' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.storyDisplayer&topic=${thisKey}"))
#set($discard = $linkObject.put('url', $thisURL ))
#set($discard = $linkObject.put('count', $topicObject.storyArray.size() ))
#elseif($entityType == 'story' && $topicObject.storyArray.size() == 1)
## we might have the situation that the current page is the only story with this topic
#if($topicObject.parentKey && $topicObject.parentKey != '')
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-stories' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($parentTopicDocRefList = $services.query.xwql($topicQueryDef).bindValue('thisKey', $topicObject.parentKey).addFilter('unique').execute() )
#foreach($parentTopicDocRef in $parentTopicDocRefList) ## we expect only one
#set($parentTitle = $xwiki.getDocument($parentTopicDocRef).getTranslatedDocument().getPlainTitle())
#set($discard = $linkObject.put('label', $parentTitle) )
#end
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.storyDisplayer&topic=${topicObject.parentKey}") )
#set($discard = $linkObject.put('url', $thisURL) )
#set($story1DocRefList = $services.query.xwql($storyCount1QueryDef).bindValue('thisTopicKey', $topicObject.parentKey).addFilter('unique'))
#set($story2DocRefList = $services.query.xwql($storyCount2QueryDef).bindValue('thisTopicKey', $topicObject.parentKey).addFilter('unique'))
#set($storyDocRefList = $collectiontool.union($story1DocRefList, $story2DocRefList))
#set($discard = $linkObject.put('count', $storyDocRefList.size() ))
#else
#set($discard = $linkObject.put('show', 'false' ))
#end
#elseif($entityType == 'answer' && $topicObject.answerArray.size() > 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-answers' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument('ATEPublic.topicATEDisplayer').getURL('view', "searchOrigin=topic&topic=${thisKey}&atepage=overview") )
#set($discard = $linkObject.put('url', $thisURL) )
#set($discard = $linkObject.put('count', $topicObject.answerArray.size() ))
#elseif($entityType == 'answer' && $topicObject.answerArray.size() == 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-answers' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($parentTopicDocRefList = $services.query.xwql($topicQueryDef).bindValue('thisKey', $topicObject.parentKey).addFilter('unique').execute() )
#foreach($parentTopicDocRef in $parentTopicDocRefList) ## we expect only one
#set($parentTitle = $xwiki.getDocument($parentTopicDocRef).getTranslatedDocument().getPlainTitle())
#set($discard = $linkObject.put('label', $parentTitle) )
#end
#set($thisURL = $xwiki.getDocument('ATEPublic.topicATEDisplayer').getURL('view', "searchOrigin=topic&topic=${topicObject.parentKey}&atepage=overview") )
#set($discard = $linkObject.put('url', $thisURL) )
#set($discard = $linkObject.put('count', $services.query.xwql($ateCountQueryDef).bindValue('thisTopicKey', $topicObject.parentKey).addFilter('unique').count() ))
#end
#else ## 1 or more pages needed
#if($entityType == 'information' && $topicObject.informationArray.size() > 0)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-information' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.infoDisplayer&topic=${thisKey}"))
#set($discard = $linkObject.put('url', $thisURL ))
#set($discard = $linkObject.put('count', $topicObject.informationArray.size()))
#elseif($entityType == 'story' && $topicObject.storyArray.size() > 0)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-stories' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument($publicationDocRef).getURL('view',"sheet=WaihonaCode.publicInfo.storyDisplayer&topic=${thisKey}"))
#set($discard = $linkObject.put('url', $thisURL ))
#set($discard = $linkObject.put('count', $topicObject.storyArray.size() ))
#elseif($entityType == 'answer' && $topicObject.answerArray.size() > 1)
#set($discard = $linkObject.put('iconHTML', "<span class='wai-tile-icon waihonapedia-answers' style='width: 1.25em; height: 1.25em;'> </span>"))
#set($discard = $linkObject.put('label', $thisTopicDoc.getTranslatedDocument().getPlainTitle()) )
#set($thisURL = $xwiki.getDocument('ATEPublic.topicATEDisplayer').getURL('view', "searchOrigin=topic&topic=${thisKey}&atepage=overview") )
#set($discard = $linkObject.put('url', $thisURL) )
#set($discard = $linkObject.put('count', $topicObject.answerArray.size() ))
#end
#end
#set($discard = $topicObject.put($entityType, $linkObject) )
#end
#set($discard = $topicsArray.add($topicObject))
#end ## foreach topicTag
#*
* info: $infoPageRefArray $topicsArray $topicsArray.size()
* ate $atePageRefArray
* story $storyPageRefArray
*#
#if($topicTags.size()>0 && $topicsArray.size()>0 )
<div class='meta-topics'>
<span class='meta-topics-label'>$services.localization.render('waihonapedia.meta.topics.title')</span>
<span class="topics-with-page">
#foreach($topicObject in $topicsArray)
#foreach($entityType in ['information','story','answer'])
#set($infoObject = $topicObject.get($entityType) )
#if ($infoObject.count > 0 || $entityType == $thisPageEntity )
#if($infoObject.show != 'false')
<span class="label topic-link"><a href="${infoObject.url}" target="blank"><span class='wai-tile-icon-area'>$infoObject.iconHTML</span>${infoObject.label}#if($infoObject.count > 0)<span class='badge badge-light'>$infoObject.count</span>#end</a></span>
#end
#end
#end
#end
</span>
</div>
#end
#end
{{/html}}]
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:135)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:51)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:279)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:309)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.transform(AbstractBlockAsyncRenderer.java:76)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRenderer.tranform(DefaultBlockAsyncRenderer.java:154)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRenderer.execute(DefaultBlockAsyncRenderer.java:137)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.uiextension.internal.WikiUIExtension.render(WikiUIExtension.java:200)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor$DecoratorWrapper.render(DefaultBlockAsyncRendererExecutor.java:67)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor$DecoratorWrapper.render(DefaultBlockAsyncRendererExecutor.java:49)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:113)
at org.xwiki.uiextension.internal.AbstractWikiUIExtension.execute(AbstractWikiUIExtension.java:120)
at org.xwiki.uiextension.internal.AbstractWikiUIExtension.execute(AbstractWikiUIExtension.java:108)
at jdk.internal.reflect.GeneratedMethodAccessor376.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:167)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.Foreach.renderBlock(Foreach.java:309)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:279)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:280)
at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:328)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:95)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:222)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:177)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:138)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:843)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:805)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:792)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:747)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:739)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor260.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:280)
at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:328)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:95)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:222)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:177)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:138)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:843)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:805)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:792)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:747)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:739)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor260.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:280)
at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:328)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:95)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:222)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:177)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:138)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:843)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:805)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:785)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:771)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2563)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:114)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:232)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:194)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:624)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1651)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with namespace [xwiki:WaihonaBase.uixCollections.contentFooter.waiTopicTagsUIX^XWiki.UIExtensionClass[0]]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:289)
at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:328)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:127)
... 183 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'execute' in class org.xwiki.query.internal.ScriptQuery threw exception org.xwiki.query.QueryException: Exception while executing query. Query statement = [ select doc.fullName from XWikiDocument as doc , BaseObject as topic , com.xpn.xwiki.objects.StringProperty as topic_key1 where ( topic_key1.value = :thisKey ) and doc.fullName=topic.name and topic.className='WaihonaCode.healthTopicsClass' and topic_key1.id.id=topic.id and topic_key1.id.name='key' ] at xwiki:WaihonaBase.uixCollections.contentFooter.waiTopicTagsUIX^XWiki.UIExtensionClass[0][line 210, column 133]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:308)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:235)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:108)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.Foreach.renderBlock(Foreach.java:309)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:279)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.Foreach.renderBlock(Foreach.java:309)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:279)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:280)
... 185 more
Caused by: org.xwiki.query.QueryException: Exception while executing query. Query statement = [ select doc.fullName from XWikiDocument as doc , BaseObject as topic , com.xpn.xwiki.objects.StringProperty as topic_key1 where ( topic_key1.value = :thisKey ) and doc.fullName=topic.name and topic.className='WaihonaCode.healthTopicsClass' and topic_key1.id.id=topic.id and topic_key1.id.name='key' ]
at com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.execute(HqlQueryExecutor.java:184)
at org.xwiki.query.internal.DefaultQueryExecutorManager.execute(DefaultQueryExecutorManager.java:72)
at org.xwiki.query.internal.DefaultQuery.execute(DefaultQuery.java:306)
at org.xwiki.query.xwql.internal.XWQLQueryExecutor.execute(XWQLQueryExecutor.java:117)
at org.xwiki.query.internal.DefaultQueryExecutorManager.execute(DefaultQueryExecutorManager.java:72)
at org.xwiki.query.internal.SecureQueryExecutorManager.execute(SecureQueryExecutorManager.java:67)
at org.xwiki.query.internal.DefaultQuery.execute(DefaultQuery.java:306)
at org.xwiki.query.internal.ScriptQuery.execute(ScriptQuery.java:276)
at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
... 208 more
Caused by: com.xpn.xwiki.XWikiException: Error number 0 in 3: Exception while hibernate execute
at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:835)
at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:902)
at com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.execute(HqlQueryExecutor.java:169)
... 221 more
Caused by: java.lang.NullPointerException