Skip to content

Suggested fix for #2540 #2541

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 66 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
a2b9e69
Fix potential NullPointerException in JpaQueryCreator.
odrotbohm Jan 25, 2022
192bec3
Polishing.
odrotbohm Jan 25, 2022
32ffebf
Fix 'noSuchProperty' test case.
gregturn Jan 25, 2022
92c8b8a
Guard against Hibernate exposing non-embeddables as embeddables on ve…
odrotbohm Jan 26, 2022
5b4b4a3
Externalize build properties.
gregturn Jan 18, 2022
8c92e5b
Polishing.
mp911de Feb 4, 2022
8f68a75
Polishing.
mp911de Feb 4, 2022
b488c31
Removed deprecated usage of `Lazy`.
DiegoKrupitza Feb 4, 2022
d57ad71
Ignore fields with Optional.empty when performing Query by Example.
gregturn Jan 7, 2022
2e0963f
Polishing.
schauder Feb 4, 2022
3abc78d
Removed unnecessary interface modifier in `BeanDefinitionNames`.
DiegoKrupitza Feb 7, 2022
037ea9c
Remove unnecessary `toString()` call.
DiegoKrupitza Feb 7, 2022
314889b
Support compound IdClass ID's when calling deleteAllByIdInBatch.
ejl888 Jan 21, 2022
d0c3b1a
Polishing.
schauder Feb 8, 2022
91b0cb9
Remove of useless `throws ...` in jUnit tests.
DiegoKrupitza Feb 8, 2022
e3beadd
Correcting sort object reference in FetchableFluentQueryByExample.sor…
jonyschak Feb 13, 2022
4424414
Polishing.
schauder Feb 15, 2022
ad00738
Update CI properties.
gregturn Feb 15, 2022
ef5b0aa
Update copyright year to 2022.
christophstrobl Feb 17, 2022
a525d53
Prepare 2.7 M3 (2021.2.0).
mp911de Feb 18, 2022
602049e
Release version 2.7 M3 (2021.2.0).
mp911de Feb 18, 2022
f2a4278
Prepare next development iteration.
mp911de Feb 18, 2022
9fd335b
After release cleanups.
mp911de Feb 18, 2022
8fb25c6
Use Java 17 to build snapshots for Artifactory.
mp911de Feb 22, 2022
36c9b4d
Added exists method with specification to `JpaSpecificationExecutor`.
DiegoKrupitza Feb 21, 2022
af28245
Polishing.
schauder Feb 22, 2022
a255962
Upgrade to Maven Wrapper 3.8.4.
mp911de Feb 22, 2022
35a7644
Update CI properties.
mp911de Feb 22, 2022
c4d9bc6
Introduce JSqlParser as option for parsing native queries.
DiegoKrupitza Jan 22, 2022
8579477
Polishing.
gregturn Feb 22, 2022
0bc48aa
Explicit type replaced with diamond operator.
DiegoKrupitza Feb 28, 2022
3c804cf
Null arguments now get wrapped in a `TypedParameterValue` for Hibernate.
heowc Mar 8, 2022
dfb9d7a
Polishing.
schauder Mar 10, 2022
c9ba7e9
Use Java 8 to build snapshots for Artifactory.
mp911de Mar 15, 2022
edb9119
Prepare 2.7 M4 (2021.2.0).
gregturn Mar 21, 2022
4ae2968
Release version 2.7 M4 (2021.2.0).
gregturn Mar 21, 2022
7beabc6
Prepare next development iteration.
gregturn Mar 21, 2022
aa52ffe
After release cleanups.
gregturn Mar 21, 2022
9be2915
Use 'lower' for all ignoreCase operations.
gregturn Mar 18, 2022
b0edbf0
Add tests to verify AuditingEntityListener works with embeddables.
gregturn Mar 18, 2022
9a3ce8d
Polishing.
gregturn Mar 23, 2022
a9fbf4c
Fix missing `DISTINCT` in count queries.
DiegoKrupitza Dec 17, 2021
2b249c3
Properly handle nested ORDER BY clauses.
TAndronicus Sep 26, 2021
49a3b56
Convert Iterable<ID> to Collection<ID> for deleteAllByIdInBatch.
gregturn Apr 13, 2022
93ad49e
Allow count queries to start with whitespace.
gregturn Apr 14, 2022
a0c8a01
Fix grammar mistake in reference documentation.
gregturn Apr 14, 2022
e8933a2
Prepare 2.7 RC1 (2021.2.0).
christophstrobl Apr 19, 2022
aebc9f0
Release version 2.7 RC1 (2021.2.0).
christophstrobl Apr 19, 2022
f8fc87c
Prepare next development iteration.
christophstrobl Apr 19, 2022
7fe72db
After release cleanups.
christophstrobl Apr 19, 2022
a5cf01b
Fixes `*` bug in `createCountQueryFor`.
DiegoKrupitza Apr 28, 2022
e81c54b
Polishing.
gregturn May 4, 2022
304ecc8
Correctly handle order by aliases.
darinmanica May 1, 2022
017545b
Polishing.
gregturn May 4, 2022
0549fcc
Update Maven project meta information.
Apr 25, 2022
e549391
Fix case where the from clause is misidentified.
darinmanica May 5, 2022
0896c23
Fix debug logging in MergingPersistenceUnitManager.
missingdays May 10, 2022
187ced3
Verify custom finders can handle PageRequest as method parameter.
gregturn May 12, 2022
27d4f5d
Prepare 2.7 GA (2021.2.0).
christophstrobl May 13, 2022
7164510
Release version 2.7 GA (2021.2.0).
christophstrobl May 13, 2022
6e6302b
Prepare next development iteration.
christophstrobl May 13, 2022
8569a86
After release cleanups.
christophstrobl May 13, 2022
15b2505
Remove Docker Registry login.
jxblum May 16, 2022
77ffd73
JpaQueryLookupStrategy shouldn't use exceptions for flow control.
gregturn May 18, 2022
e9588a3
Integration test to verify the problem
cigaly May 23, 2022
2ecdf0d
Patch that fixes problem
cigaly May 23, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#Mon Oct 11 14:30:21 CEST 2021
distributionUrl=https\://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip
#Tue Feb 22 13:59:08 CET 2022
distributionUrl=https\://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
62 changes: 30 additions & 32 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
def p = [:]
node {
checkout scm
p = readProperties interpolate: true, file: 'ci/pipeline.properties'
}

pipeline {
agent none

triggers {
pollSCM 'H/10 * * * *'
upstream(upstreamProjects: "spring-data-commons/main", threshold: hudson.model.Result.SUCCESS)
upstream(upstreamProjects: "spring-data-commons/2.7.x", threshold: hudson.model.Result.SUCCESS)
}

options {
Expand All @@ -25,17 +31,15 @@ pipeline {
}
options { timeout(time: 30, unit: 'MINUTES') }
environment {
DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
DOCKER_HUB = credentials("${p['docker.credentials']}")
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
}
steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
docker.image('adoptopenjdk/openjdk8:latest').inside('-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home') {
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
sh 'PROFILE=all-dbs ci/test.sh'
sh "ci/clean.sh"
}
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
sh 'PROFILE=all-dbs ci/test.sh'
sh "ci/clean.sh"
}
}
}
Expand All @@ -56,33 +60,29 @@ pipeline {
}
options { timeout(time: 30, unit: 'MINUTES') }
environment {
ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
}
steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
docker.image('adoptopenjdk/openjdk11:latest').inside('-v $HOME:/tmp/jenkins-home') {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pjava11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
}
docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.basic']) {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
}
}
}
}

stage("test: baseline (jdk17)") {
stage("test: baseline (LTS)") {
agent {
label 'data'
}
options { timeout(time: 30, unit: 'MINUTES') }
environment {
ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
}
steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
docker.image('openjdk:17-bullseye').inside('-v $HOME:/tmp/jenkins-home') {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pjava11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
}
docker.image(p['docker.java.lts.image']).inside(p['docker.java.inside.basic']) {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
}
}
}
Expand All @@ -104,22 +104,20 @@ pipeline {
options { timeout(time: 20, unit: 'MINUTES') }

environment {
ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
}

steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
'-Dartifactory.server=https://repo.spring.io ' +
"-Dartifactory.username=${ARTIFACTORY_USR} " +
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
"-Dartifactory.staging-repository=libs-snapshot-local " +
"-Dartifactory.build-name=spring-data-jpa " +
"-Dartifactory.build-number=${BUILD_NUMBER} " +
'-Dmaven.test.skip=true clean deploy -U -B'
}
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
'-Dartifactory.server=https://repo.spring.io ' +
"-Dartifactory.username=${ARTIFACTORY_USR} " +
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
"-Dartifactory.staging-repository=libs-snapshot-local " +
"-Dartifactory.build-name=spring-data-jpa " +
"-Dartifactory.build-number=${BUILD_NUMBER} " +
'-Dmaven.test.skip=true clean deploy -U -B'
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ image:https://spring.io/badges/spring-data-jpa/snapshot.svg[Spring Data JPA,link

= Spring Data JPA image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-jpa%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-jpa/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]]

Spring Data JPA, part of the larger https://projects.spring.io/spring-data[Spring Data] family, makes it easy to easily implement JPA based repositories.
This module deals with enhanced support for JPA based data access layers.
Spring Data JPA, part of the larger https://projects.spring.io/spring-data[Spring Data] family, makes it easy to implement JPA-based repositories.
This module deals with enhanced support for JPA-based data access layers.
It makes it easier to build Spring-powered applications that use data access technologies.

Implementing a data access layer of an application has been cumbersome for quite a while.
Expand Down
29 changes: 29 additions & 0 deletions ci/pipeline.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Java versions
java.main.tag=8u322-b06-jdk
java.next.tag=11.0.14.1_1-jdk
java.lts.tag=17.0.2_8-jdk

# Docker container images - standard
docker.java.main.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.main.tag}
docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.next.tag}
docker.java.lts.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.lts.tag}

# Supported versions of MongoDB
docker.mongodb.4.0.version=4.0.28
docker.mongodb.4.4.version=4.4.12
docker.mongodb.5.0.version=5.0.6

# Supported versions of Redis
docker.redis.6.version=6.2.6

# Supported versions of Cassandra
docker.cassandra.3.version=3.11.12

# Docker environment settings
docker.java.inside.basic=-v $HOME:/tmp/jenkins-home
docker.java.inside.docker=-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home

# Credentials
docker.registry=
docker.credentials=hub.docker.com-springbuildmaster
artifactory.credentials=02bd1690-b54f-4c9f-819d-a77cb7a9822c
24 changes: 20 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,24 @@

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.7.0-SNAPSHOT</version>
<version>2.7.1-SNAPSHOT</version>

<name>Spring Data JPA</name>
<description>Spring Data module for JPA repositories.</description>
<url>https://projects.spring.io/spring-data-jpa</url>
<url>https://spring.io/projects/spring-data-jpa</url>
<scm>
<connection>scm:git:git://github.com:spring-projects/spring-data-jpa.git</connection>
<developerConnection>scm:git:[email protected]:spring-projects/spring-data-jpa.git</developerConnection>
<url>https://github.com/spring-projects/spring-data-jpa</url>
</scm>
<issueManagement>
<url>https://github.com/spring-projects/spring-data-jpa/issues</url>
</issueManagement>

<parent>
<groupId>org.springframework.data.build</groupId>
<artifactId>spring-data-parent</artifactId>
<version>2.7.0-SNAPSHOT</version>
<version>2.7.1-SNAPSHOT</version>
</parent>

<properties>
Expand All @@ -23,9 +31,10 @@

<eclipselink>2.7.9</eclipselink>
<hibernate>5.6.0.Final</hibernate>
<jsqlparser>4.3</jsqlparser>
<mysql-connector-java>8.0.23</mysql-connector-java>
<postgresql>42.2.19</postgresql>
<springdata.commons>2.7.0-SNAPSHOT</springdata.commons>
<springdata.commons>2.7.1-SNAPSHOT</springdata.commons>
<vavr>0.10.3</vavr>

<hibernate.groupId>org.hibernate</hibernate.groupId>
Expand Down Expand Up @@ -372,6 +381,13 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>${jsqlparser}</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
</dependencies>

<build>
Expand Down
2 changes: 1 addition & 1 deletion src/main/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ifdef::backend-epub3[:front-cover-image: image:epub-cover.png[Front Cover,1050,1
:spring-data-commons-docs: ../../../../spring-data-commons/src/main/asciidoc
:spring-framework-docs: https://docs.spring.io/spring-framework/docs/{springVersion}/spring-framework-reference/

(C) 2008-2021 The original authors.
(C) 2008-2022 The original authors.

NOTE: Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2016-2021 the original author or authors.
* Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -56,6 +56,7 @@
* @author Mark Paluch
* @author Oliver Gierke
* @author Jens Schauder
* @author Greg Turnquist
* @since 1.10
*/
public class QueryByExamplePredicateBuilder {
Expand Down Expand Up @@ -146,6 +147,10 @@ static List<Predicate> getPredicates(String path, CriteriaBuilder cb, Path<?> fr

Object attributeValue = optionalValue.get();

if (attributeValue == Optional.empty()) {
continue;
}

if (attribute.getPersistentAttributeType().equals(PersistentAttributeType.EMBEDDED)
|| (isAssociation(attribute) && !(from instanceof From))) {

Expand Down Expand Up @@ -273,7 +278,7 @@ public String toString() {

StringBuilder sb = new StringBuilder();
if (parent != null) {
sb.append(parent.toString());
sb.append(parent);
sb.append(" -");
sb.append(name);
sb.append("-> ");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2014-2021 the original author or authors.
* Copyright 2014-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2015-2021 the original author or authors.
* Copyright 2015-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2021 the original author or authors.
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2021 the original author or authors.
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/springframework/data/jpa/domain/JpaSort.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2013-2021 the original author or authors.
* Copyright 2013-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -161,7 +161,7 @@ public JpaSort and(@Nullable Direction direction, Path<?, ?>... paths) {

Assert.notNull(paths, "Paths must not be null!");

List<Order> existing = new ArrayList<Order>();
List<Order> existing = new ArrayList<>();

for (Order order : this) {
existing.add(order);
Expand All @@ -181,7 +181,7 @@ public JpaSort andUnsafe(@Nullable Direction direction, String... properties) {

Assert.notEmpty(properties, "Properties must not be empty!");

List<Order> orders = new ArrayList<Order>();
List<Order> orders = new ArrayList<>();

for (Order order : this) {
orders.add(order);
Expand Down Expand Up @@ -216,7 +216,7 @@ public JpaSort andUnsafe(@Nullable Direction direction, String... properties) {

private static List<Order> combine(List<Order> orders, @Nullable Direction direction, List<Path<?, ?>> paths) {

List<Order> result = new ArrayList<Sort.Order>(orders);
List<Order> result = new ArrayList<>(orders);

for (Path<?, ?> path : paths) {
result.add(new Order(direction, path.toString()));
Expand Down Expand Up @@ -315,7 +315,7 @@ private Path(List<? extends Attribute<?, ?>> attributes) {
* @return
*/
public <A extends Attribute<S, U>, U> Path<S, U> dot(A attribute) {
return new Path<S, U>(add(attribute));
return new Path<>(add(attribute));
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2021 the original author or authors.
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2018-2021 the original author or authors.
* Copyright 2018-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2021 the original author or authors.
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2021 the original author or authors.
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Loading