Blog

  • 2024
  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Current »




When trying to instrument a locally via the Atlassian SDK started Confluence with the Java VisualVM for profiling, the following exception is thrown:

Found in Confluence Log / Console
Caused by: java.lang.NoClassDefFoundError: 
  org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr

Code snippets with added newlines

 

Code snippets shown in this article have added newlines for readability.

What seems to tell that a required class is not provided is actually a complaint that the OSGi subsystem has not been configured properly.

Add the following lines to specify a profile with additional system properties to your Maven POM to configure Confluence:

POM file excerpt (showing only the part with the profile)
<profile>
  <id>profiling</id>
    <build>
      <pluginManagement>
        <plugins>
          <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-confluence-plugin</artifactId>
            <version>6.3.21</version>
            <extensions>true</extensions>
            <configuration>
              <systemPropertyVariables>
                <atlassian.org.osgi.framework.bootdelegation>
                  org.netbeans.lib.profiler.*,sun.*,com.sun.*
                </atlassian.org.osgi.framework.bootdelegation>
                <atlassian.org.osgi.framework.system.packages>
                  org.netbeans.lib.profiler.server
                </atlassian.org.osgi.framework.system.packages>
            </systemPropertyVariables>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</profile>

Start the Confluence server locally using the Atlassian SDK:

Start Confluence locally in debug mode with profiling on
atlas-debug -Pprofiling

Then add a configuration to limit instrumentation to classes you want to take execution performance measurements and start the instrumentation.

Finding the system property names took me some time, so hopefully this blog article shortens the time of searching for others.


Link

Link

Posts

  • No labels