Changeset 3dbbc29


Ignore:
Timestamp:
Apr 29, 2017 2:28:30 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
5e497f79
Parents:
925cacc
Message:

Jetty: backport patch from 9.4.4 to 9.2.21
to fix Timer crash in RolloverFileOutputStream?
https://github.com/eclipse/jetty.project/commit/1e46576bf4f888656271b0cbd6fd1605b1808730
https://github.com/eclipse/jetty.project/issues/1469

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/jetty/patches/jetty-util/src/main/java/org/eclipse/jetty/util/RolloverFileOutputStream.java

    r925cacc r3dbbc29  
    6363    private int _retainDays;
    6464   
     65    private final TimeZone _zone;
     66
    6567    /* ------------------------------------------------------------ */
    6668    /**
     
    167169        setFile();
    168170       
     171        _zone = zone;
    169172        synchronized(RolloverFileOutputStream.class)
    170173        {
     
    172175                __rollover=new Timer(RolloverFileOutputStream.class.getName(),true);
    173176           
    174             _rollTask=new RollTask();
    175 
    176             midnight = Calendar.getInstance();
    177             midnight.setTimeZone(zone);
    178             // set to midnight
    179             midnight.set(Calendar.HOUR, 0);
    180             midnight.set(Calendar.MINUTE, 0);
    181             midnight.set(Calendar.SECOND, 0);
    182             midnight.set(Calendar.MILLISECOND, 0);
    183            
    184177            scheduleNextRollover();
    185178        }
     
    188181    private void scheduleNextRollover()
    189182    {
     183        _rollTask=new RollTask();
     184
     185        midnight = Calendar.getInstance();
     186        midnight.setTimeZone(_zone);
     187        // set to midnight
     188        midnight.set(Calendar.HOUR, 0);
     189        midnight.set(Calendar.MINUTE, 0);
     190        midnight.set(Calendar.SECOND, 0);
     191        midnight.set(Calendar.MILLISECOND, 0);
     192
    190193        // Increment to next day.
    191194        // Using Calendar.add(DAY, 1) takes in account Daylights Savings
     
    322325                _file=null;
    323326            }
    324 
    325             _rollTask.cancel();
     327   
     328            if (_rollTask != null)
     329            {
     330                _rollTask.cancel();
     331            }
    326332        }
    327333    }
     
    339345                RolloverFileOutputStream.this.removeOldFiles();
    340346            }
    341             catch(IOException e)
     347            catch(Throwable t)
    342348            {
    343349                // Cannot log this exception to a LOG, as RolloverFOS can be used by logging
    344                 e.printStackTrace(System.err);
     350                t.printStackTrace(System.err);
    345351            }
    346352        }
Note: See TracChangeset for help on using the changeset viewer.