Only enable the filepath icon if there are any filepaths to show
Update develop submodules

Repository: openmicroscopy/openmicroscopy
Already up-to-date.

Repository: openmicroscopy/bioformats
Updating f247b30..d4ec8df
Merged PRs (fast-forward):
  # PR 1083 rleigh-dundee 'make: Convert variables to ant properties'
  # PR 1075 hflynn 'Remove dead bitmap link (rebased onto develop)'
  # PR 1076 hflynn 'Adding CONTRIBUTING file to BF repo (rebased onto develop)'
  # PR 1073 rleigh-dundee 'docs: Delegate all sphinx Makefile targets to ant'

Repository: ome/scripts
Updating 31f89c4..7361669
Merged PRs (fast-forward):
  # PR 79 sbesson 'Travis fix (rebased onto develop)'

Repository: openmicroscopy/ome-documentation
Updating be161c6..84d1033
Merged PRs (fast-forward):
  # PR 776 sbesson 'Remove all references to CI jobs in the official documentation'
  # PR 772 rleigh-dundee 'make: Convert variables to ant properties'
  # PR 771 hflynn 'Adding pyramid generation data duplication warning to in-place import (rebased onto develop)'
  # PR 760 rleigh-dundee 'Make Ice 3.4 the minimum supported version'
  # PR 768 hflynn 'Rephrasing CONTRIBUTING re: branch for PRs (rebased onto develop)'
  # PR 769 hflynn 'Making API doc links point at release version (rebased onto develop)'
  # PR 766 rleigh-dundee 'ant: Default all properties and handle empty vars in conf.py'
  # PR 758 hflynn 'Adding API doc links to OMERO docs front page (rebased onto develop)'
  # PR 759 hflynn 'ticket 10030 fix - contributing file for docs repo (rebased onto develop)'
  # PR 761 rleigh-dundee 'Delegate all Makefile targets to ant'

Generated by OMERO-5.1-latest-submods#106 (http://ci.openmicroscopy.org/job/OMERO-5.1-latest-submods/106/)
Enable DropBox on 2008Server (see #12289)

The hard-coded settings disallowed Windows Server
2008. This simply copies the 2003Server configuration
and replaces 3 with 8.
Use params for event log query (See #12279)

The memory dump from the demo server had over 800MB tied up
in `char[]` all belonging to the `Launcher$AppClassLoader`.
Nearly all of them (>400K instances) were of the form:

  `select el from EventLog el where el.id > SOMEID`

That change is from roughly 2009 yet I've never seen
precisely this issue. Perhaps the recent move of the
`flush()` invocation was leaving more instances dangling.
In any event, this should collapse all 400K instances
down to one.
Reduce query string generation

Rather than generate a new query string on every
loop, a string is now only created when the `excludes`
argument is changed, plus one time on first usage if
no `excludes` value was set.
Move excludes comment to initQueryString docs
Fix ClassCastException in AttributeSet (Fix #11286)

The helper getAttributeSortedStringSet fails loudly on
properties which are not strings. Instead we get each
object and do our best to convert it into a String.
Remove scifio from .classpath-template
Fix lenght typo
Re-activate formatter.
Add failing test for #12145 rendering settings

Currently, it's not possible to share rendering settings
since the service methods all limit lookups based on the
current user.

This test shows the behavior we would like to see: if
user "other" does not explicitly generate rendering
settings, then none should be created.

There may be permissions issues with this that either
have to be handled in the clients or be worked around
by simplying copying the rendering settings from the
image owner (without re-**generating** them)
Modify all queries to try pixel.owner.id when empty

This may not be correct overall, but it at least lets the
previously failing test pass. Where a query was made against
`obj.details.owner.id = :user_id` we fall back to using
`obj.details.owner.id = some_other_obj.details.owner.id`.

Likely this code can be refactored into a single helper method.
Same type of quick fix for rendering

This new test failed before the PixelsImpl method was
modified. Now for all groups (not just `rwr--`) the rdef
for the owner will be returned if none is found for the
current user.
Add new API method: saveAsNewSettings

After @jburel's investigation, the remaining issue
with this branch looks to be that clients are assuming
(rightly) that the rendering def they have in hand is
their own. That's always been the case.

With this change, that no longer holds.

In order to not break the API the intention is:

 * the old method will throw an exception
   when users try to save someone else's rdef

 * the new method will *always* create a new
   rdef, set it as the current one, and return
   the new id.
Implement saveAsNewSettings with internalSave()

The primary logic from saveCurrentSettings which needs
to be avoided are the calls to `new.setId(old.getId())`.
`internalSave(boolean saveAs)` uses the saveAs argument
to skip over these sections.

The added test passes successfully.
Add check for ownership on saveCurrentSettings

To preserve the previous logic in which clients never
received RenderingDef instances belonging to other users,
we now detect when things have gone amiss and raise an
exception.

Client developers are responsible for checking the ownership
of the RenderingDef in hand and calling the appropriate method.
Generate thumbnails during saveAs

In order to not leave clients with NPEs,
when saveAs is called we also generate
the default 96 thumbnail.
Fix ThumbnailStore.thumbnailExists

thumbnailExists was broken and:
 1) throwing hibernate exceptions on save
 2) throwing NPEs during cache lookups

This should allow thumbnailExists to work
again. We may need a thumbnailExistsByLongestSide
method though.
Fix stackoverflow on loadAndPrepareMetadata

The old method signature was calling itself leading
to an infinite recursion. Slightly scary that this
wasn't more apparent.
Review save settings method.