2015-11-09 2 views
11

कई बार मैंने इस तरह stacktraces मिल (कृपया भ्रामक लाइन के लिए तीर देखें):

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [PRIMARY]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement 
       at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:164) 
       at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:741) 
       at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:589) 
       at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) 
       at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) 
       at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485) 
       at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291) 
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
       at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653) 
--------->  at com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>) 
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
... 
... 
... 

क्या $$ संकेत है, और क्या 'उत्पन्न' है इस पंक्ति में इसका मतलब है? com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>)

और क्यों यह केवल निष्पादित विधि कहता है लेकिन इसमें रेखा नहीं है?

उत्तर

13

$ कक्षा के नामों में एक अनुमत चरित्र है।

नाम SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639 संकेत देता है कि यह एक वर्ग है जिसे सीजीआईएलबी का उपयोग करके स्प्रिंग फ्रेमवर्क द्वारा रनटाइम पर गतिशील रूप से जेनरेट किया गया था।

वे $$ का उपयोग करते हैं और मौजूदा कक्षाओं के साथ संघर्ष से बचने के लिए इस वर्ग का नाम अद्वितीय बनाने के लिए एक संख्यात्मक ऑफसेट का उपयोग करते हैं।

stracktrace भी CGLIB द्वारा उत्पन्न की गई में स्ट्रिंग (<generated>):
जब CGLIB रनटाइम पर एक वर्ग बनाता है यह स्रोत फ़ाइल के नाम के लिए प्लेसहोल्डर के रूप में <generated> उपयोग करता है। तब स्टैकट्रैक वास्तविक स्रोत फ़ाइल और लाइन नंबर की बजाय बस इस स्ट्रिंग को प्रिंट करता है।

संबंधित मुद्दे