Skip to content

Instantly share code, notes, and snippets.

@mp911de
Last active June 1, 2017 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mp911de/4ca2a303731a417931f9c713db9f9c8f to your computer and use it in GitHub Desktop.
Save mp911de/4ca2a303731a417931f9c713db9f9c8f to your computer and use it in GitHub Desktop.
package com.example.demo9;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Demo9Application implements CommandLineRunner {
@Autowired PersonRepository personRepository;
@Autowired ReactivePersonRepository reactivePersonRepository;
@Override
public void run(String... strings) throws Exception {
Person person = new Person("foo");
personRepository.defaultSaveMethod(person);
System.out.println(reactivePersonRepository.findAll().blockFirst());
}
public static void main(String[] args) {
SpringApplication.run(Demo9Application.class, args);
}
}
package com.example.demo9;
import org.springframework.data.annotation.Id;
/**
* @author Mark Paluch
*/
public class Person {
@Id String id;
final String name;
public Person(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
}
package com.example.demo9;
import org.springframework.data.repository.CrudRepository;
/**
* @author Mark Paluch
*/
public interface PersonRepository extends CrudRepository<Person, String> {
default void defaultSaveMethod(Person person) {
save(person);
}
}
package com.example.demo9;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
/**
* @author Mark Paluch
*/
public interface ReactivePersonRepository extends ReactiveCrudRepository<Person, String> {
}
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.createAccessorClass(ClassGeneratingPropertyAccessorFactory.java:165) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.potentiallyCreateAndRegisterPersistentPropertyAccessorClass(ClassGeneratingPropertyAccessorFactory.java:149) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.lambda$getPropertyAccessor$0(ClassGeneratingPropertyAccessorFactory.java:80) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1137) ~[na:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.getPropertyAccessor(ClassGeneratingPropertyAccessorFactory.java:79) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.BasicPersistentEntity.getPropertyAccessor(BasicPersistentEntity.java:428) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.IdPropertyIdentifierAccessor.<init>(IdPropertyIdentifierAccessor.java:55) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.BasicPersistentEntity.getIdentifierAccessor(BasicPersistentEntity.java:442) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.repository.core.support.PersistentEntityInformation.getId(PersistentEntityInformation.java:53) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.repository.core.support.AbstractEntityInformation.isNew(AbstractEntityInformation.java:43) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.save(SimpleMongoRepository.java:78) ~[spring-data-mongodb-2.0.0.BUILD-20170529.074114-84.jar:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:563) ~[na:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.executeMethodOn(RepositoryFactorySupport.java:514) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:499) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:455) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:436) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:52) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:58) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at com.sun.proxy.$Proxy49.save(Unknown Source) ~[na:na]
at com.example.demo9.PersonRepository.defaultSaveMethod(PersonRepository.java:11) ~[classes/:na]
at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:638) ~[na:na]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:58) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:58) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-5.0.0.BUILD-20170530.111937-244.jar:5.0.0.BUILD-SNAPSHOT]
at com.sun.proxy.$Proxy49.defaultSaveMethod(Unknown Source) ~[na:na]
at com.example.demo9.Demo9Application.run(Demo9Application.java:19) [classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:834) [spring-boot-2.0.0.BUILD-20170530.170006-665.jar:2.0.0.BUILD-SNAPSHOT]
... 11 common frames omitted
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @44c79f32
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337) ~[na:na]
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:281) ~[na:na]
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:197) ~[na:na]
at java.base/java.lang.reflect.Method.setAccessible(Method.java:191) ~[na:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory$Evil.defineClass(ClassGeneratingPropertyAccessorFactory.java:1466) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory$PropertyAccessorClassGenerator.generateCustomAccessorClass(ClassGeneratingPropertyAccessorFactory.java:278) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.createAccessorClass(ClassGeneratingPropertyAccessorFactory.java:163) ~[spring-data-commons-2.0.0.BUILD-SNAPSHOT.jar:na]
... 51 common frames omitted
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment