mirror of https://github.com/apache/cassandra
Merge branch 'cassandra-3.0' into cassandra-3.X
This commit is contained in:
commit
c31463a4cf
|
|
@ -1,3 +1,8 @@
|
|||
3.11
|
||||
Merged from 3.0:
|
||||
* Prevent reloading of logback.xml from UDF sandbox (CASSANDRA-12535)
|
||||
|
||||
|
||||
3.10
|
||||
* Fix CommitLogSegmentManagerTest (CASSANDRA-12283)
|
||||
* Fix cassandra-stress truncate option (CASSANDRA-12695)
|
||||
|
|
|
|||
|
|
@ -29,6 +29,14 @@ import java.security.ProtectionDomain;
|
|||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import ch.qos.logback.classic.LoggerContext;
|
||||
import ch.qos.logback.classic.spi.TurboFilterList;
|
||||
import ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter;
|
||||
import ch.qos.logback.classic.turbo.TurboFilter;
|
||||
|
||||
/**
|
||||
* Custom {@link SecurityManager} and {@link Policy} implementation that only performs access checks
|
||||
* if explicitly enabled.
|
||||
|
|
@ -69,9 +77,44 @@ public final class ThreadAwareSecurityManager extends SecurityManager
|
|||
if (installed)
|
||||
return;
|
||||
System.setSecurityManager(new ThreadAwareSecurityManager());
|
||||
|
||||
Logger l = LoggerFactory.getLogger(ThreadAwareSecurityManager.class);
|
||||
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) l;
|
||||
LoggerContext ctx = logbackLogger.getLoggerContext();
|
||||
|
||||
TurboFilterList turboFilterList = ctx.getTurboFilterList();
|
||||
for (int i = 0; i < turboFilterList.size(); i++)
|
||||
{
|
||||
TurboFilter turboFilter = turboFilterList.get(i);
|
||||
if (turboFilter instanceof ReconfigureOnChangeFilter)
|
||||
{
|
||||
ReconfigureOnChangeFilter reconfigureOnChangeFilter = (ReconfigureOnChangeFilter) turboFilter;
|
||||
turboFilterList.set(i, new SMAwareReconfigureOnChangeFilter(reconfigureOnChangeFilter));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
installed = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* The purpose of this class is
|
||||
*/
|
||||
private static class SMAwareReconfigureOnChangeFilter extends ReconfigureOnChangeFilter
|
||||
{
|
||||
SMAwareReconfigureOnChangeFilter(ReconfigureOnChangeFilter reconfigureOnChangeFilter)
|
||||
{
|
||||
setRefreshPeriod(reconfigureOnChangeFilter.getRefreshPeriod());
|
||||
}
|
||||
|
||||
protected boolean changeDetected(long now)
|
||||
{
|
||||
if (isSecuredThread())
|
||||
return false;
|
||||
return super.changeDetected(now);
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
{
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1791,7 +1791,8 @@ public class AggregationTest extends CQLTester
|
|||
" STYPE map<text,bigint>\n" +
|
||||
" INITCOND { };");
|
||||
|
||||
for (int i = 0; i < 1000; i++)
|
||||
long tEnd = System.currentTimeMillis() + 150;
|
||||
while (System.currentTimeMillis() < tEnd)
|
||||
{
|
||||
execute("SELECT " + releasesByCountry + "(country,title) FROM %s WHERE year=1980");
|
||||
}
|
||||
|
|
@ -1814,6 +1815,7 @@ public class AggregationTest extends CQLTester
|
|||
if (turboFilter instanceof ReconfigureOnChangeFilter)
|
||||
{
|
||||
ReconfigureOnChangeFilter reconfigureFilter = (ReconfigureOnChangeFilter) turboFilter;
|
||||
reconfigureFilter.setContext(ctx);
|
||||
reconfigureFilter.setRefreshPeriod(millis);
|
||||
reconfigureFilter.stop();
|
||||
reconfigureFilter.start(); // start() sets the next check timestammp
|
||||
|
|
|
|||
Loading…
Reference in New Issue