JVM system properties

Administrators can configure the Java Virtual Machine (JVM) system properties described on this page to control low level aspects of FishEye and Crucible's operation. The application must be restarted on all platforms for the changes to become effective. After the application starts up you can verify the setting by using the command-line tool jinfo <pid> or look up " on the Administration > System Info page.

system.properties (all platforms)

The recommended approach is to add the property to the FISHEYE_INST/system.properties file. Add this as a new text file, using the Java .properties format, if it doesn't already exist.

Environment Variable (all platforms)

Properties can also be set by passing them with the -D parameter to the JVM using the FISHEYE_OPTS environment variable.

Windows Service

If you used the FishEye or Crucible installer for Windows, you can edit JVM properties as follows.

FishEye/Crucible 3.4.4+

Edit JVM properties using the tool included with the installer. Launch the tool by going to one of:

  • Start > All Programs > FishEye > Configure FishEye
  • Start > All Programs > Crucible > Configure Crucible

Ensure that you restart the FishEye or Crucible service after changing the JVM properties.

Earlier versions:

Edit JVM properties using this tool:


To use it, you need to rename prunmgr.exe from the zip file to Atlassian FishEye.exe or Atlassian Crucible.exe depending on which installer you used. Then JVM properties such as Xmx and XX:MaxPermSize can be edited on the Java tab.

Do not reference any environment variables in the settings (e.g. %FISHEYE_INST%). Instead, use the absolute path.



  • System properties that only relate to Crucible have names beginning with crucible.

  • When integrating FishEye/Crucible with Single Sign On applications, you may require an adjustment to the JVM properties, specifically the HTTP header size. This may also be useful in other circumstances where FishEye's default HTTP header is too small (at 4096 bytes).

On this page:

General properties


Property Legal values Default values Description Version



Controls whether blames are calculated during indexing.

Note that blame calculation during indexing is disabled if the Store Diff Info setting is disabled. See Store diff info.

See Blame calculations for details.




Controls whether blame data is retrieved from the SCM during indexing (when blame couldn't be based on ancestors during indexing).

See Blame calculations for details.



3.10: false

3.9: true

Controls whether users can request blame data from the SCM when viewing the file or diff (when blame couldn't be calculated or retrieved during indexing).

See Blame calculations for details.

fisheye.ldap.sync.page.size   1000

Controls the page size used when FishEye requests data from LDAP user directories. The LDAP server must support LDAPv3.

A value of 0 disables paging.

crucible.detect.metadata.revision.changes true/false

3.0: false

2.6: true

If true, detects and disables creation of reviews from changesets which contain metadata only changes (e.g SVN property changes). Read more here. 2.6.0+
crucible.review.content.size.limit number of file revisions allowed in a review 800 Limits the "size" of a review to prevent extremely large reviews accidentally being created and potentially slowing the instance down. 2.10.0+
fisheye.branch.recently.active.check.limit number of branches 250 Used in CommitGraph to control sorting of branches. If more than the limit, sorted alphabetically, otherwise sorted by recent activity. 2.6.0+
fisheye.changeset.paths.limit number of paths 10000 This setting is to prevent extremely large changesets (which are often the result of an error) from slowing FishEye/Crucible down. See Indexed paths truncated at 10000 for the messages that are logged if the value is reached.  
fisheye.git.http-backend-timeout Integer milliseconds 3600000 This property sets the amount of time that the FishEye server should allow the underlying Git process to execute when attempting to serve a Git push or pull request. 2.7.3+
fisheye.p4.disable.ancestry true/false false If true, stops FishEye from processing P4 ancestry information. Change lists will still be assigned to branches. If you do not use stable Perforce branchspecs to manage branches, set this to true. 2.7.5+
fisheye.p4.disable.branchspecs true/false false If true, stops FishEye from reading Perforce branch specs. All change lists will appear on the 'head' branch. If you do not use stable Perforce branchspecs to manage branches, set this to true. 2.7.13+
fisheye.search.max.repositories number of repositories 100 Used by FishEye to limit the search to the top n repositories (by alphabetical order) when a cross-repository search is performed. 2.7.12+
jetty.http.headerbuffersize bytes 4096 This controls the size of the largest HTTP header value that FishEye will allow (through its embedded servlet engine, Jetty). Some authentication systems, such as Single Sign On applications, require larger header values. 1.6.5+
org.eclipse.jetty.server.Request.maxFormContentSize bytes 3000000

Max form content size – increase this value if your Git push fails with HTTP error 411 (see this KB article: Git PUSH results in RPC failed, result=22, HTTP code = 413)

  10 Maximum number of users that will be added from a group when adding a group to a review 3.5.2+
integer 10000 Maximum number of clauses in a Lucene boolean query. This limit is used while rendering large lists (e.g. projects, users, reviews dashboard). You may need to increase the limit if you have a problem as in CRUC-7794. 4.0.0+

FishEye pipeline indexing

See Pipelined indexing.

Property Legal values Default Value Description FishEye version
fisheye.pipeline.batch.cslimit 1 - 50000 10000 The pipeline processes changesets in batches. A bigger batch size reduces the number of calls to the underlying SCM, but also increases heap consumption and reduces the concurrency of the pipeline. Smaller batch sizes increase the concurrency of the pipeline, reduce heap consumption, but result in more calls to the underlying SCM. 3.0.0+
fisheye.pipeline.batch.pathlimit 1000 - 120000 60000 The pipeline processes changesets in batches. This property sets the maximum allowed number of unique paths in a batch (summed across changesets). A higher value will reduce the number of calls to the underlying SCM, at the expense of more heap consumption. 3.0.0+
fisheye.pipeline.fairness true, false true

If true, repositories are processed in a round-robin fashion by the pipeline. This means that all repositories currently indexing will incrementally progress.

If false, the pipeline always favors newer changesets, regardless of which repository they belong to. This means that repositories with newer changesets will take priority over repositories with older changesets. This results in faster processing for newer repositories, but with the possibility of stalling indexing of repositories with older commits.

fisheye.pipeline.threads 4-1000 The number of processor cores detected, or 4, whichever is greater The number of threads available to work on indexing tasks. A higher value allows for potentially greater concurrency in indexing activities, but will increase the load on the server and the load on your SCM. 3.0.0+

Git manifest

Property Legal values Default value Description Version
fisheye.manifest.forceupgrade true or false true Controls whether manifests are upgraded before repository indexing continues or as a background process as time permits during regular indexing 3.4.0+
fisheye.manifest.maxdepth 1-100 3 Controls how many delta manifests are written in a chain before a full manifest is written 3.4.0+
fisheye.manifest.maxupgradepaths 100 upwards 500000 The maximum number of paths that will be upgraded before a batch is committed to the FishEye index 3.4.0+
fisheye.manifest.upgradebatch 10 upwards 1000 When performing background upgrading this is the minimum number of changesets that will be upgraded in each indexing poll period. 3.4.0+

Mail client

You can tune the mail client in FishEye with system properties.

The available system properties are listed and described at https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html.

For example, mail.smtp.quitwait=false can be used in cases where the FishEye mail server doesn't respond to a QUIT message, and causes the mail client to hang.

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport