profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kluever/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Kurt Alfred Kluever kluever Google, Inc. New York, NY

google/guice 9994

Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 6 and above, brought to you by Google.

ben-manes/caffeine 9378

A high performance caching library for Java

Kotlin/kotlinx-datetime 787

KotlinX multiplatform date/time library

kluever/browsermob-proxy 1

A free utility to help web developers watch and manipulate network traffic from their AJAX applications.

kluever/checkstyle 0

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.

kluever/copybara 0

Copybara: A tool for transforming and moving code between repositories.

kluever/DataflowJavaSDK 0

Google Cloud Dataflow provides a simple, powerful model for building both batch and streaming parallel data processing pipelines.

kluever/joda-time 0

Joda-Time is the widely used replacement for the Java date and time classes prior to Java SE 8.

kluever/junit 0

A programmer-oriented testing framework for Java.

kluever/mockito 0

Most popular Mocking framework for unit tests written in Java

issue closedben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

Hi there,

I have a couple of cache instances built using:

Caffeine
    .newBuilder()
    .maximumSize(500)
    .expireAfterAccess(5, TimeUnit.MINUTES)
    .removalListener(this::onCacheEntryRemoval)
    .build(key -> new Foo());

Upon application shutdown I'd like to to invalidate the cache using invalidateAll and perform some operations on the invalidated entries via the removalListener. ATM, the listener seems to be called asynchronously.

Is there a way to block until all maintenance tasks have completed?

Thanks, Thilo

closed time in 42 minutes

ginkel

issue commentben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

Perfect, thanks for the detailed explanation! :-)

ginkel

comment created time in 42 minutes

issue commentben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

Yes, but the work caffeine does asynchronously is very cheap O(1) operations, so doing it directly is fine. We don’t know what the cost of user callbacks are so it’s safest to defer to the executor. The maintenance work is performed under a tryLock so it does not block other readers or writers, who can instead add their work to a buffer for replaying later against the eviction policy.

Expiration by default is cleaned up when activity on the cache triggers a maintenance cycle due to enough reads or a write. This means an inactive cache won’t discard those expired entries. If you expect them to be removed regardless of activity, a Scheduler can be configured. It doesn’t sound like it hat is needed, but I wanted to avoid confusion by explaining this behavior if not known.

ginkel

comment created time in 44 minutes

issue commentben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

You can supply your own executor, either one you shutdown or a direct executor (Runnable::run).

That sounds like it would work. Thanks for the speedy reply!

Just to be on the safe side: Tasks like time-based expiration will then happen synchronously during cache access?

ginkel

comment created time in an hour

issue commentben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

You can supply your own executor, either one you shutdown or a direct executor (Runnable::run).

Another approach is to use the asMap() view to iterate and call the method directly.

Do either of those work for you?

ginkel

comment created time in an hour

issue openedben-manes/caffeine

Waiting until removalListeners have completed on invalidateAll

Hi there,

I have a couple of cache instances built using:

Caffeine
    .newBuilder()
    .maximumSize(500)
    .expireAfterAccess(5, TimeUnit.MINUTES)
    .removalListener(this::onCacheEntryRemoval)
    .build(key -> new Foo());

Upon application shutdown I'd like to to invalidate the cache using invalidateAll and perform some operations on the invalidated entries via the removalListener. ATM, the listener seems to be called asynchronously.

Is there a way to block until all maintenance tasks have completed?

Thanks, Thilo

created time in an hour

issue commentgoogle/error-prone

'An illegal reflective access operation has occurred' warnings

@codylerum google/turbine is still successfully using JDK 16 EA. Are you using <fork>true</fork>? Do you have a complete example?

zimmi

comment created time in 9 hours

push eventgoogle/error-prone

copybara-service[bot]

commit sha 7ecea9581b287375cf0cd343e36a83820d04587a

Latest docs on successful build 1240 auto-pushed to gh-pages

view details

push time in 9 hours

issue commentgoogle/error-prone

'An illegal reflective access operation has occurred' warnings

Is there an updated maven example? I've tried using the google/turbine@622b591 example, but no luck. This is my current maven profile that I use with JDK15.

The error I get with 16 with 2.5.1 is

class com.google.errorprone.BaseErrorProneJavaCompiler (in unnamed module @0x5204062d) cannot access class com.sun.tools.javac.api.BasicJavacTask (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.api to unnamed module @0x5204062d

<profile>
	<id>errorprone</id>
	<activation>
		<activeByDefault>true</activeByDefault>
	</activation>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${version.compiler.plugin}</version>
				<configuration>
					<release>${version.java}</release>
					<showWarnings>true</showWarnings>
					<failOnWarning>true</failOnWarning>
					<maxmem>2048m</maxmem>
					<compilerArgs>
						<arg>-XDcompilePolicy=simple</arg>
						<arg>-Xplugin:ErrorProne -Xep:UnusedMethod:OFF -Xep:JavaTimeDefaultTimeZone:OFF -Xep:ObjectEqualsForPrimitives:OFF</arg>
					</compilerArgs>
					<annotationProcessorPaths>
						<path>
							<groupId>org.hibernate</groupId>
							<artifactId>hibernate-jpamodelgen</artifactId>
							<version>${version.wildfly.org.hibernate}</version>
						</path>
						<path>
							<groupId>com.google.errorprone</groupId>
							<artifactId>error_prone_core</artifactId>
							<version>${version.errorprone}</version>
						</path>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
		</plugins>
	</build>
</profile>
zimmi

comment created time in 9 hours

delete branch google/error-prone

delete branch : test_359612553

delete time in 10 hours

PR merged google/error-prone

Migrate to `VisitorState#getConstantExpression` cla: yes

Migrate to VisitorState#getConstantExpression

which wraps Elements#getConstantExpression and removes unnecessary over-escaping of single-quotes in string literals.

+6 -8

0 comment

6 changed files

copybara-service[bot]

pr closed time in 10 hours

push eventgoogle/error-prone

Liam Miller-Cushon

commit sha be1588dbd9c2110d47f07f1a32e5395a2f87972f

Migrate to `VisitorState#getConstantExpression` which wraps `Elements#getConstantExpression` and removes unnecessary over-escaping of single-quotes in string literals. PiperOrigin-RevId: 359875993

view details

push time in 10 hours

push eventgoogle/error-prone

Liam Miller-Cushon

commit sha be1588dbd9c2110d47f07f1a32e5395a2f87972f

Migrate to `VisitorState#getConstantExpression` which wraps `Elements#getConstantExpression` and removes unnecessary over-escaping of single-quotes in string literals. PiperOrigin-RevId: 359875993

view details

push time in 10 hours

push eventgoogle/error-prone

Liam Miller-Cushon

commit sha 48eb899f3fd63353dba5e6bfd21cc8e0242cf272

Migrate to `VisitorState#getConstantExpression` which wraps `Elements#getConstantExpression` and removes unnecessary over-escaping of single-quotes in string literals. PiperOrigin-RevId: 359612553

view details

push time in 11 hours

delete branch google/turbine

delete branch : test_359809639

delete time in 11 hours

PR merged google/turbine

Allow turbine to parse JavaBuilder command lines cla: yes

Allow turbine to parse JavaBuilder command lines

Add a couple of aliases, and skip some flags that only apply to JavaBuilder.

+33 -0

0 comment

2 changed files

copybara-service[bot]

pr closed time in 11 hours

push eventgoogle/turbine

Liam Miller-Cushon

commit sha aabe1f4166b54f2826b08d93f396ac1a9ec16e8e

Allow turbine to parse JavaBuilder command lines Add a couple of aliases, and skip some flags that only apply to JavaBuilder. PiperOrigin-RevId: 359867369

view details

push time in 11 hours

push eventgoogle/turbine

Liam Miller-Cushon

commit sha aabe1f4166b54f2826b08d93f396ac1a9ec16e8e

Allow turbine to parse JavaBuilder command lines Add a couple of aliases, and skip some flags that only apply to JavaBuilder. PiperOrigin-RevId: 359867369

view details

push time in 11 hours

push eventgoogle/turbine

Liam Miller-Cushon

commit sha 87cba249fd1bf605f7026869f56339827a56831d

Allow turbine to parse JavaBuilder command lines Add a couple of aliases, and skip some flags that only apply to JavaBuilder. PiperOrigin-RevId: 359809639

view details

push time in 12 hours

push eventgoogle/guice

Amy Fu

commit sha ddc087d014ec1eb759df2def2c50f4701a3780e4

publish 5.0.1 docs

view details

push time in 12 hours

created taggoogle/guice

tag5.0.1

Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 6 and above, brought to you by Google.

created time in 13 hours

push eventgoogle/guice

guice-dev+github

commit sha a38ed22abeac0fc8e01490ef71eba228817e8b57

Latest javadoc & api-diffs on successful CI build e09d1eebd0ce545fcd683a1eaf623a40c071f058 auto-pushed to gh-pages

view details

push time in 14 hours

push eventgoogle/guava

Google Java Core Libraries

commit sha 3b8928f4f88ffec7f09756c2dc45f65fe990c50b

Internal change. PiperOrigin-RevId: 359827899

view details

push time in 14 hours

push eventgoogle/guava

Google Java Core Libraries

commit sha 3b8928f4f88ffec7f09756c2dc45f65fe990c50b

Internal change. PiperOrigin-RevId: 359827899

view details

push time in 14 hours

PR closed google/guava

Internal change. cla: yes

Internal change.

+4 -6

0 comment

2 changed files

copybara-service[bot]

pr closed time in 14 hours

delete branch google/guava

delete branch : test_359817819

delete time in 14 hours

issue commentgoogle/guice

Bundle-SymbolicName of guice-assistedinject 5.0.0 is broken and has the same name as guice

Some files were deleted between the beta and final cut, which affected the generated Manifest.MF. Will send out 5.0.1 to fix this.

AndreasTu

comment created time in 14 hours

PR merged google/guice

Add back build.properties files that were still used. cla: yes

Add back build.properties files that were still used.

+24 -0

0 comment

12 changed files

copybara-service[bot]

pr closed time in 14 hours

delete branch google/guice

delete branch : test_359822705

delete time in 14 hours

push eventgoogle/guice

Guice Team

commit sha e09d1eebd0ce545fcd683a1eaf623a40c071f058

Add back build.properties files that were still used. PiperOrigin-RevId: 359826559

view details

push time in 14 hours