/hg/icedtea-web: PolicyEditor persists empty non-default codebas...

Jiri Vanek jvanek at redhat.com
Wed Jun 25 14:18:07 UTC 2014


On 06/24/2014 08:25 PM, Andrew Azores wrote:
> On 06/17/2014 11:40 AM, Andrew Azores wrote:
>> On 06/03/2014 05:03 PM, aazores at icedtea.classpath.org wrote:
>>> changeset f02ad0ae6d86 in /hg/icedtea-web
>>> details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=f02ad0ae6d86
>>> author: Andrew Azores <aazores at redhat.com>
>>> date: Tue Jun 03 17:02:56 2014 -0400
>>>
>>>     PolicyEditor persists empty non-default codebase entries
>>>
>>>     2014-06-03  Andrew Azores  <aazores at redhat.com>
>>>
>>>         PolicyEditor persists empty non-default codebase entries
>>>         * netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java
>>>         (toString): return empty string only if the codebase both has no
>>>         permissions assigned and is also the default "All Applets" codebase
>>>         * netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java
>>>         (savePolicyFile): release fileLock with try/finally
>>>
>>>
>>> diffstat:
>>>
>>> ChangeLog |   9 ++
>>> netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java | 4 +-
>>> netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java |  31 ++++++---
>>>   3 files changed, 32 insertions(+), 12 deletions(-)
>>>
>>> diffs (75 lines):
>>>
>>> diff -r 8ddd8d86855c -r f02ad0ae6d86 ChangeLog
>>> --- a/ChangeLog    Tue Jun 03 14:25:41 2014 -0400
>>> +++ b/ChangeLog    Tue Jun 03 17:02:56 2014 -0400
>>> @@ -1,3 +1,12 @@
>>> +2014-06-03  Andrew Azores  <aazores at redhat.com>
>>> +
>>> +    PolicyEditor persists empty non-default codebase entries
>>> +    * netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java
>>> +    (toString): return empty string only if the codebase both has no
>>> +    permissions assigned and is also the default "All Applets" codebase
>>> +    * netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java
>>> +    (savePolicyFile): release fileLock with try/finally
>>> +
>>>   2014-06-03  Lukasz Dracz  <ldracz at redhat.com>
>>>         This test expects a Null pointer exception however does not
>>> diff -r 8ddd8d86855c -r f02ad0ae6d86
>>> netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java
>>> --- a/netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java Tue Jun 03 14:25:41 2014
>>> -0400
>>> +++ b/netx/net/sourceforge/jnlp/security/policyeditor/PolicyEntry.java Tue Jun 03 17:02:56 2014
>>> -0400
>>> @@ -69,7 +69,9 @@
>>>         @Override
>>>       public String toString() {
>>> -        if (permissions.isEmpty() && customPermissions.isEmpty()) {
>>> +        // Empty codebase is the default "All Applets" codebase. If there are no permissions
>>> +        // applied to it, then don't bother recording it in the policy file.
>>> +        if (codebase.isEmpty() && permissions.isEmpty() && customPermissions.isEmpty()) {
>>>               return "";
>>>           }
>>>           final String newline = System.getProperty("line.separator");
>>> diff -r 8ddd8d86855c -r f02ad0ae6d86
>>> netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java
>>> --- a/netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java Tue Jun 03 14:25:41
>>> 2014 -0400
>>> +++ b/netx/net/sourceforge/jnlp/security/policyeditor/PolicyFileModel.java Tue Jun 03 17:02:56
>>> 2014 -0400
>>> @@ -169,21 +169,30 @@
>>>           final String currentDate = new SimpleDateFormat("yyyy-MM-dd
>>> HH:mm:ss").format(Calendar.getInstance().getTime());
>>>           sb.append("\n/* Generated by PolicyEditor at ").append(currentDate).append(" */");
>>>           sb.append(System.getProperty("line.separator"));
>>> -        final Set<PolicyEditorPermissions> enabledPermissions = new HashSet<>();
>>> -        FileLock fileLock = FileUtils.getFileLock(file.getAbsolutePath(), false, true);
>>> -        for (final String codebase : codebasePermissionsMap.keySet()) {
>>> -            enabledPermissions.clear();
>>> -            for (final Map.Entry<PolicyEditorPermissions, Boolean> entry :
>>> codebasePermissionsMap.get(codebase).entrySet()) {
>>> -                if (entry.getValue()) {
>>> -                    enabledPermissions.add(entry.getKey());
>>> +        FileLock fileLock = null;
>>> +        try {
>>> +            fileLock = FileUtils.getFileLock(file.getAbsolutePath(), false, true);
>>> +            final Set<PolicyEditorPermissions> enabledPermissions = new HashSet<>();
>>> +            for (final String codebase : codebasePermissionsMap.keySet()) {
>>> +                enabledPermissions.clear();
>>> +                for (final Map.Entry<PolicyEditorPermissions, Boolean> entry :
>>> codebasePermissionsMap.get(codebase).entrySet()) {
>>> +                    if (entry.getValue()) {
>>> +                        enabledPermissions.add(entry.getKey());
>>> +                    }
>>>                   }
>>> +                sb.append(new PolicyEntry(codebase, enabledPermissions,
>>> customPermissionsMap.get(codebase)).toString());
>>>               }
>>> -            sb.append(new PolicyEntry(codebase, enabledPermissions,
>>> customPermissionsMap.get(codebase)).toString());
>>> -        }
>>> -        try {
>>> -            fileLock.release();
>>>           } catch (final IOException e) {
>>>               OutputController.getLogger().log(e);
>>> +        } finally {
>>> +            if (fileLock != null) {
>>> +                try {
>>> +                    fileLock.release();
>>> +                } catch (final IOException e) {
>>> +                    OutputController.getLogger().log(e);
>>> +                }
>>> +
>>> +            }
>>>           }
>>>             FileUtils.saveFile(sb.toString(), file);
>>
>> Proposing to backport this for 1.5.1.
>>

Overlooked. Sure.
Go on. Please dont forget NEWS :) (were added later to head)



More information about the distro-pkg-dev mailing list