Fix issue with incorrect determination of whether or not a string is encoded
by replacing URLDecoder with import org.springframework.web.util.UriUtils
as the former does not handle '+' character.

    Ticket: #8356
    Acked-by: Albert Rossi <arossi@fnal.gov>
    Target: trunk
    Request: 2.9
    Request: 2.8
    Request: 2.7
    Request: 2.6
    Require-book: no
    Require-notes: yes

RELEASE NOTES

Fix bug effecting ability to stage files from Enstore if file names
contain '+' character.
Fix ArrayIndexOutOfBoundsException when processing
multiple surls invoking srmget.

        Ticket: #8083
        Acked-by: Christian Bernardt <christian.bernardt@desy.de>
        Target: trunk
        Request: 2.9
        Request: 2.8
        Request: 2.7
        Request: 2.6
	Request: 2.2
        Require-book: no
        Require-notes: yes

    RELEASE NOTES

Fix ArrayIndexOutOfBoundsException when processing
multiple surls invoking srmget. Addresses RT #8083
pool: Fix regressions in new HSM subsystem

The argument order for remove callouts was wrong.

Logging was a bit too quiet.

Target: trunk
Request: 2.9
Require-notes: yes
Require-book: no
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Patch: https://rb.dcache.org/r/7072/
ftp: fix LIST, NLST and MLSD cmd-channel output

A recent patch, committed as b72f2b5283c7a1f3bdd7b7f2c7e5313802a1dff2,
added support for the delayed passive mode.  Unfortunately, it
also broke the LIST, NLST and MLSD output as it omits the 150
response for clients that use active mode.

Although our functional tests failed to detect the problem, Globus
(formally known as GlobusOnline) fails if the 150 message is missing.

This patch adds the missing message, fixing Globus

Request: 1.9
Patch: https://rb.dcache.org/r/7075/
Acked-by: Gerd Behrmann
Acked-by: Dmitry Litvintsev
Target: master
Require-notes: yes
Require-book: no
srm: Cancel upload path if request was aborted

If the request is aborted while pnfs manager creates the
unique upload path, the SRM would fail to release the
upload path.

This patch fixes this problem.

Target: trunk
Require-notes: yes
Require-book: no
Request: 2.9
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7077
srm: Undo external operations if the request has expired

Much of our code registers a callback or usses blocking RPC style
when communicating with other services. This code may time out. If
the external operation happens to be successfull anyway, then the
message is discarded unless a message handler exists for that
message.

This patch adds three such message handlers for the srm. It deals
with unique upload path creation, pinning and space reservation.
In each case the resource that was created is removed. Common to
these three requests is that the resource created is uniquely
identified. This is different from, eg, a directory that was
created - we cannot delete the exisence of the directory may
already have been noticed by others.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7078/
ftp: Fix indentation

Target: trunk
Patch: none
ftp: Close passive port on failure

globus-url-copy hangs on proxied passive mode connections for which
the mover is killed. Although the proxy adapter is shut down and an
error is reported on the control channel, the fact that the server
socket for the passive mode is not closed and thus has an unaccepted
connection causes globus-url-copy to hang.

This patch closes the passive port on transfer failure. The mode state
is set to an invalid state to force the client to reset the data
channel using either PORT or PASV (or one of the variations).

I am not request backport further than 2.9 as I expect that we will
soon backport the entire door to get delayed passive and IPv6 functionality
in older releases.

Target: trunk
Request: 2.9
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: https://rb.dcache.org/r/7079/
nfs: remove double locking

do not use synchronized block and lock at the same time.

Acked-by: Albert Rossi
Target: master
Require-book: no
Require-notes: no