Metadata Plugin 2

Name Metadata Plugin 2
Vendor Andy Armstrong
Authors Andy Armstrong, Kelsey Grant
Homepage http://confluence.atlassian.com/display/CONFEXT/Metadata+Plugin
Issue Management http://developer.atlassian.com/jira/browse/META
Continuous Integration n/a
Categories Content Macros
Most Recent Version 2.1.0
Availability Confluence v2.7 to v3.0.0_01
State Stable
Support Unsupported Plugins
License Freeware / Open Source (BSD)
Price Free
Release Docs http://confluence.atlassian.com/display/CONFEXT/Metadata+Plugin
Java API Docs n/a
Download Source http://svn.atlassian.com/svn/public/contrib/confluence/metadata-plugin/tags/2.1
Download JAR metadata-2.1.0.jar

Version 2 of the Metadata Plugin provides full metadata support for spaces, users, blog posts and attachments, as well as adding support for hierarchical spaces.

Description/Features

Version 2 is a major rewrite of the Metadata Plugin that extends the functionality in a number of directions. The highlights are as follows:

Space metadata

This release adds the same metadata functionality to spaces that the previous version provided for pages. There are a lot of useful reports that you can now generate automatically from your Wiki.

e.g. a report of all the spaces, all the spaces tagged with a specific label

The main improvement over the built-in Confluence support for showing spaces is that these reports can include columns with different metadata from the space. Some examples include the space's status, its owner, its purpose etc.

Hierarchical spaces

Version 2 of the plugin also provides the ability to define space hierarchies by utilizing space metadata. By default, Confluence provides a flat list of spaces, but as your wiki grows this becomes harder and harder to manage. For example, note that the Atlassian wiki has a large number of spaces, many of which could be grouped together. There are eight general Atlassian spaces, two for Bamboo, six for Confluence etc.

This plugin allows you to create new parent spaces (say one called "Confluence") and to parent other spaces into it. You simply attach a single piece of space metadata to the home page of the space indicating the key of its parent space. Note that this metadata is used to visually group spaces, but does not affect the existing Confluence permissioning scheme.

For example, to specify that the current space is a child of the dev space, you would add this to the home page:

{parent-space}dev{parent-space}

This hierarchy metadata is now available to all the other metadata macros. For example, a new space-breadcrumb macro is provided to render a new hierarchical breadcrumb for your pages from this information. In the following screenshot, you are looking at a page in the Development space, which is under the "New Product" space, which itself is under the "Root Space".

The new breadcrumb can optionally drop the 'Dashboard' link so that the home page is itself a space. This can allow Confluence to lose its administrative feel, and hence be used as a website for people who don't need to know that they are accessing a wiki.

See "Setting up hierarchical spaces" for details.

Metadata reports for users, blog posts and attachments

In addition to all the new functionality around spaces, version 2 also provides useful functionality for generating reports for users, blog posts and attachments.

For users, Metadata can either be posted to a user's profile or to their personal space, and then reports generated. For example, every user in a company could be requested to attach personal metadata such as work phone, cell phone, location etc. A company directory can then be generated that includes all of this information.

See the users-report macro for details.

Similarly, there are two new reports available for blog posts and attachments. See the blog-posts-report and attachments-report macros.

Alternative report styles

The Metadata Plugin has been generalized to allow alternate report styles to be provided. As with other Confluence macros, the style parameter is used to control the rendering. THe possible values are:

table The old-style tabular report.
list A bare-bones list representation, useful for a concise list of content.
ol A bulleted list representation.
ul An ordered list representation.

Here's an example of the four different styles when showing a blog posts report:

Support for dates

In order to fully benefit from all of the new metadata, the plugin has been extended to add full support for dates. Internally metadata used to be stored as strings, but the code base has been generalized to allow for arbitrary data types. This means that metadata collections can be sorted by date, and that date fields can use a custom renderer so that the user's date and time format preferences are obeyed.

Currently dates can only come from internal metadata such as a blog's post date, the last modified date of a page etc. The plan is to add support for user-supplied date metadata shortly.

Additional internal metadata

The following internal metadata can now be accessed from reports:

Attachment A link to the matching attachment.
Author The author of this piece of content.
Blog Post A link to the matching blog.
Comment The comment attached to an attachment.
Comments A link to the comments for a blog, along with a count.
Creator The creator of this piece of content.
Date The date that this content was last modified.
Download A link to download the attachment.
Email The email address for the owner of a space or personal profile.
Excerpt The excerpt from the page or blog.
File Size The size of an attachment.
File Type The attachment's file type.
Last Changed By The user that last changed this content.
Last Time Changed The time that this content was last changed.
Page A link to the matching page.
Parent A link to the parent of this page.
Posted The date that this piece of content was posted.
Poster A link to the user that posted this piece of content.
Size The size of the matching attachment.
Space A link to the space that this content belongs too.
Time The time that this content was last modified.
Time Created The time that this content was created.
Title The title of this piece of content.
Type The type of the attachment.
User The user that created this piece of content.
Version The version number of this piece of content.

Issues addressed

This release addresses a few of the issues reported against version 1:

Issue Summary Votes
META-44 Unable to install the Plugin with Confluence 2.3 7
META-24 Ability to do a report over profiles 0
META-13 Add the ability to poll Last Modified Date and User to reporting macros 3

In addition, the following general Confluence issues are addressed (some only partially):

Issue Summary Votes
CONF-5385 Provide {blog-posts} option to show concise list of titles 5
CONF-1095 Nested Spaces 59
CONF-2460 Home Page 8
CONF-4429 Breadcrumbs don't need to show space name and home page name when 'View Space Goes to Browse Space' is not set 9
CONF-5795 Breadcrumbs shouldn't hyperlink the current page 5

Usage

Metadata macros

The plugin provides the following new macros:

space-metadata Adds one piece of metadata to the space.
space-metadata-list Adds a list of metadata values to the space.
space-metadata-from Shows a metadata value from a space.
spaces-report Shows a tabular report of metadata from matching spaces.
space-hierarchy Shows a tree representation of the space hiearchy from the current space.
space-breadcrumbs Shows a tabular report of metadata from matching spaces.
users-report Shows a tabular report of metadata from matching user profiles and/or spaces.
attachments-report Shows a tabular report of metadata from matching attachments.
blog-posts-report Shows a tabular report of metadata from matching blog posts.

space-metadata macro

This lets you attach a single piece of metadata to a space (see the original metadata macro for the equivalent functionality for pages).

For example:

{space-metadata:location}Bedford, MA{space-metadata}

would render simply as:

Bedford, MA

but would also attach "location" as a piece of metadata to the page. Note that as with the other metadata macros, the metadata is stored as unrendered Wiki markup. The reporting macros then render the markup into the page they are used on. This usually works very well because links, emoticons etc can be used.

If you don't want the metadata to show on the page you can use the "hidden" parameter.

{space-metadata:location|hidden=true}Bedford, MA{space-metadata}

space-metadata-list macro

This macro allows the user to attach multiple pieces of metadata to a space with one macro. The main purpose of this is to make it allow a user to add metadata more concisely and to make the Wiki markup easier to read.

The following usage:

{space-metadata-list}
|| Location | Bedford, MA |
|| Extension | x1234 |
|| Cell Phone | 617 123-4567 |
{space-metadata-list}

adds three pieces of metadata to the space, as well as rendering the following output:

Location Bedford, MA
Extension x1234
Cell Phone 617 123-4567

An optional orientation=horizontal parameter changes the rendering to be horizontal. It will then render as follows:

Location Extension Cell Phone
Bedford, MA x1234 617 123-4567

space-metadata-from macro

This is a simple macro that can pull one piece of metadata from a space.

This space's owner is {space-metadata-from:Owner}

will just display as:

This space's owner is Andy Armstrong.

spaces-report macro

As with the standard metadata-report, this macro allows you to generate a report detailing the metadata attached to the matching spaces. There are a large number of internal metadata types that can be used, plus custom metadata can be attached using the space-metadata and space-metadata-list macros.

Here's a sample

{spaces-report:Space,Owner,Purpose,Last Changed By,Last Time Changed|sort=Last Time Changed desc}

which produces this result:

space-hierarchy macro

This is a very simple macro that shows the hierarchy beneath the current space.

For example:

h2. Spaces
{space-hierarchy}

shows this:

In addition, you can show the hierarchy beneath a different space using the space argument:

{space-hierarchy:space=dev}

space-breadcrumbs macro

This is a very simple macro that will add breadcrumbs to a page. In particular, it analyzes the space hierarchy information so that it includes all of the parent spaces up to the root space.

You can control the display of the breadcrumb using an optional second parameter. It can take any of the following three values:

dashboard Includes the standard 'Dashboard' link at the start of the breadcrumb
home Shows the 'Home' link in addition to the link to the space itself
dashboard+home Includes both 'Dashboard' and 'Home' links in the breadcrumb

By default, neither the 'Dashboard' link nor the 'Home' link are shown. Note that you should be careful before removing the 'Dashboard' link to make sure that all of the required functionality is available elsewhere in your site. I would suggest including the 'Dashboard' link initially until you are ready to give it up. Probably the best place to put it is in your root space, either on the home page or on an "Administration" subpage.

_Note: I plan to provide an example page that replicates all of the dashboard functionality.

users-report macro

As with the other report macros, you can generate a report of all the users, showing any metadata attached to the user. For users with personal spaces, the metadata is fetched from the space, while for regular users the metadata is fetched from their profile.

Here's a sample

{users-report:User,Location,Email,Extension,Cell Phone}

which produces this result:

blog-posts-report macro

As with the other report macros, you can generate a report of all the blog posts in a particular space. Here's some sample usages, which illustrate some of the different report styles.

h4. Table
{blog-posts-report:Title,Date,Time,Author,Comments,Time Created|sort=Time Created desc|maxResults=5}

h4. Plain list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=list}

h4. Unordered list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=ul}

h4. Ordered list
{blog-posts-report:Title|sort=Time Created desc|maxResults=5|style=ol}

and here is the resulting page:

attachments-report macro

As with the other report macros, you can generate a report of all the attachments on a single page. Here's an example usage:

{attachments-report:Attachment,Title,File Type,Size,Version,Download,Creator,Date,Time|sort=Time desc}

and here's how it looks on my home page:

Setting up hierarchical spaces

There are four steps to setting up Confluence for hierarchical spaces:

  1. Create a root space
  2. Create a 'Users' space
  3. Add parent metadata to every other space
  4. Update the breadcrumb

Create a root space

The first thing to do is to decide upon a root space. Most non-hierarchical Wiki installations would not currently have a root space, so in that case you should create one. It should probably have the same name as the Wiki itself, because it will be shown as the root of the breadcrumb. e.g. Progress Software's wiki now has a space called "Progress Wiki". Remember the space key designated for this space as that will be needed in subsequent steps.

I also recommend setting the root space to be the site home page for your site. You can set this in the Administration page, under Configuration/General Configuration.

Create a 'Users' space

In addition to having a root space, it seems to be useful to also have a users space. This is conceptually the parent space of every personal space, and helps to provide another level of structure. Note that this step is optional.

If you want a user space, you should put the following metadata into the home page (note that 'root' should be replaced with your root space's key):

{parent-space}root{parent-space}
{users-space}

You might also want to put a user report directly onto this page, assuming that you don't have many users. Something like this:

{users-report:User,Location,Email,Extension,Cell Phone}

Eventually this will provide a pageable report of all the users, but currently it shows every single user, so be careful!

Add parent metadata to every other space

Now you should go through all of your existing spaces and attach the parent space information to every page. For each space, find the space key of the parent, and then change the home page of the space to include:

{parent-space}PARENT_SPACE_KEY{parent-space}

Updating the breadcrumb

Unfortunately the plugin cannot directly change the site breadcrumb. Instead a new macro called space-breadcrumbs has been provided, and it has to be manually installed into your main site velocity template. Edit the Main Layout (found in the Administration page, under Look and Feel/Layouts) and replace the reference to:

<span class="topBarDiv"> #breadcrumbs() </span>

with:

#if ($spaceKey != '')
  $helper.renderConfluenceMacro("{space-breadcrumbs:$spaceKey:$title|dashboard}")
#else
  <span class="topBarDiv"> #breadcrumbs() </span>
#end
Some older version of Confluence call the variable $spacekey instead of $spaceKey, so the two references in the code above should be updated.

You can configure the display of the breadcrumb by specifying parameters to the space-breadcrumbs macro.

Version History

  • 2.0.0 - Initial release
  • 2.0.1 - Adds support for dates, blog posts and attachments and new renderers
  • 2.1.0 - Compatibility with Confluence 2.7. Note I have not back-tested this for compatibility, so it probably works a long way earlier than the indicated version.

Future Improvements

I hope to have the following functionality added in time for my Confluence entry:

  • Provide support for paging through large result sets
  • Ability to change the titles of columns (META-39)
  • Ability to use boolean logic when matching spaces, users and blog posts in reports

Slightly longer term I'm thinking about:

  • Allow the space hierarchy metadata to be edited as properties, rather than entered into Wiki pages

Screenshots

Labels

codegeist_2007_confluence codegeist_2007_confluence Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. May 11, 2007

    Guy Fraser says:

    Sweet! If you could make the space-breadcrumbs macro default to the current spa...

    Sweet!

    If you could make the space-breadcrumbs macro default to the current space it could be used in sites themed with Adaptavist Theme Builder by simply replacing the builder-breadcrumbs macro in the Navigation panel

    Guy

  2. May 14, 2007

    Stuart Gilberd says:

    I'm getting a lot of: "Unable to show "metadata-matches" java.lang.NullPointerE...

    I'm getting a lot of:

    "Unable to show "metadata-matches"
    java.lang.NullPointerException"

     Messages in my old content (copied from our confluence 2.2.7 with metadata 1.6 to our new test system running confluence 2.5.1) - all the other macros seem to be working fine.  Is there any thing I need to change to get metadata-matches working?

    1. May 14, 2007

      Andy Armstrong says:

      Hi Stuart, My testing missed this problem, but I can indeed reproduce the NullP...

      Hi Stuart,

      My testing missed this problem, but I can indeed reproduce the NullPointerException on my machine. I'll work on a fix for tomorrow if possible.

      Sorry for the inconvenience,

      • Andy
      1. May 14, 2007

        Stuart Gilberd says:

        Thanks so much Andy, I appreciate it. I'll look out for the new version tomorro...

        Thanks so much Andy, I appreciate it.

        I'll look out for the new version tomorrow.

        1. May 14, 2007

          Stuart Gilberd says:

          And by tomorrow I mean when you get the time Sorry misread your post.

          And by tomorrow I mean when you get the time Sorry misread your post.

          1. May 14, 2007

            Andy Armstrong says:

            Well, that was easy. I've uploaded a fixed version now. The repository should up...

            Well, that was easy. I've uploaded a fixed version now. The repository should update within an hour.

            Let me know how it goes.

            • Andy
            1. May 15, 2007

              Stuart Gilberd says:

              that did the trick - thanks Andy

              that did the trick - thanks Andy

  3. May 20, 2007

    Stuart Gilberd says:

    The pages attribute seems to have changed I'm getting a lot of these: Unknown p...

    The pages attribute seems to have changed I'm getting a lot of these:

    Unknown pages code '@descendants'"

    Should I log this as a bug? 

    1. May 20, 2007

      Stuart Gilberd says:

      It looks like a change of spelling: @descendants has become @descendents

      It looks like a change of spelling: @descendants has become @descendents

      1. May 20, 2007

        Stuart Gilberd says:

        I see there is already a Jira ticket in for this: META-52

        I see there is already a Jira ticket in for this: META-52

        1. May 29, 2007

          Andy Armstrong says:

          For those who aren't watching META-52, this was fixed with version 2.0.3 a week ...

          For those who aren't watching META-52, this was fixed with version 2.0.3 a week or so ago.

  4. May 29, 2007

    Ray Johnson says:

    I'd like to get a spaces-report of all spaces that match a paticular team label....

    I'd like to get a spaces-report of all spaces that match a paticular team label.  Is that possible with this plugin?

    1. May 29, 2007

      Andy Armstrong says:

      Hi Ray, Yes, this works as you would expect. You just have to use the special t...

      Hi Ray,

      Yes, this works as you would expect. You just have to use the special team label syntax of team:TEAM_LABEL.

      e.g. I just used this to list all of the engineering spaces:

      {spaces-report:Status,Space,Date,Last Changed By|label=team:engineering}
      

      Let me know if you have any problems with this.

      Cheers,

      • Andy
      1. Sep 19, 2007

        Martijn Danse says:

        Is it also possible to somehow only report global spaces and leave out any perso...

        Is it also possible to somehow only report global spaces and leave out any personal spaces.

        Thanks,

        Martijn

        1. Sep 20, 2007

          David Dembo says:

          According to this comment, you can reference metadata with the Reporting Plugin ...

          According to this comment, you can reference metadata with the Reporting Plugin using the Data Supplier. I'm not sure if this could reference space metadata, but if you desperately need this functionality you might want to experiment...

          e.g. use a {space-reporter} macro to grab all spaces, then use a {boolean-filter} to filter out personal spaces (see the Space Supplier), and then use the data supplier to populate columns in the report table with space metadata.

          1. Mar 08, 2008

            Bill Bennett says:

            Has anyone confirmed that one can include Space Metadata in a report created wit...

            Has anyone confirmed that one can include Space Metadata in a report created with the Reporting Plugin?

            I am trying to organize my spaces by Location, Team, Project ID, Type, and Status. I have successfully attached this space metadata and can use the space-reporter to show a table of this information for all spaces.

            But I am going to have large amounts of spaces so I need to get a little more complex with it and filter the results down. I need to have a report, for example, that will show all of the Chicago and San Francisco spaces for Jim's team that have an "Active" status. On that report I'd like to list space meta data like Project ID's and Types.

            Am I barking up the right tree in general? Is some combo of MetaData 2 and Reporting Plugin's the way to go? Should I be looking into Scaffolding?

            1. Mar 08, 2008

              David Peterson [CustomWare] says:

              I would be somewhat surprised if reporting supported using space metadata - I be...

              I would be somewhat surprised if reporting supported using space metadata - I believe it currently expects metadata to only be present in pages and news items.

              With regards to Scaffolding, you can only really use that on pages, so it won't work too well at the space level either.

              I have a feeling that getting it working on space metadata will be a simpler task, but isn't currently implemented. If it's something you'd like to see in a future version, the best thing is to create a feature request so it will be on the radar for the next release.

  5. Jun 04, 2007

    James Mortimer says:

    {metadata-from:Title|pageX}{metadata-from:Excerpt|pageX} still gives the titl...
    {metadata-from:Title|pageX}{metadata-from:Excerpt|pageX}

    still gives the title from pageX, but no longer gives the excerpt for pageX.

    1. Jun 07, 2007

      Damon Rand says:

      Hi, We too lose our excerpts when we upgrade to the metadata2 plugin.. We ar...

      Hi,
      We too lose our excerpts when we upgrade to the metadata2 plugin.. We are running Confluence 2.4.2 right now.

      Damon.

  6. Jun 14, 2007

    Ross Sharrott says:

    Is anyone having trouble with addition and sorting of decimals?  I have a m...

    Is anyone having trouble with addition and sorting of decimals?  I have a metadata report that pulls sales results from individual salesmen's pages.

    The problem is that the addition sometimes returns really long decimals even though the inputs only go out to 4 digits.

    Also, sorting on whole numbers seems fine, but decimals sometimes sort out of order.

    Example:
    Input: 4.416
    Input: 3.45
    Input: 2.16
    Input: 2.45
    Total: 17.875999999999998

    I opened a Jira bug: meta-55
    Anyone else encountered this problem?

  7. Jun 18, 2007

    Kerry Geiger says:

    I'm trying to use the space-metadata-from macro on my dashboard by using the hel...

    I'm trying to use the space-metadata-from macro on my dashboard by using the helper:  $helper.renderConfluenceMacro("")

     and I'm getting a java.lang.NullPointerException error. Is there a way to do this?

    It would change my life.

    1. Jun 18, 2007

      Andy Armstrong says:

      The problem is that when you render a macro like that, it doesn't have the page ...

      The problem is that when you render a macro like that, it doesn't have the page context, so it can't determine the space for itself. Try doing:

      #helper.renderConfluenceMacro("space-metadata-from:$spaceKey")
      

      I haven't tried this, but it should work.

      • Andy
      1. Jun 19, 2007

        Kerry Geiger says:

        Thanks Andy. I found the the following renders correctly on the dashboard, it s...

        Thanks Andy.

        I found the the following renders correctly on the dashboard, it seems like order of parameters was important:

        $helper.renderConfluenceMacro("{metadata-from:spacekey:Page Name|metadata}")

        When I used space-metadata-from I got an error.

        Thank you for your help and your plugin rocks!

        • Kerry
  8. Jun 25, 2007

    Jacqueline Leslie says:

    Hi, I am trying to create a template based on the metadata-list such as: {...

    Hi,

    I am trying to create a template based on the metadata-list such as:

     
    {metadata-list}
    ||Term | Enter the term|
    ||Acronymn | Enter the Acronymn|
    ||Description | Enter a Description|
    ||Source | Enter the Source |
    {metadata-list}
    

    But I get this:

     
    {warning:title=Unable to show "metadata-list"}Attempted to set metadata value  for null ContentEntityObject{warning}
    

    I am using 2.5.4. 

    Any ideas why this is occuring?

    Thanks, Jackie.

  9. Jul 05, 2007

    David Aldrich says:

    Hi, we have a problem with the space-hierarchy macro. Our Server Base URL ...

    Hi,

    we have a problem with the space-hierarchy macro. Our Server Base URL is:

    https://aaa.bb.cc.dd/confluence

    But the URLs created by the space-hierarchy macro strip '/confluence' from the URL. For example:

    https://aaa.bb.cc.dd/confluence/display/RsdInv

    becomes

    https://aaa.bb.cc.dd/display/RsdInv

    So the links fail. Is this a bug in the macro or are we using it incorrectly?

    David

    1. Jul 10, 2007

      chris m says:

      Hi, we have exactly the same problem. chris

      Hi,
      we have exactly the same problem.
      chris

      1. Jul 10, 2007

        Andy Armstrong says:

        It looks like it is a bug in the plugin. It uses: space.getUrlPath() to ...

        It looks like it is a bug in the plugin. It uses:

        space.getUrlPath()
        

        to generate the URL, but I guess that is only the relative URL from the root of the site.

        I'm on vacation for a month, but I'll look into this in August. Please report it as a bug in JIRA:

        http://developer.atlassian.com/jira/browse/META

        Thanks,

        • Andy
        1. Jul 10, 2007

          David Aldrich says:

          Thanks. Raised in Jira as META-62 'Space-hierarchy macro generates incorrect url...

          Thanks. Raised in Jira as META-62 'Space-hierarchy macro generates incorrect url':

          http://developer.atlassian.com/jira/browse/META-62

    2. Aug 10, 2007

      Imtiaz B Syed says:

      For those who are having problem please take the updated jar from the attachment...

      For those who are having problem please take the updated jar from the attachment Metadata2.jar

      1. Aug 17, 2007

        Joey Potter says:

        Hi, the Metadata2.jar works fine for the space hierarchy in the breadcrumbs. It...

        Hi,

        the Metadata2.jar works fine for the space hierarchy in the breadcrumbs. It fails, however to handle the page hierarchy correctly. From the links of the pages the last part is still stripped off of the Server Base URL.
        Am I doing something wrong or is this another bug? 

        Best Regards,
         Joey

      2. Sep 10, 2007

        David Aldrich says:

        Hi Imtiaz Your update fixes our problem; thanks. Please will you arrange for th...

        Hi Imtiaz

        Your update fixes our problem; thanks. Please will you arrange for the fix to be merged into the official release?

        David

  10. Jul 09, 2007

    sunshine says:

    Support for hierarchical spaces is just what the doctor ordered. A couple of con...

    Support for hierarchical spaces is just what the doctor ordered. A couple of concerns, though:

     1. Implementing them via metadata within markup makes space creation harder (I have to remember to put the markup in and what the parent's key is). This can cause problems if space creation is decentralized among non-tech users.

    2. Implementing them via metadata within markup means a space can get lost if someone edits the markup and deletes the metadata.

    This may just be a long-winded way of petitioning Atlassian to make hierarchical spaces part of the product, but does anyone have any thoughts on these issues?

    1. Jul 10, 2007

      Andy Armstrong says:

      I agree with your concerns. My feeling was that I was tired of waiting for Atlas...

      I agree with your concerns. My feeling was that I was tired of waiting for Atlassian to implement the feature, since they've been quite clear so far that they don't like the idea:

      http://jira.atlassian.com/browse/CONF-1095

      We desperately wanted it as our Wiki is growing exponentially, so this was the quickest way for me to build it.

      When I next get some time to work on the plugin, I was hoping to make the hierarchy information be editable from the space admin page, so that you wouldn't have to do it through Wiki syntax. This is for both the reasons you list above. Would that be satisfactory for you?

      Thanks,

      • Andy
      1. Aug 29, 2007

        David Dembo says:

        If I may suggest a slight variation on this idea - allow administrators to speci...

        If I may suggest a slight variation on this idea - allow administrators to specify (via the plug-in's Configure link in Global Administration) which users/groups are allowed to alter a space's place in the site's hierarchy (which could be done via the Space Admin section and/or the Global Administration page).

        With this approach it allows control of the site's hierarchy to be separated from administration of other aspects of the space - e.g. Joe Bloggs can manage the content within a Products space, without the web design team waking up in a cold sweat worrying about whether or not he's going to break the company web site.

        It'd also be nice to have a separate permission (configurable in the same manner described above) for other space metadata - e.g. Joe Bloggs can't break the site's hierarchy, but he can add/remove custom fields to his space to his heart's content.

        While I'm at it - a couple more ideas for consideration:

        1. It'd be great if metadata declarations could be separated at a page level too, also with configurable permissions as per above if possible. An idea I had the other day was to have a section on the 'Info' tab that displayed metadata for people without permissions to edit it, and allowed people with appropriate permissions to add/remove/modify fields.
          This would allow users to be given edit access to pages that might otherwise have to be restricted to ensure the integrity of important metadata fields. A toggle to show/hide 'internal' metadata would also be fantastic.

        2. I'd love to see the concept of 'inherited' metadata implemented - e.g. the ability to specify that a metadata field & value defined on one page should be inherited by any children. If this were possible at a space and/or site level as well it'd be even better... this would open the door to all sorts of funky things like effectively creating your own 'internal' metadata values.
  11. Jul 17, 2007

    Hodicska Gergely says:

    Hi all, I am newbie to Confluence. I read about the metadata plugin, and it s...

    Hi all,

    I am newbie to Confluence. I read about the metadata plugin, and it seems very interesting. I have to control a documentation project and I tought that it would be great to set a metadata with the date of the review, anf then to create a report which lists the pages where the last changed date is bigger than the date of the review (or where this is not presented).

    Is it possible with metedata plugin, or is there any easier solution for this task?

    Thanks everyone in advance.
    Best regards,
    Felhő

  12. Jul 19, 2007

    Stefan says:

    Is it possible to report all pages with a specific label and export them e.g. to...

    Is it possible to report all pages with a specific label and export them e.g. to pdf like it is possible in the "Browse Space -> Export Space" section ?

    1. May 20, 2008

      Helene says:

      Stefan - Did you find a solution to this?  I don't see a reply here. I am ...

      Stefan - Did you find a solution to this?  I don't see a reply here.

      I am looking for similar functionality and have not yet found a good solution.  Anything you can tell me would be much appreciated!

  13. Jul 27, 2007

    Britt Treece says:

    I want to limit the spaces-report to global spaces only. Is there a way to do t...

    I want to limit the spaces-report to global spaces only. Is there a way to do this?

  14. Aug 15, 2007

    Joey Potter says:

    Hi, I can't find a way to display the description provided for the space by the...

    Hi,

    I can't find a way to display the description provided for the space by the space admin using the spaces-report macro. I want to avoid having the space admin provide the description in the space details, and another one using the spaces-metadata macro somewhere in the page. Is there a way use the description from the space details?

    Thanks everyone in advance.

    Best regards,

     Joey 

  15. Aug 22, 2007

    Simeon Hopkins says:

    Hi, When using the Unable to render macro: Required parameter "0" not provided ...

    Hi,

    When using the

    Unable to render macro: Required parameter "0" not provided
    macro as in the example given above

    {spaces-report:Space,Owner,Purpose,Last Changed By,Last Time Changed|sort=Last Time Changed desc}
    

     what exactly do "Last Changed By" and "Last Time Changed" report?  I have tried this example creating metadata for "owner" and "Purpose" and these report correctly.  "Last Changed By" and "Last Time Changed" provide a name and a date but it is not clear what they mean.  They are not the last time any page in the space was edited and by whom, they are not when the space was created and they are not when the details of the space were last changed using space admin.   So  what are they?

     Best Regards

    Simeon 

  16. Aug 26, 2007

    Stuart Gilberd says:

    Does anyone have any performance suggestions when using this plugin?  Any c...

    Does anyone have any performance suggestions when using this plugin?  Any caches we should be watching?  We use it extensively on our wiki and pages that use it in any reasonable capacity are much slower than others. 

     Our database has all the recommended Indexes on it and when our DBA profiled the database requests related to a page and only a small percentage of time was spent in the database - a lot of the time was plugin + confluence processing the page.

    We recently upgraded our wiki server in the hope that we would gain big performance gains - unfortunately the gains weren't huge.  Our current server is a dual 4 core 2.66GHz server with 16GB of RAM.

  17. Aug 27, 2007

    Ki Alam says:

    Is it possible to access metadata via bean shell scripts? Does someone have a si...

    Is it possible to access metadata via bean shell scripts? Does someone have a simple example? thanks!

  18. Aug 29, 2007

    David Dembo says:

    JIRA seems to be having a fit at the moment so I can't see if there's an issue a...

    JIRA seems to be having a fit at the moment so I can't see if there's an issue already logged for this or not, but has anyone else noticed any problems with the {space-hierarchy} macro? The space= parameter doesn't appear to work. I've also tried spaceKey, spacekey, and just a value without success. As an example, say you have 4 spaces in the following hierarchy:

    • Space 1 (key=S1)
      • Space 2 (key=S2)
      • Space 3 (key=S3)
        • Space 4 (key=S4)

    In Space 1, {space-hierarchy} returns the full hierarchy as expected. However, {space-hierarchy:space=S3} also returns the full hierarchy from Space 1 downwards.

    In space 2, {space-hierarchy} returns only Space 2 as expected. However, {space-hierarchy:space=S1} also returns only Space 2 and not the full hierarchy.

    I've also tried rebuilding the search index without any success.

    1. Oct 11, 2007

      Bryan Landerman says:

      I'm noticing the same issue.  Andy...any ETA on a fix for this?

      I'm noticing the same issue.  Andy...any ETA on a fix for this?

  19. Aug 31, 2007

    Sander van den Berg says:

    I have a problem with the space-hierarchy macro. I did something wrong (made par...

    I have a problem with the space-hierarchy macro. I did something wrong (made parent space same as current space). Now on every page with the space-hierarchy macro included, the page content is not visible anymore (only a header, but no buttons). In preview mode the macro gives the following error:

    Error formatting macro: space-hierarchy: java.lang.StackOverflowError

    I already restarted Confluence, disabled/enabled and uninstalled/installed the plugin, but it doesn't help...

    Does anybody have tips to solve this?

    1. Sep 18, 2007

      David Dembo says:

      Hi, I've got this same problem - however, I have not done anything like accident...

      Hi, I've got this same problem - however, I have not done anything like accidentally making a space its own parent etc. I double and triple-checked each version of these pages and I'm 100% certain of this - I just set up a hierarchy from scratch (being careful not to make errors) and updated the breadcrumbs as per the instructions above.

      I've created a bug report (META-70).

      Edit: To clarify, this is on a separate installation to the one that formed the basis of my previous comment.

    2. Oct 17, 2007

      Bryan Landerman says:

      I am also seeing this issue intermittently. I'm using the space-breadcrumbs mac...

      I am also seeing this issue intermittently. I'm using the space-breadcrumbs macro and every now and then I'll get "Error formatting macro: space-breadcrumbs: java.lang.StackOverflowError" in  place of the breadcrumbs. It eventually goes away but we lose navigation during that time. Any idea why this is happening?

  20. Sep 21, 2007

    James Mortimer says:

    Anybody wanting to see a 'NOT' implemented in the metadata-report labels paramet...

    Anybody wanting to see a 'NOT' implemented in the metadata-report labels parameter for this plugin, as one of the first enhancements whenever development picks up again, please vote for this request:

    http://developer.atlassian.com/jira/browse/META-48

  21. Oct 01, 2007

    Carlos Caballero says:

    Andy, I am trying to use the user macro, to list users and their profile informa...

    Andy, I am trying to use the user macro, to list users and their profile information. The report takes a LONG time to run, which is understandable, but when it comes back it shows me only the first 500 of a couple of thousand users. My questions:

    • Do I have any way of asking for all the users? Or is the macro defaulting to an internal limit?
    • Is there a way I can limit the report to a list of AD groups? That would let me circumvent the maximum by listing smaller groups individually
      Cheers, and thanks for a GREAT contribution!
  22. Oct 25, 2007

    Thomas Drevon says:

    I'm trying to write a velocity macro that invokes the [metadata-from] macro on a...

    I'm trying to write a velocity macro that invokes the [metadata-from] macro on a page, but $action.getGlobalHelper().renderConfluenceMacro("[metadata-from:MyData]") seems to render in the wrong context. Is there a way to get a map of the metadata for a page using the java api from velocity? I'm thinking along the lines of:

    #set( $metadataMap = $content.getMetaDataForPage())

  23. Dec 05, 2007

    Appan Ponnappan says:

    We have created additional user fields (e.g. Role) in the user profile by using ...

    We have created additional user fields (e.g. Role) in the user profile by using the "user Information" plugin. But when we try to use these fields in the users-report macro, nothing is getting listed, even though the document syas that: "... regular users the metadata is fetched from their profile.".

    We are using the macro as:

    {users-report:User,Role}
    

    Is this a bug in the plugin?

    1. Dec 05, 2007

      Andy Armstrong says:

      I've never seen the "User Information" plugin before, so it is definitely not a ...

      I've never seen the "User Information" plugin before, so it is definitely not a bug. I think it is just that this plugin uses a different mechanism for adding metadata than the Metadata Plugin. Please submit a feature request here if you'd like to see this supported:

      http://developer.atlassian.com/jira/browse/META

      Thanks,

      • Andy
  24. Dec 06, 2007

    David Dembo says:

    Suggestion - can the Metadata+Plugin+2 and Metadata+Plugin pages be merged into ...

    Suggestion - can the Metadata+Plugin+2 and Metadata+Plugin pages be merged into a single page?

    At the moment, if I want to refer to the list of 'internal metadata' and look at the syntax for {metadata-report} for example, I have to switch between two separate pages that are both pretty slow to load. To me it doesn't make sense to have macros that are part of a plug-in documented on a separate page. It also results in comments being split over 2 separate pages, etc.

    Come to think of it, is there any reason why the original Metadata Plugin is still available for download via the repository?

  25. Dec 18, 2007

    James Mortimer says:

    Please vote for this issue: metadata-list is broken when it's not the first m...

    Please vote for this issue:

    • metadata-list is broken when it's not the first macro on the line.
    • using rich text editor often puts metadata on the 'previous' line

    http://developer.atlassian.com/jira/browse/META-64

  26. Jan 23, 2008

    Jeff Williams says:

    I keep seeing this in my logs: Plugin module org.andya.confluence.plugins.meta...

    I keep seeing this in my logs:

    Plugin module org.andya.confluence.plugins.metadata:metadata-extractor is incompatible with this version of Confluence. You will need to upgrade to a newer version of the Metadata Plugin plugin. java.lang.NoSuchMethodError: org.apache.lucene.document.Field.Text(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/lucene/document/Field;

    As you may guess, metadata isn't working as well. Anyone see this before?

  27. Jan 23, 2008

    David Dembo says:

    I was just digging through the 'Plugins' section of our Global Administration Co...

    I was just digging through the 'Plugins' section of our Global Administration Console, and noticed that the Metadata plugin has a {relative-link} macro which doesn't seem to be documented anywhere. The description simply says "Macro allowing a relative link to be specified." What exactly does this macro do???

  28. Jan 31, 2008

    john futcher says:

    there is a little conflict above as to which way round the Parent-space macro sh...

    there is a little conflict above as to which way round the Parent-space macro should be used...

    under Hierarchical spaces it says
    For example, to specify that the current space is a parent of the dev space, you would add this to the home page:

    {parent-space}dev{parent-space}

    i.e you tell the parents who their children are.

    but under Setting up hierarchical spaces it says
    Add parent metadata to every other space
    Now you should go through all of your existing spaces and attach the parent space information to every page. For each space, find the space key of the parent, and then change the home page of the space to include:

    {parent-space}PARENT_SPACE_KEY{parent-space}

    i.e. you tell the children who their parents are

    so which way round is it?

    1. Jan 31, 2008

      Andy Armstrong says:

      Hi John, Sorry about the confusion. The correct answer is that you tell a space...

      Hi John,

      Sorry about the confusion. The correct answer is that you tell a space who its parent is, which is why the macro is called parent-space. This is because every space has only one parent, but a space can have many child spaces.

      I'll fix the incorrect description.

      Thanks,

      • Andy
  29. Jan 31, 2008

    john futcher says:

    thanks for sorting out the ambiguity. the next question is, where i have a larg...

    thanks for sorting out the ambiguity.

    the next question is, where i have a large number of spaces that i want to group under a single space and then show an index of them.  is there any way of restriction a hierarchy report to just those starting "A", "B" etc.

    My alternative is to create 26 spaces - A, B, C etc, and make them the children of my index space,and the parents of the individual spaces according to their initial letter, but that's a bit of a hassle.

    any thoughts??

  30. Jan 31, 2008

    john futcher says:

    giving a  Confluence Extensions method an experiment.  but whilst t...

    giving a

     Confluence Extensions
    method an experiment.  but whilst this successfully reports all the children of the "J" space, it also lists the parent of the J space as well,  I wasnt expecting that.

    Is there any way of suppressing the actual J space in the hierarchy report, i.e. just list "J"'s children?

    1. Jan 31, 2008

      David Dembo says:

      You could try using the Reporting Plugin to rig something up - from memory you c...

      You could try using the Reporting Plugin to rig something up - from memory you can use 'data:<metadata>' to grab metadata, and I seem to remember the hierarchy data being stored under the metadata key "Parent" or similar.

      One piece of advice - be very careful using these hierarchical spaces macros/etc in a production environment... while testing I found that they were very prone to breaking navigation - permanently - even after uninstalling/reinstalling the plugin.

      I ended up hard-coding the hierarchy within the <content tag="breadcrumbs"> tags of the space & page layouts... e.g. if current space is space1, space2 or space3, breadcrumbs = hard-coded > space > ancestry > page, etc... a practical option in our case since our hierarchy is quite simple. If you're game enough to play around with $page.ancestry you can even replicate the 'suppress home page link' functionality.

      PS - wrap macro examples in a {noformat} macro.

  31. Feb 12, 2008

    Jeff Branc says:

    i just started using this with Conf 2.7.1. The space hierarchy macro worked onc...

    i just started using this with Conf 2.7.1. The space hierarchy macro worked once. then i tried to do the root thing and now all calls to space-hierarchy produce a System Error and prevent any access at all to my space, which is quite a problem to have.

    Cause:

    org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:626)
    there was nothing in the stack trace that seemed to point your way, but if i hit the 'back' button and remove the hierarchy tag, its all good.

    any ideas? maybe i'm using it wrong. there are some points of abiguity:

    what qualifies something to be a root space? is it any space that refers to itself as the spacekey in parent-space macro?

    its ok for a space to show the hierarchy starting from itself on down without being the root, right? that seemed to be the point when things when south.

    finally:

    any thoughts on extending this to pages in a space? another key point where Confluence falls down is providing easy access/navigation to pages in a given site.

    additional note: this forum discussion may be helpful:

    http://forum.springframework.org/showthread.php?t=20943 

    1. Feb 13, 2008

      David Dembo says:

      any thoughts on extending this to pages in a space? another key point where Conf...

      any thoughts on extending this to pages in a space? another key point where Confluence falls down is providing easy access/navigation to pages in a given site.

      What do you mean exactly? Each page has a list of children at the bottom of it by default, and there is an expandable/collapsible tree to navigate the full hierarchy in the 'Browse Space' section... or have I completely missed your point?

      Regarding the hierarchical spaces - as I mentioned above, it's extremely buggy... your issue with the macro working once and then erroring every subsequent time is exactly what I experienced. From the nature of the issue it seems almost as if one or more of the hierarchical spaces macros are mangling an object's properties or attributes somewhere... which would probably explain why it remains permanently broken even after restarting Confluence and disabling/re-enabling the plug-in.

      1. Feb 13, 2008

        Jeff Branc says:

        i guess i was hoping this would work, because without it things are just....conf...

        i guess i was hoping this would work, because without it things are just....confusing.  i'm very fearful of how the OOB usability issues will affect adoption as i prepare this to go company-wide. Thanks for the tip -  I suppose now I'm going to have my hands full with lunch-n-learns

        regarding the pages: a (by default) hidden list of child pages at the bottom of a very long page != navigation.  Also clicking Browse Space...Pages...Expand List of Pages...Click Page does not either.  Left Nav theme is close, but needs a permanent hierarchy of space pages in order for folks to know about and navigate to pages without willfully hunting around (and needs to have its menus expanded by default - relying on the curiosity of others to click around is a good way to frustrate them).

        i know i'm not alone in this because nearly every confluence site i see has done something manual/custom to let folks navigate around.  Heck even the default Demonstration Space has a manual list of links on the home page!  that to me is not scalable/maintainable.  sorry for the rant - this is my current source of pain

        1. Feb 13, 2008

          David Dembo says:

          Yeah, we've got plans for a major theme overhaul in the works too, and we'll be ...

          Yeah, we've got plans for a major theme overhaul in the works too, and we'll be re-designing the navigation from scratch... in the meantime I played around with the built-in breadcrumbs to make things slightly better.

          In page.vmd and space.vmd you'll see a set of <content tag="breadcrumbs"></content> tags. The stuff in here is used to populate the levels of the breadcrumbs. If you're prepared to mess around with a page's ancestry, you can basically insert/remove breadcrumb items and still make use of things like the expand ellipsis functions for long trails.

          I'll paste the code from page.vmd as an example - note that I've just made some changes to remove site-specific information and haven't tested the below, but haven't changed anything that should affect functionality.

          Also, you could probably improve the code somewhat by using a Map rather than a List (e.g. spacekey:parentspacekey) and using #foreach to render a link until it finds a space without a parent - I whipped up the below fairly quickly and it was never intended to be a long-term solution, so didn't really worry too greatly about things like ease of scalability.

          Hope it helps.

          <content tag="breadcrumbs">
               <!--<-->script language="JavaScript">
                   function showBreadcrumbsEllipsis()
                   {
                       document.getElementById('breadcrumbsEllipsis').style.display = 'none';
                       document.getElementById('breadcrumbsExpansion').style.display = 'inline';
                   }
               </script>
          
               ## PREFIX THE BREADCRUMBS WITH A STATIC LINK (E.G. REPLACE 'DASHBOARD' WITH A 'HOME' SPACE, ETC)
               <a href="$req.contextPath/display/homespacekey">'Home' Space Description</a> &gt;
          
               ## DEFINE HIERARCHY INFORMATION
               #set ($space1children = ["child1", "child2", "child3", "child4"])
               #set ($space2children = ["child5", "child6", "child7", "child8"])
          
               #if ($space.key)
                   #if ($helper.spaceType == "personal")
                       #peopledirectorylink() &gt;
                       <a href="$req.contextPath/display/~$!generalUtil.doubleUrlEncode($helper.space.creatorName)">$webwork.htmlEncode($helper.space.name)</a> &gt;
                   #else
                       #if ($space1children.contains($helper.spaceKey))
                           <a href="$req.contextPath/display/space1key">Space 1 Description</a> &gt;
                       #elseif ($space1children.contains($helper.spaceKey))
                           <a href="$req.contextPath/display/space2key">Space 2 Description</a> &gt;
                       #end
                       <a href="$req.contextPath/display/$space.key">$webwork.htmlEncode($space.name)</a> &gt;
                   #end
          
                   ## THIS MODIFIES THE PAGE'S ACTUAL ANCESTRY - SO BE CAREFUL!
                   #set ($ancestry = $page.ancestors)
                   #if ($ancestry.size()>0)
                       #if ($ancestry.get(0).isHomePage())
                           ## REMOVE 'HOME' FROM BREADCRUMBS
                           #set ($page.ancestors = $page.ancestors.remove(0))
                       #end
                   #end
          
                   #if ($postingYear)
                       $postingYear &gt;
                   #end
          
                   #if ($postingMonth)
                       <a href="$req.contextPath/display/$space.key/$postingYear/$postingMonthNumeric">$postingMonth</a> &gt;
                   #end
          
                   #if ($postingDayOfMonth)
                       <a href="$req.contextPath/display/$space.key/$postingDay/">$postingDayOfMonth</a> &gt;
                   #end
          
                   #if ($helper.page.title)
                       #if ($postingDay)
                           <a href="$req.contextPath$helper.page.urlPath">$textUtil.htmlEncode($helper.page.title)</a>
                       #else
                           $helper.action.generateAncestryBreadcrumbs()<a href="$req.contextPath$helper.page.urlPath">$textUtil.htmlEncode($helper.page.title)</a>
                       #end
                   #end
                   #if ($viewingPageInfo)
                       &gt; <a href="$req.contextPath/pages/pageinfo.action?pageId=$helper.page.id">Information</a>
                   #end
                   #if (!$viewpagebreadcrumb)
                       ##if ($helper.getText("action.name") != "View")
                       #if ($action.getActionName($action.getClass().getName()) != "View")
                           ##&gt; $helper.getText("action.name")
                           &gt; $action.getActionName($action.getClass().getName())
                       #end
                   #end
          
                   ## THIS RETURNS THE ANCESTRY BACK TO ITS PREVIOUS STATE AFTER GENERATING THE BREADCRUMBS
                   #if ($ancestry != $page.ancestors)
                       #set ($page.ancestors = $ancestry)
                   #end
               #else
                   $action.getText("action.error")
               #end
          </content>
          
  32. Feb 13, 2008

    Chainsaw says:

    I use version 2.1.0 of the metadata plugin with confluence 2.7 and have been att...

    I use version 2.1.0 of the metadata plugin with confluence 2.7 and have been attempting to use the heirarchial spaces.

    When I apply the alteration to the main layout template as instructed, the /confluence is stripped from the URL (my url is http://machinename/confluence). I notice above that using the metadata2.jar fixed this, but if i did this, wouldn't i be going backwards?

    How have people fixed this?

  33. Feb 16, 2008

    Andrey says:

    Dead loop with hierarchical spaces. We are using Confluence 2.6. I set up spaces...

    Dead loop with hierarchical spaces.

    We are using Confluence 2.6.
    I set up spaces hierarchy - placed parent macro into home pages of all second-level spaces and so on.
    Then I changed code for breadcrubmbs as in recipte.
    Everything had worked well.

    After that one of our users for some reason moved home page of second-level space into root space
    As I understand, that caused dead loop inside metadata plugin.

    Result was nearly completely unfunctional wiki site (syserror on home page, some other pages which uses metadata dysplayed as empty).

    That was undertandable what is wrong - I had to remove parent metadata from parent page. But with plugin on I cannot edit the page (got the syserror), and with plugin off is seems impossible to change the space metadata.

    I had to fix that fast so I just created new space, moved into it all root space pages except one can was from second level space. After that I deleted old root space. And repeat all the process (because I did not want to change parent marco in all spaces and cannot change space key in newly created 'temp root' space).

    Ok, everything is up and running, but now I am very uneasy about that plugin.

    Is there some fix for this dead-loop problem?
    Except edit deny for root space homepage.

  34. Mar 10, 2008

    William Lubelski says:

    Hi, If this already works and I just coundn't figure it out then I appologize. ...

    Hi, If this already works and I just coundn't figure it out then I appologize.

    Here goes. I would LOVE the ability to generate reports with boolean logic for the labels. As far as I can tell there's commas for ANY (i.e. OR) and + for AND, but I would love a - for NOT.

    Example: I will break down item pages by catagories, so it'll be ROOT PAGE > CATAGORY PAGE > ITEM PAGE. What I would like to be able to do is have a report of just the items and not the catagories by filtering the list as all descendants of ROOT PAGE except the pages labeled as catagory.

    Ciao,
    Will

  35. Mar 13, 2008

    Valeria Köllhofer says:

    How may adress the metadata from my IDE? I'm trying to write a plugin and I need...

    How may adress the metadata from my IDE? I'm trying to write a plugin and I need to access the metadata of a page.

  36. Mar 27, 2008

    Ken Yagen says:

    Is the attachments-report macro supposed to show every version of an attachment?...

    Is the attachments-report macro supposed to show every version of an attachment? We only want to show the last version - is there a way to filter this?

    1. Jan 15

      Thomas Drevon says:

      Did you solve this? I just ran into this same problem myself, and would be happy...

      Did you solve this? I just ran into this same problem myself, and would be happy to hear about your solution!

  37. Apr 18, 2008

    Chainsaw says:

    I'm using LDAP authentication external to confluence and the users-report macro....

    I'm using LDAP authentication external to confluence and the users-report macro. 

    The code is quite simple, only

    {users-report:User,Location,Email,Extension,Subject Area}
    

    But when I save this page, the page will take 10 minutes to complete and will retrieve all of the users from the ldap (3000 or so for our country),

    Is there a way to limit to report to those only in the people directory? For us that's 200.

  38. Apr 29, 2008

    Rob Jones says:

    Can this plugin be used to set the order spaces are displayed on the Dashboard? ...

    Can this plugin be used to set the order spaces are displayed on the Dashboard?

    Rob

  39. May 04, 2008

    Roberto Dominguez says:

    Hey Andy, With some advice from Alain Moran, I came up with this wrapper to dea...

    Hey Andy,

    With some advice from Alain Moran, I came up with this wrapper to deal with the indexing in the same binary (pre and post 2.7).

    package com.comalatech.confluence.workflow.wrappers.document;
    
    import org.apache.lucene.document.Document;
    import org.apache.lucene.document.Field;
    
    import java.lang.reflect.Method;
    
    /**
     * Copyright (C) 2008 Comala Technology Solutions, Inc.
     * confluence-dev@comalatech.com
     * All rights reserved.
     *
     * Created to deal with the Fieldable screw up caused by Lucene that caused
     * binary incompatibility in 2.7
     *
     */
    public class DocumentIndexer {
    
        private Method addMethod;
        public DocumentIndexer() {
            Class fieldClass;
            try {
                fieldClass = Class.forName("org.apache.lucene.document.Fieldable");
            } catch (ClassNotFoundException e) {
                try {
                    fieldClass = Class.forName("org.apache.lucene.document.Field");
                } catch (ClassNotFoundException e1) {
                    throw new RuntimeException(e);
                }
            }
            try {
                addMethod = Document.class.getMethod("add", new Class[] {fieldClass});
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        public void add(Document document, String key, String value) {
            try {
                Field field = new Field(key, value, Field.Store.YES,Field.Index.TOKENIZED);
                addMethod.invoke(document,new Object[] {field});
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
    }
    
  40. May 05, 2008

    Colin Ho says:

    Does the blog-posts-report macro support filtering by label, similar to the way ...

    Does the blog-posts-report macro support filtering by label, similar to the way the metadata-report macro does it?

  41. May 08, 2008

    Gil César Faria says:

    Hi, there is any way to make a restriction within the macros that render report...

    Hi,

    there is any way to make a restriction within the macros that render reports based on metadata information?

    Something like "I want to get only the pages which have a certain metadata value within all pages ...", like this:

    {metadata-report:Page,Author(s),Version,LOC|label=+codegeist,|totals=LOC|sort=LOC desc|metadata-values=+Author(s)=Andy Armstrong,+Version=2.1}

    which mean "create a report from all pages which metadata Author(s) have value Andy Armstrong AND metadata Version have value 2.1"

  42. Jun 04, 2008

    Matt Bovett says:

    Is there any possible way I can make the "Comments" metadata appear as just a nu...

    Is there any possible way I can make the "Comments" metadata appear as just a number, rather than:

    • 0 comments
    • 1 comment
    • 2 comments

    ...etc

    So instead, just:

    • 0
    • 1
    • 2

    If not, can the plugin be modified to either allow this or make this the default behavior?

    It would be easy to add "comment(s)" with CSS...

    #whatever confluenceTd+td+td+td:after { content: "comments(s)"; }

    (however many +td's are needed)

  43. Jul 01, 2008

    Thomas Drevon says:

    I'm looking into the possibility of extending this plugin so it can return metad...

    I'm looking into the possibility of extending this plugin so it can return metadata for page(s) in xml format. I could then use xslt to format the output as I want. The xml might look like this:

    <pages>
      <page id="123">
        <metadata name="username" value="baltazar" />
        <metadata name="location" value="baltimore" />
      </page>
      <page id="124">
        <metadata name="username" value="jimmy" />
      </page>
    </pages>
    

    Has anyone done anything similar? Where would be the best place to start?

    1. Jul 01, 2008

      Thomas Drevon says:

      I figured it out. If anyone else is interested, I'll be happy to provide the cod...

      I figured it out. If anyone else is interested, I'll be happy to provide the code!

      BTW: Thanks to you metadata people for writing clean code that's easy to read and extend upon

      1. Jul 01, 2008

        Stefan says:

        Hi Thomas, i am interested how this works. Can you provide a sample? Thanks&#...

        Hi Thomas,

        i am interested how this works.

        Can you provide a sample?

        Thanks!

        1. Jul 03, 2008

          Thomas Drevon says:

          Right! This is what you need to do: Check out the latest version of the pl...

          Right! This is what you need to do:

          1. Check out the latest version of the plugin and make sure you can build it without errors
          2. Add this declaration somewhere at the top of MacroConstants.java:
            public static final String XML_STYLE_KEY = "xml";
            
          3. Edit the below method in AbstractMetadataMacro.java to look like this:
            public MetadataRenderer getMetadataRenderer(Map parameters) throws MacroException {
                String style = MacroUtils.getStringParameter(parameters, STYLE_PARAMETER, DEFAULT_STYLE);
                if (LIST_STYLE_KEY.equals(style) || OL_STYLE_KEY.equals(style) || UL_STYLE_KEY.equals(style))
            	return new MetadataListRenderer(getSubRenderer(), style);
                else if (TABLE_STYLE_KEY.equals(style))
            	return new MetadataTableRenderer(getSubRenderer());
                else if (XML_STYLE_KEY.equals(style))
            	return new MetadataXmlRenderer(getSubRenderer());
                else
            	throw new MacroException("Unrecognized style " + style + " for metadata renderer");
            }
            
          4. Add a new class MetadataXmlRenderer.java to the package org.andya.confluence.plugins.metadata.renderers
          5. mvn clean package, and install the newly built plugin!
          6. Now you can use the macro with "style=xml" and the xml will be included (not visible of course) in your html page.

          Disclaimer: This is just a quick solution to what I needed. It's not an ideal solution for several reasons, but it works. Maybe, if the authors of the plugin approve, this could be included in the actual metadata plugin?

  44. Jul 08, 2008

    Rosie Piller says:

    Hi, I'm using Confluence 2.8.1 (Evaluation license) and I'm setting up hierarch...

    Hi,

    I'm using Confluence 2.8.1 (Evaluation license) and I'm setting up hierarchical spaces. It's going fine so far.

    A few questions:

    1) Do you have any guidelines to suggest regarding when I should create hierarchical spaces and when I should just stick with hierarchical pages?

    2) Is there a way to move the functionality of the Dashboard to the new root of my hierarchical spaces?

    3) Should I expect buggy behavior (as reported above in several comments as recently as Feb 13)?

    4) Regarding the space-breadcrumbs macro, I see that it has to be manually installed into the main site velocity template. The instructions talk about editing the Main Layout and replacing one breadcrumbs reference with another. Is that what is meant by manually installing the macro, or is that what you do *after* you've manually installed the macro?

    Thanks!

    Rosie

  45. Jul 08, 2008

    Rosie Piller says:

    Another question: 5) With the hierarchical spaces, do you lose the toolbar that...

    Another question:

    5) With the hierarchical spaces, do you lose the toolbar that otherwise gets displayed on the left in a space's home page, allowing you to perform Page Operations, Browse Space, Add Content, etc.? How can I add that back in?

    Thanks!

    1. Jul 08, 2008

      Rosie Piller says:

      Figured this one out - changed the theme.

      Figured this one out - changed the theme.

  46. Jul 10, 2008

    Mike Burr says:

    I'm trying to pull a piece of metadata across spaces and I seem to be having dif...

    I'm trying to pull a piece of metadata across spaces and I seem to be having difficulty. In the page where I define the metadata, I have:
    {space-metadata:system maintenance level}NONE{space-metadata}
    and I am trying to retrieve  it like this:
    {space-metadata-from:GENDOC:system maintenance level}
    Am I doing something obvious wrong? Thanks for any help on this

  47. Jul 19, 2008

    Appan Ponnappan says:

    When the metadata name consists of more than one word - example: Product Version...

    When the metadata name consists of more than one word - example: Product Version, the search using the metadata field name does not work. I am trying as: Product Version:<some text>. I guess it is taking only the Version as the field name. How does specify the search text, in this case?

    1. Jul 19, 2008

      Appan Ponnappan says:

      Escaping the space with backslash as in: Product\ Version:<some text> work...

      Escaping the space with backslash as in: Product\ Version:<some text> worked. But the search results are showing the raw form in which metadata is stored, but there is already a bug created for it.

  48. Jul 28, 2008

    Nick Fishwick says:

    Hi, I am trying to use the Space-metadata in conjunction with the Space-Reporte...

    Hi, I am trying to use the Space-metadata in conjunction with the
    Space-Reporter, and I cannot work out the syntax to access the space-metadata from the Space-Supplier object.

    {report-block}
    {space-reporter:space=@global}
      {text-filter:space:data:PM|include=.*robert.*}
    {space-reporter}
    {report-body}
         _DO SOMETHING HERE_
    {report-body}
    {report-block}
    

    Can anyone help me with this?

    Cheers Nick...

  49. Sep 14, 2008

    Appan Ponnappan says:

    How do I get a space meta-data if I am not in that space & I need to get the...

    How do I get a space meta-data if I am not in that space & I need to get the value given the meta-data name? {space-metadata-from} macro does not seem to take the space key parameter. How do I get all the child spaces of a given space? I do not want the whole space hierarchy.

  50. Oct 24, 2008

    Maurice Albarone says:

    Is there a SQL equivalent to metadata-from? We have a need to extract metadata...

    Is there a SQL equivalent to metadata-from?

    We have a need to extract metadata via SQL. This were looking in the os_propertyentry table for the values. This worked fine until we started using Scaffolding. To keep the Scaffolding form values as metadata we used get-data on our form pages and the metadata-from correctly finds the value. Now the values in the os_propertyentry table contain the get-data markup rather than the actual value (ex. {get-data:name=it_owner}{get-data} rather than Joe). My question is this: is there some way to get the value via SQL? Is there a SQL equivalent to metadata-from? Or do I have to find another way?

    1. Oct 24, 2008

      David Peterson [CustomWare] says:

      The raw Scaffolding data is stored in XML format in os_propertyentry also. Look ...

      The raw Scaffolding data is stored in XML format in os_propertyentry also. Look for <metadata> tags.

      1. Oct 26, 2008

        Maurice Albarone says:

        Oh, it is stuffed in there, isn't it. Thanks.

        Oh, it is stuffed in there, isn't it. Thanks.

  51. Dec 13, 2008

    Yao Ge says:

    Metadata search in 2.10 seems broken, I can not search on things like manager:an...

    Metadata search in 2.10 seems broken, I can not search on things like manager:andy like I can in 2.9.x. Anybody else have the same problem?

  52. Jan 07

    Thomas Drevon says:

    I'm trying to use the attachments-report from inside a news item in order to dis...

    I'm trying to use the attachments-report from inside a news item in order to display the attached pictures. I get the error message "Unable to render macro: java.lang.NullPointerException", and my catalina.out says:
    java.lang.NullPointerException
    at org.andya.confluence.plugins.metadata.AttachmentsReportMacro.getMatchingAttachments(AttachmentsReportMacro.java:87)
    at org.andya.confluence.plugins.metadata.AttachmentsReportMacro.execute(AttachmentsReportMacro.java:67)
    at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
    at com.atlassian.renderer.v2.components.MacroRendererComponent.executeMacro(MacroRendererComponent.java:297)
    at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:255)
    at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:151)
    at com.atlassian.renderer.v2.components.WikiContentRendererHandler.handleMacro(WikiContentRendererHandler.java:18)
    at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:126)
    at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:114)
    at com.atlassian.renderer.v2.WikiMarkupParser.handlePotentialMacro(WikiMarkupParser.java:99)
    at com.atlassian.renderer.v2.WikiMarkupParser.parse(WikiMarkupParser.java:60)
    at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:47)
    at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:53)
    at com.atlassian.renderer.v2.plugin.PluggableV2Renderer.render(PluggableV2Renderer.java:30)
    at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:57)
    at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)

    Is the attachments-report macro only expected to work on a page (as opposed to a news item)? Or is this a bug? Or have I somehow messed up my testing/environment?

    Alternatively, are there perhaps any other macros out there which I can use to achieve this?

    1. Jan 07

      Thomas Drevon says:

      Couldn't wait out an answer, so I came up with a fix: Download the plugin, v2....

      Couldn't wait out an answer, so I came up with a fix:

      1. Download the plugin, v2.1
      2. Confirm that you can build it locally without errors
      3. Substitute in AttachmentsReportMacro.java, the lines that say:
      Page page = getPage(renderContext);
      List attachments = page.getAttachments();

      with:

      ContentEntityObject ceo = getEntity(renderContext);
      List attachments = ceo.getAttachments();

      Et voila!

      (no guarantees that this doesn't brake anything else, though

  53. Feb 19

    Morten Sorensen says:

    Is there any way to generate metadata using an foreach loop? I have a list of w...

    Is there any way to generate metadata using an foreach loop?

    I have a list of web services (WS1, WS2, WS3, WS4) and I would like to create metadata like so:

    {space-metadata-list}
    || ws-url-WS1 | http://server:port/services/WS1?wsdl |
    || ws-url-WS2 | http://server:port/services/WS2?wsdl |
    || ws-url-WS3 | http://server:port/services/WS3?wsdl |
    || ws-url-WS4 | http://server:port/services/WS4?wsdl |
    {space-metadata-list}
    

    I have tried using the velocity-render macro in the Replace and Render plugin - but that seems to return HTML; i.e. one cannot have Wiki Markup rendered.

    This will list the URLs:

     {replace-and-render}
      {replace-body}
       {velocity-render}
        #foreach($a in [%ws-list%])
         %ws-prefix%$a%ws-suffix%<br />
        #end
       {velocity-render}
      {replace-body}
      {replace-item:%ws-list%}'WS1','WS2','WS3','WS4'{replace-item}
      {replace-item:%ws-prefix%}http://server:port/services/{replace-item}
      {replace-item:%ws-suffix%}?wsdl{replace-item}
     {replace-and-render}
    

    ... but what I really want is this (which does not work):

     {replace-and-render}
      {replace-body}
       {space-metadata-list}
        {velocity-render}
         #foreach($ws-name in [%ws-list%])
          || ws-url-$ws-name | %ws-prefix%$ws-name%ws-suffix% |
         #end
        {velocity-render}
       {space-metadata-list}
      {replace-body}
      {replace-item:%ws-list%}'WS1','WS2','WS3','WS4'{replace-item}
      {replace-item:%ws-prefix%}http://server:port/services/{replace-item}
      {replace-item:%ws-suffix%}?wsdl{replace-item}
     {replace-and-render}
    

    Is what I want possible using another approach or plugin?

  54. Mar 05

    Christian Kuehn says:

    I try to sort pages according to their creation time and the list is simply sort...

    I try to sort pages according to their creation time and the list is simply sorted wrong. is the problem a bug or is the problem the wrong usage

    {checklist-wiki:Created}{metadata-from:Time Created|sort=created desc}{checklist-wiki}
    
  55. Mar 23

    Remo Pistor says:

    The code in Confluence's main site velocity template has changed in ver. 2.10 so...

    The code in Confluence's main site velocity template has changed in ver. 2.10 so the instructions on how to manually install the space-breadcrumbs macro seems to no longer be relevent for the newest version.  Could you give an update of the code changes that need to be made to the Main Layout template.

    Thanks

  56. Apr 03

    Ville Valtasaari says:

    It would be nice if the space hierarchy could be set up using space labels (f.ex...

    It would be nice if the space hierarchy could be set up using space labels (f.ex.) rather than putting anything that users can mess up in the space home page content.

    r. Ville

  57. Apr 14

    Bill Wheatley says:

    With confluence 2.10 and metadata 2.1.0 i am getting errors when i try to hit a ...

    With confluence 2.10 and metadata 2.1.0 i am getting errors when i try to hit a page with metadata

    Cause

    java.lang.RuntimeException: Error rendering template for decorator root
        at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)

    caused by: java.lang.RuntimeException: Error rendering template for decorator page
        at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)

    caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getDisplayableLabel' in class com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel threw exception com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content @ templates/leftnavigation/page.vmd[50,352]
        at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)

    caused by: com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content
        at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:132)

    caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getLatestVersionsOfAttachments' in class com.atlassian.confluence.pages.Page threw exception net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection @ getRenderedContent[1,15]
        at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)

    caused by: net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection
        at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:201)

    caused by: net.sf.hibernate.HibernateException: collection was evicted
        at net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3305)

    Stack Trace:[hide]java.lang.RuntimeException: Error rendering template for decorator root

    at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.Template.merge(Template.java:254)
    at com.opensymphony.webwork.dispatcher.VelocityResult.doExecute(VelocityResult.java:91)
    at com.atlassian.xwork.results.ProfiledVelocityResult.doExecute(ProfiledVelocityResult.java:21)
    at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:116)
    at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:263)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:187)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:55)
    at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.security.interceptors.CaptchaInterceptor.intercept(CaptchaInterceptor.java:46)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.util.LoggingContextInterceptor.intercept(LoggingContextInterceptor.java:48)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.core.CancellingInterceptor.intercept(CancellingInterceptor.java:23)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:54)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.setup.webwork.BootstrapAwareInterceptor.intercept(BootstrapAwareInterceptor.java:26)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.pages.actions.CommentAwareInterceptor.intercept(CommentAwareInterceptor.java:43)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:108)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor.intercept(SpaceAwareInterceptor.java:67)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.core.actions.LastModifiedInterceptor.intercept(LastModifiedInterceptor.java:39)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.confluence.core.ConfluenceAutowireInterceptor.intercept(ConfluenceAutowireInterceptor.java:38)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.atlassian.xwork.interceptors.TransactionalInvocation.invokeAndHandleExceptions(TransactionalInvocation.java:72)
    at com.atlassian.xwork.interceptors.TransactionalInvocation.invokeInTransaction(TransactionalInvocation.java:59)
    at com.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:56)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
    at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
    at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
    at com.atlassian.confluence.servlet.ConfluenceServletDispatcher.serviceAction(ConfluenceServletDispatcher.java:53)
    at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
    at com.atlassian.confluence.servlet.simpledisplay.SimpleDisplayServlet.service(SimpleDisplayServlet.java:59)
    at com.atlassian.confluence.servlet.SpringManagedServlet.service(SpringManagedServlet.java:64)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
    at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:153)
    at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:54)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.jmx.JmxFilter.doFilter(JmxFilter.java:105)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:28)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:54)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.web.filter.ThreadLocalCacheFilter.doFilter(ThreadLocalCacheFilter.java:23)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.util.UserThreadLocalFilter.doFilter(UserThreadLocalFilter.java:44)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:204)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:120)
    at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:28)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:138)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
    at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.core.datetime.RequestTimeThreadLocalFilter.doFilter(RequestTimeThreadLocalFilter.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:75)
    at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    at com.atlassian.confluence.extra.webdav.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:43)
    at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:57)
    at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:54)
    at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:33)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.RuntimeException: Error rendering template for decorator page
    at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:232)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:194)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
    at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.Template.merge(Template.java:254)
    at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplateWithoutSwallowingErrors(VelocityUtils.java:58)
    at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:227)
    ... 156 more
    Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getDisplayableLabel' in class com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel threw exception com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content @ templates/leftnavigation/page.vmd[50,352]
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
    at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:203)
    at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:294)
    at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
    at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.Template.merge(Template.java:254)
    at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplateWithoutSwallowingErrors(VelocityUtils.java:58)
    at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:227)
    ... 167 more
    Caused by: com.atlassian.core.exception.InfrastructureException: Error occurred rendering template content
    at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:132)
    at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:118)
    at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebFragmentHelper.renderVelocityFragment(ConfluenceWebFragmentHelper.java:57)
    at com.atlassian.plugin.web.model.DefaultWebLabel.getDisplayableLabel(DefaultWebLabel.java:66)
    at com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel.getDisplayableLabel(ConfluenceWebLabel.java:35)
    at com.atlassian.confluence.plugin.descriptor.web.model.ConfluenceWebLabel.getDisplayableLabel(ConfluenceWebLabel.java:50)
    at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:295)
    at com.atlassian.confluence.velocity.introspection.AnnotationBoxingMethod.invoke(AnnotationBoxingMethod.java:28)
    at com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:29)
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:245)
    ... 176 more
    Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getLatestVersionsOfAttachments' in class com.atlassian.confluence.pages.Page threw exception net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection @ getRenderedContent[1,15]
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
    at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:203)
    at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:294)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
    at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:356)
    at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:228)
    at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:126)
    ... 188 more
    Caused by: net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection
    at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:201)
    at net.sf.hibernate.collection.PersistentCollection.read(PersistentCollection.java:71)
    at net.sf.hibernate.collection.Bag.size(Bag.java:232)
    at com.atlassian.confluence.core.ContentEntityObject.getLatestVersionsOfAttachments(ContentEntityObject.java:438)
    at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:295)
    at com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:29)
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:245)
    ... 194 more
    Caused by: net.sf.hibernate.HibernateException: collection was evicted
    at net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3305)
    at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:195)
    ... 203 more

    Referer URL

    http://tools.mediatemple.net/confluence/dashboard.action

    Confluence Application Information

    Build Information

    buildNumber: 1518
    upTime: 8 days, 1 hour, 37 minutes, 4 seconds
    devMode: false
    version: 2.10.2
    home: /opt/confluence-data
    Unique ID: 0x00000120A5A0E8A940CF8180AA0441DF8E03849011549B0EC249B001C9ECD26A

    Server information

    Application Server: Apache Tomcat/6.0.14
    Servlet Version: 2.5
    Database Dialect: com.atlassian.hibernate.dialect.MySQLDialect
    Database Driver Name: com.mysql.jdbc.Driver
    Database Driver Version: 3.1
    Database Name: MySQL
    Database Version: 5.1.33-community
    Database Transaction Isolation: Repeatable read Database Latency: 1

    Memory Information

    Total Memory: 254 MB
    Used Memory: 173 MB
    Free Memory: 80 MB

    System Information

    userName: root
    favouriteColour: Gamboge
    time: 10:16:07
    javaVm: Java HotSpot(TM) Client VM
    operatingSystemArchitecture: i386
    date: Tuesday, 14 Apr 2009
    operatingSystem: Linux 2.6.9-023stab046.2-enterprise
    jvmVersion: 1.0
    userTimezone: PST
    fileSystemEncoding: ANSI_X3.4-1968
    jvmImplementationVersion: 1.5.0_06-b05
    appServer: Apache Tomcat
    javaVendor: Sun Microsystems Inc.
    javaVersion: 1.5.0_06
    javaRuntime: Java(TM) 2 Runtime Environment, Standard Edition
    jvmVendor: Sun Microsystems Inc.

    Cluster Information

    Not clustered.

    Plugins

    • Adaptavist Advanced Search (com.adaptavist.confluence.advancedSearch, Version: 1.0.5)
    • Adaptavist Content Formatting Macros (com.adaptavist.confluence.contentFormattingMacros, Version: 1.6.8)
    • Add Content Menu Sections (confluence.menu.add, Version: 1.0)
    • Admin Sections (confluence.sections.admin, Version: 1.0)
    • Advanced Macros (confluence.macros.advanced, Version: 1.5.3.3)
    • Attachment Actions (confluence.sections.attachments, Version: 1.0)
    • Attachment Extractors (com.atlassian.confluence.plugins.attachmentExtractors, Version: 1.0-SNAPSHOT)
    • Basic Macros (confluence.macros.basic, Version: 1.4)
    • Browse Menu Items (confluence.sections.browse, Version: 1.0)
    • Cache Plugin (org.swift.confluence.cache, Version: 3.1.0)
    • Chart Plugin (confluence.extra.chart, Version: 1.12)
    • Clickr Theme (com.atlassian.confluence.themes.clickr, Version: 2.3)
    • Code Macro (confluence.macros.code, Version: 1.5)
    • Comment Action Sections (confluence.comment.action, Version: 1.0)
    • Compatibility Macros (confluence.macros.compatibility, Version: 1.5)
    • Confluence Atlassian Plugin Repository (confluence.repository.client, Version: 2.1.1)
    • Confluence Attachments Plugin (confluence.extra.attachments, Version: 2.12)
    • Confluence Blogging RPC Plugin (com.atlassian.confluence.plugins.xmlrpc.bloggingrpc, Version: 1.2.4)
    • Confluence Classic Theme (com.atlassian.confluence.themes.classic, Version: 2.0)
    • Confluence Contributors Plugin (com.atlassian.confluence.contributors, Version: 1.2.1)
    • Confluence HTML Macros (confluence.macros.html, Version: 1.5)
    • Confluence Remote API (confluence.extra.confluencerpc, Version: 2.10.2)
    • Confluence Usage Stats (com.atlassian.confluence.ext.usage, Version: 0.8)
    • Content Action Menu Sections (confluence.content.action.menu, Version: 1.0)
    • Content Buttons (confluence.sections.page.temp, Version: 1.0)
    • Content Metadata (confluence.sections.content.metadata, Version: 1.0)
    • Core Extractors (confluence.extractors.core, Version: 1.4)
    • Core Listeners (confluence.listeners.core, Version: 1.3)
    • Core Path Converters (confluence.converters.core, Version: 1.0)
    • Core Startup and Shutdown (confluence.lifecycle.core, Version: 1)
    • Create Page Macro (com.adaptavist.confluence.createpage, Version: 1.2.1)
    • Dashboard Macros (confluence.macros.dashboard, Version: 1.6)
    • Default Theme (com.atlassian.confluence.themes.default, Version: 1.0)
    • Did You Mean Index Building Interface (confluence.sections.admin.indexing, Version: 1.0)
    • Dynamic Table Macros (revere.confluence.dynamictable, Version: 1.2)
    • Dynamic Task List 2 Plugin (confluence.extra.dynamictasklist2, Version: 3.1.1)
    • Edit Profile Sections (confluence.sections.profile.edit, Version: 1.0)
    • French language pack (confluence.languages.fr_FR, Version: 1.13)
    • German language pack (confluence.languages.de_DE, Version: 1.7)
    • Global Dashboard Actions (confluence.sections.dashboard.global, Version: 1.0)
    • Global Labels Sections (confluence.sections.labels, Version: 1.0)
    • Graphviz Plugin (com.atlassian.confluence.extra.graphviz, Version: 1.1.0)
    • IM Presence NG Plugin (confluence.extra.impresence2, Version: 2.3)
    • Information Macros (confluence.extra.information, Version: 1.0)
    • JIRA Macros (confluence.extra.jira, Version: 2.8.7)
    • Label Tools Plugin (com.adaptavist.confluence.labeltools, Version: 1.1.4)
    • Layout Macros (confluence.extra.layout, Version: 1.2)
    • Left Navigation Theme (com.atlassian.confluence.themes.leftnavigation, Version: 2.4)
    • Linking Plugin (net.customware.confluence.plugin.linking, Version: 2.6.8)
    • Live Search Macros (confluence.extra.livesearch, Version: 2.9)
    • Metadata Plugin (org.andya.confluence.plugins.metadata, Version: 2.1.0)
    • News Tabs (confluence.sections.news, Version: 1.0)
    • Office Connector plugin (com.atlassian.confluence.extra.officeconnector, Version: 1.4.2)
    • Page Operations (confluence.sections.page.operations, Version: 1.0)
    • Page Tabs (confluence.sections.page, Version: 1.0)
    • Page Tabs (confluence.search.mappers.lucene, Version: 1.0)
    • Page Tree (com.atlassian.confluence.plugins.pagetree, Version: 1.11)
    • Page View Links (confluence.sections.page.actions, Version: 1.0)
    • Pagetree Search (com.atlassian.confluence.plugins.pagetreesearch, Version: 1.3.2)
    • Profile Tabs (confluence.sections.profile, Version: 1.0)
    • Redirection Plugin (net.customware.confluence.plugin.redirection, Version: 2.3)
    • Scaffolding Plugin (net.customware.confluence.plugin.scaffolding, Version: 3.1.2)
    • Search Web Interface (confluence.sections.admin.generalconfig, Version: 1.0)
    • Search Web Interface (confluence.sections.search.view, Version: 1.0)
    • Social Bookmarking Plugin (com.atlassian.confluence.plugins.socialbookmarking, Version: 1.2.4)
    • Space Actions Sections (confluence.sections.space.actions, Version: 1.0)
    • Space Admin Sections (confluence.sections.space.admin, Version: 1.0)
    • Space Advanced Sections (confluence.sections.space.advanced, Version: 1.0)
    • Space Browse Sections (confluence.sections.space.browse, Version: 1.0)
    • Space Item Tabs (confluence.sections.space, Version: 1.0)
    • Space Labels Sections (confluence.sections.space.labels, Version: 1.0)
    • Space Pages Sections (confluence.sections.space.pages, Version: 1.0)
    • System Web Resources (confluence.web.resources, Version: 1.0)
    • Table Plugin (org.swift.confluence.table, Version: 3.4.0)
    • Table of Contents Plugin (org.randombits.confluence.toc, Version: 2.4.10.1)
    • Tabular Metadata (confluence.extra.masterdetail, Version: 2.7)
    • TinyMCE Editor Plugin (com.atlassian.confluence.tinymceplugin, Version: 2.10.2)
    • Top and Left Navigation Theme (at.hansen.confluence.themes.topandleftnavigation, Version: 1.1)
    • UWC Importer Admin Panel (com.atlassian.confluence.plugins.uwc.uwcimporter-adminpanel, Version: 1.1)
    • User Administration (confluence.admin.user, Version: 1.0)
    • User Lister (confluence.extra.userlister, Version: 2.4.2)
    • User Menu Sections (confluence.user.menu, Version: 1.0)
    • View Profile Web Interface (confluence.sections.profile.view, Version: 1.0)
    • WebDAV Plugin (confluence.extra.webdav, Version: 2.0-beta2)
    • Widget Connector (com.atlassian.confluence.extra.widgetconnector, Version: 1.2.3)
    • Wiki Renderer Components (confluence.renderer.components, Version: 1.0)

    Request

    InformationURLhttp://tools.mediatemple.net/confluence/500page.jspURI/confluence/500page.jspContext Path/confluenceServlet Path/500page.jsp

    Headers (Limited subset)hosttools.mediatemple.netx-forwarded-for192.168.206.6user-agentMozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8 FirePHP/0.2.4

    Attributesjavax.servlet.forward.request_uri/confluence/display/new/Homejavax.servlet.forward.context_path/confluencejavax.servlet.forward.servlet_path/displayjavax.servlet.forward.path_info/500page.jspjavax.servlet.error.message

    javax.servlet.error.exceptionjava.lang.RuntimeException: Error rendering template for decorator rootos_securityfilter_already_filteredtrue_sitemeshusing_streamfalsecom.atlassian.gzipfilter.org.tuckey.web.filters.urlrewrite.RuleMatchedtruejavax.servlet.error.request_uri/confluence/display/new/Homecom.atlassian.gzipfilter.GzipFilter_already_filteredtruejavax.servlet.error.status_code500sitemesh_filterappliedtruegzipMimeTypestext/.*,application/x-javascript,application/javascript,application/xml,application/xhtml+xmljavax.servlet.error.servlet_namesimple-displaywebwork.valueStackcom.opensymphony.xwork.util.OgnlValueStack@13850c7com.atlassian.confluence.web.ConfluenceJohnsonFilter_already_filteredtrueatlassian.core.seraph.original.url/display/new/Homeloginfilter.already.filteredtrueConfluence-Request-Time1239729359800javax.servlet.jsp.jspExceptionjava.lang.RuntimeException: Error rendering template for decorator rootsessioninview.FILTEREDtrue

    Parameters (Limited subset)

    Confluence User

    bill

  58. Apr 15

    Remo Pistor says:

    The code in Confluence's main site velocity template has changed in ver. 2.10 so...

    The code in Confluence's main site velocity template has changed in ver. 2.10 so the instructions on how to manually install the space-breadcrumbs macro seems to no longer be relevent for the newest version.  This reference is no longer valid, there is no code that matches this in the main site velocity template:

    Edit the Main Layout (found in the Administration page, under Look and Feel/Layouts) and replace the reference to:<span class="topBarDiv"> #breadcrumbs() </span>

    Does anyone know how to manually install the space-breadcrumbs macro (update the code) to the Main Layout template for version 2.10 of confluence?  It would be greatly appreciated.
    Thanks

    1. Apr 16

      Ville Valtasaari says:

      Are you using anything but the default theme? I'm not familiar with using the a...

      Are you using anything but the default theme?

      I'm not familiar with using the administration section for that sort of thing, but the option doesn't seem to be available when using custom themes anyway. I'd suggest just making your own theme plugin. You could just make one that only replaces the default main.vmd with your own that only has that one change. It's a bit involved, I know, but that's what I'm planning to do once we start using the metadata plugin for organising spaces into hierarchies

      Not much of a quick fix, I guess, but that's all I can think of off the top of my head.

      r. Ville

      1. Apr 16

        Remo Pistor says:

        Thanks Ville.  I'm not using a custom theme, it's the default theme for Con...

        Thanks Ville.  I'm not using a custom theme, it's the default theme for Confluence ver 2.10.

        Here is an exerpt from the main layout template.  As you can see, they've changed the portion of the code that needs to be replaced to get the breadcrumbs working.

        \## CONTENT DIV BEGINS
        <div id="header">
           #quickSearch()
           <ul id="header-menu-bar" class="ajs-menu-bar">
               #if($sitemeshPage.getProperty("page.browse-menu"))
                   $sitemeshPage.getProperty("page.browse-menu")
               #else
                   #menuMacros_renderGlobalBrowseMenu()
               #end
               #menuMacros_renderUserMenu()
           </ul>
           $!sitemeshPage.getProperty("page.breadcrumbs")
        </div>
        
        1. Apr 22

          Diane Sexton says:

          Hi Remo, I just tried it on our eval Confluence v2.10.2 and it's very similar. ...

          Hi Remo,

          I just tried it on our eval Confluence v2.10.2 and it's very similar.

          Replace:

          $!sitemeshPage.getProperty("page.breadcrumbs")
          

          with

          #if ($spaceKey != '')
             $helper.renderConfluenceMacro("{space-breadcrumbs:$spaceKey:$title|Dashboard}")
          #else
             $!sitemeshPage.getProperty("page.breadcrumbs")
          #end

          Note : in our production confluence v2.9.1 the breadcrumbs code is the same as 2.10, so I don't know when it was changed.

          HTH
          Diane

  59. Jun 10

    Angela Burrows says:

    We just installed Confluence 3.0 and we have Unable to render macro: java.lang....

    We just installed Confluence 3.0 and we have

    Unable to render macro: java.lang.NullPointerException
    after setting up hierarchical spaces in the top bar when users try to login, it also appears at the dashboard. Any ideas?

    1. Jun 26

      Rehanesh Harindranath says:

      Hi Angela, Just as Diane had indicated a different change in 2.10, even in 3.0...

      Hi Angela,

      Just as Diane had indicated a different change in 2.10, even in 3.0 we have to make the same change.

      Replace

      $!sitemeshPage.getProperty("page.breadcrumbs")
      

      with

          #if (($spaceKey == '') || ($sitemeshPage.getProperty("page.spacename")))
              #if ($sitemeshPage.getProperty("page.spacename") != 'Preferences')
                  $helper.renderConfluenceMacro("{space-breadcrumbs:$spaceKey:$title}")
              #else
                  $!sitemeshPage.getProperty("page.breadcrumbs") 
              #end
          #else
              $!sitemeshPage.getProperty("page.breadcrumbs") 
          #end
      

      This helps the Login Screen, User Profile and People Directory also have the correct breadcrumbs