alibaba / alibaba/fastjson2

[BUG]从2.0.61版本开始,使用JSONB类的toBytes方法报错

Open
#7,806 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
4.4k
Forks
613
Avg merge
1d 22h
Merged PRs (30d)
6

Description

### 问题描述
*从2.0.61版本开始,使用JSONB类的toBytes方法报错*

### 环境信息
*请填写以下信息:*

- OS信息: windows 10
- JDK信息: JDK 1.8 & JDK17
- 版本信息:Fastjson2 2.0.61--Fastjson2 2.0.64

### 重现步骤
*如何操作可以重现该问题:*

1. 使用该方法报错:
```java
import com.alibaba.fastjson2.JSONB;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;

byte[] bytes = JSONB.toBytes(t, JSONWriter.Feature.WriteClassName);
```

### 期待的正确结果
*对您期望发生的结果进行清晰简洁的描述。*

### 相关日志输出
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1b889b4b]
[2026-08-24 22:03:19.371]-[ console]-[ 40.10.10.6]-[ console_super]-[non_tenant]-[ERROR]-[11f19fc48ef25a98b2154d68a3fa08d6]-[ http-nio-8095-exec-10]-[.infrastructure.log.service.imp.ExceptionStackLogServiceImpl]-[03:19] ==> console_super: Could not serialize: null; nested exception is java.lang.NullPointerException
org.springframework.data.redis.serializer.SerializationException: Could not serialize: null; nested exception is java.lang.NullPointerException
at com.yuanian.infrastructure.cache.service.EpochFastJson2WithZipRedisSerializer.serialize(EpochFastJson2WithZipRedisSerializer.java:42) ~[com.yuanian.infrastructure.cache-hotfix-ECS2.2.20250630.01-SNAPSHOT.jar:?]
at org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:44) ~[spring-data-redis-2.7.12.jar:2.7.12]
at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:287) ~[spring-data-redis-2.7.12.jar:2.7.12]
at org.springframework.data.redis.cache.RedisCache.serializeCacheValue(RedisCache.java:282) ~[spring-data-redis-2.7.12.jar:2.7.12]
at org.springframework.data.redis.cache.RedisCache.put(RedisCache.java:168) ~[spring-data-redis-2.7.12.jar:2.7.12]
at org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:87) ~[spring-context-5.3.27.jar:5.3.27]
at org.springframework.cache.interceptor.CacheAspectSupport$CachePutRequest.apply(CacheAspectSupport.java:837) ~[spring-context-5.3.27.jar:5.3.27]
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:430) ~[spring-context-5.3.27.jar:5.3.27]
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345) ~[spring-context-5.3.27.jar:5.3.27]
at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64) ~[spring-context-5.3.27.jar:5.3.27]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.27.jar:5.3.27]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.27.jar:5.3.27]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.27.jar:5.3.27]
at com.yuanian.console.service.imp.EnterpriseInfoServiceImpl$$EnhancerBySpringCGLIB$$6516b938.getEnterpriseInfo() ~[ecs-console-core-imp-hotfix-ECS2.2.20250630.01-20260824.130133-20.jar:?]
at com.yuanian.console.controller.EnterpriseInfoController.getEnterpriseInfo(EnterpriseInfoController.java:52) ~[ecs-console-core-imp-hotfix-ECS2.2.20250630.01-20260824.130133-20.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.27.jar:5.3.27]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.27.jar:5.3.27]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.27.jar:5.3.27]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665) ~[javax.servlet-api-4.0.1.jar:4.0.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.27.jar:5.3.27]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) ~[javax.servlet-api-4.0.1.jar:4.0.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.yuanian.common.config.SwaggerFilter.doFilter(SwaggerFilter.java:87) ~[ecs-common-hotfix-ECS2.2.20250630.01-20260824.125949-23.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114) ~[druid-1.2.11.jar:1.2.11]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.yuanian.auth.service.filter.XSSSecurityFilter.doFilterInternal(XSSSecurityFilter.java:50) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at com.yuanian.auth.service.filter.AbstractGenericFilter.doFilter(AbstractGenericFilter.java:177) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.yuanian.intserv.filter.ApiAuditFilter.doFilter(ApiAuditFilter.java:75) ~[ecs-intserv-core-imp-hotfix-ECS2.2.20250630.01-20260824.130703-20.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.yuanian.auth.service.filter.LoginAuthFilter.doFilterInternal(LoginAuthFilter.java:95) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at com.yuanian.auth.service.filter.AbstractGenericFilter.doFilter(AbstractGenericFilter.java:177) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at com.yuanian.auth.service.filter.CommonFilter.doFilterInternal(CommonFilter.java:146) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at com.yuanian.auth.service.filter.AbstractGenericFilter.doFilter(AbstractGenericFilter.java:177) ~[ecs-auth-core-imp-hotfix-ECS2.2.20250630.01-20260824.125946-23.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.27.jar:5.3.27]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.7.12.jar:2.7.12]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.27.jar:5.3.27]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
Caused by: java.lang.NullPointerException
at com.alibaba.fastjson2.JSONB$IO.writeEnum(JSONB.java:2196) ~[fastjson2-2.0.61.jar:?]
at com.alibaba.fastjson2.writer.OWG_4_5_ResultValue.writeJSONB(Unknown Source) ~[?:?]
at com.alibaba.fastjson2.JSONB.toBytes(JSONB.java:1836) ~[fastjson2-2.0.61.jar:?]
at com.yuanian.infrastructure.cache.service.EpochFastJson2WithZipRedisSerializer.serialize(EpochFastJson2WithZipRedisSerializer.java:39) ~[com.yuanian.infrastructure.cache-hotfix-ECS2.2.20250630.01-SNAPSHOT.jar:?]
... 85 more
[2026-08-24 22:03:19.382]-[ console]-[ 40.10.10.6]-[ console_super]-[non_tenant]-[DEBUG]-[11f19fc48f00b27bb215bb79bbf2cff4]-[ http-nio-8095-exec-1]-[ngframework.beans.factory.support.DefaultListableBeanFactory]-[03:19] ==> console_super: Creating shared instance of singleton bean 'com.yuanian.console.service.trigger.ConsoleAppTrigger'
Creating a new SqlSession
Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@65a695d1]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e46953d] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@4176791e] will be managed by Spring
==> Preparing: insert into TP_LOG_EXCEPTION_STACK (TRACE_ID,UPDATE_DATE,UPDATE_LOGIN,FUNCTION_NAME,MODULE_NAME,P_APP_ID,USER_NAME,SERVICE_NAME,VERSION_NUMBER,ERROR_MSG,P_DELETED,CREATE_BY,LOG_LEVEL,CLIENT_KEY,UPDATE_BY,TENANT_ID,ERROR_STACK,CLAZZ,OBJECT_ID,CREATE_DATE) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@154eb02d] will not be managed by Spring
==> Preparing: select MD_consoleApp.APP_CODE as "appCode",MD_consoleApp.APP_NAME as "appName",MD_consoleApp.APP_TYPE as "appType",MD_consoleApp.DISABLED as "disabled",MD_consoleApp.GROUP_ID as "groupId",MD_consoleApp.GROUPED as "grouped",MD_consoleApp.ICON as "icon",MD_consoleApp.ICON_COLOR as "iconColor",MD_consoleApp.LINK as "link",MD_consoleApp.NEW_WINDOW as "newWindow",MD_consoleApp.OPEN_MODE as "openMode",MD_consoleApp.PRIORITY as "priority",MD_consoleApp.SERVICE_NAME as "serviceName",MD_consoleApp.OBJECT_ID as "objectId" from TP_CONSOLE_APP MD_consoleApp where 1=1 and MD_consoleApp.GROUPED =? and MD_consoleApp.DISABLED =? and MD_consoleApp.OBJECT_ID =? and MD_consoleApp.P_DELETED =? and ( EXISTS (SELECT 1 FROM TP_CONSOLE_USER_ROLE UR, TP_AUTH_ROLE_APP_MENU RA WHERE UR.USER_ID = 'd4e688ab67cb11e89a3ce9a8d592ce6c' AND UR.ROLE_ID = RA.ROLE_ID AND RA.APP_ID = MD_consoleApp.OBJECT_ID)) order by MD_consoleApp.PRIORITY
==> Parameters: FALSE(String), FALSE(String), 5fa74ca2287b11eb845085c9e0625adb(String), FALSE(String)
==> Parameters: 11f19fc48ef25a98b2154d68a3fa08d6(String), 2026-08-24T22:03:19(LocalDateTime), console_super(String), 未知(String), 其他(String), 5fa74ca2287b11eb845085c9e0625adb(String), console_super(console_super)(String), console(String), 1(Integer), Could not serialize: null; nested exception is java.lang.NullPointerException(String), FALSE(String), d4e688ab67cb11e89a3ce9a8d592ce6c(String), ERROR(String), 11f19fa4159e6115b6e4f5c8770729ed(String), d4e688ab67cb11e89a3ce9a8d592ce6c(String), system(String), java.lang.NullPointerException
com.alibaba.fastjson2.JSONB$IO.writeEnum(JSONB.java:2196)
com.alibaba.fastjson2.writer.OWG_4_5_ResultValue.writeJSONB(Unknown Source)
com.alibaba.fastjson2.JSONB.toBytes(JSONB.java:1836)
com.yuanian.infrastructure.cache.service.EpochFastJson2WithZipRedisSerializer.serialize(EpochFastJson2WithZipRedisSerializer.java:39)
org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:44)
org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:287)
org.springframework.data.redis.cache.RedisCache.serializeCacheValue(RedisCache.java:282)
org.springframework.data.redis.cache.RedisCache.put(RedisCache.java:168)
org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:87)
org.springframework.cache.interceptor.CacheAspectSupport$CachePutRequest.apply(CacheAspectSupport.java:837)
org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:430)
org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)
org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
com.yuanian.console.service.imp.EnterpriseInfoServiceImpl$$EnhancerBySpringCGLIB$$6516b938.getEnterpriseInfo()
com.yuanian.console.controller.EnterpriseInfoController.getEnterpriseInfo(EnterpriseInfoController.java:52)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
(String), org.springframework.data.redis.serializer.SerializationException(String), 11f19fc48f6c6ca3b2152d86c169a510(String), 2026-08-24T22:03:19(LocalDateTime)
<== Updates: 1
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@65a695d1]
Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@65a695d1]
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@65a695d1]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@65a695d1]
<== Total: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e46953d]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c1f28b0] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@4176791e] will not be managed by Spring
==> Preparing: select TEXT_KEY, LANGUAGE_CODE, TEXT_VALUE from TP_I18N_STATIC where TEXT_KEY = ? and LANGUAGE_CODE = ? AND P_DELETED='FALSE'
==> Parameters: CommonI18Enum.SYSTEM_EXCEPTION(String), zh_CN(String)
<== Total: 0

#### 附加信息
*无*

Contributor guide

Open the contributing guide

Research direction

Start at the JSONB.toBytes(t, JSONWriter.Feature.WriteClassName) entry point and reproduce the failure with a minimal Java object across Fastjson2 versions 2.0.61 through 2.0.64. Compare the complete exception and serialized result with the prior behavior; done means the call completes without the reported NullPointerException and produces valid bytes.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
40/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.