dcache-core: fix statistics totals for top, year and month

http://rb.dcache.org/r/5768 attempted to fix an NPE when the the topmost element of the statistics tree had not yet been generated.

The fix applied there, however, changed the loop invariant inadvertently, causing the summary pages to reflect the same stats for all nodes (based on the oldest node).

This patch restores the original invariant and places a guard against the NPE after the loop, where it does not interfere.

Testing:

redeployed, eliminated current total.raw files and index.html files and regenerated html tree from the admin interface, observing correct totals.

Target: master
Request: 2.7
Request: 2.6
Request: 2.2
Patch: http://rb.dcache.org/r/6335
Require-book: no
Require-notes: yes
Bug: http://rt.dcache.org/Ticket/Display.html?id=8147
Acked-by: Gerd

RELEASE NOTES:

Fixes bug in the statistics page which caused the summary tables for top, year and month to report uniformly the data for the oldest date.
dcache-core (statistics): fix yet another potential NPE in tree creation

If the user runs the admin command create html <yyyy> or create html <yyyy> <mm> and those directories do not exist, an NPE is thrown when the list of subfiles is sorted, since the list ends up being a NULL array.

It costs little to ensure the presence of those directories in each of the three methods, so dir.mkdirs() has been added there.

Testing:

Running commands in absence of the statistics directory tree now avoids the NPE and creates the necessary empty directories.

Target: master
Request: 2.7
Request: 2.6
Request: 2.2
Patch: http://rb.dcache.org/r/6341/
Require-book: no
Require-notes: yes
Acked-by: Tigran

RELEASE NOTES:

Fixes potential Null Pointer Exception thrown when create html <yyyy> or create html <yyyy> <mm> is run and those directories do not yet exist.
dcache-webadmin: wget xml statepath (Info page) fails with HTML 500 error

All pages which extend BasePage require a "title" property.  Info was missing the properties file.

Testing:

Before (example from ticket):

[mol@lxplus0443 ~]$ wget http://cmsdcacheweb-kit.gridka.de:2288/webadmin/info?statepath=pools/f01-065-105-e_1D_cms
--2013-11-08 13:07:41-- http://cmsdcacheweb-kit.gridka.de:2288/webadmin/info?statepath=pools/f01-065-105-e_1D_cms
Resolving cmsdcacheweb-kit.gridka.de (cmsdcacheweb-kit.gridka.de)... 192.108.45.36
Connecting to cmsdcacheweb-kit.gridka.de (cmsdcacheweb-kit.gridka.de)|192.108.45.36|:2288... connected.
HTTP request sent, awaiting response... 500 Server Error
2013-11-08 13:07:41 ERROR 500: Server Error.

After:

info.xml is successfully fetched.

Target: master
Patch: http://rb.dcache.org/r/6342/
Request: 2.7
Request: 2.6
Require-book: no
Require-notes: yes
Bug: http://rt.dcache.org/Ticket/Display.html?id=8097
Acked-by: Tigran

RELEASE NOTES:

Fixes bug (HTML 500 is reported) preventing wget of Info.xml.
dcache-webadmin: put limit on entries in alarms table

In order to avoid OOM.

This is hard-coded as effectively the capacity to hold more than 10000 entries in memory should not be required.  One can always adjust the numbers or refine the query in order to retrieve subsets of a larger set.

Testing: Rechecked interactively.

Target: master
Request: 2.7
Request: 2.6
Patch: http://rb.dcache.org/r/6344/
Bug: http://rt.dcache.org/Ticket/Display.html?id=8084
Require-book: no
Require-notes: no
Acked-by: Karsten
transfermanager: white-space only fix
transfermanager: formatting patch

Adjust formatting to be more consistent with other dCache code.

Target: master
Requires-notes: no
Requires-book: bo
logback shell: add set pattern command

logback supports configuration of the log pattern. To change the
pattern in dcache it is necessary to configure the pattern in the
configuration files and restart.
This patch adds commands to get and set the pattern for the appenders.

Acked-by: Al
Target: trunk
Require-book: yes
Require-notes: yes
nfs: do not create an instance of StripingPattern per pool

as we do not support different strategies, instantiated only once.

Acked-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no
nfs: remove obsolete comment

as we already sending the complete list of addresses.

Acked-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no
nfs: introduce PoolDeviceMap for pool to deviceid mapping

Acked-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no