Giter Site home page Giter Site logo

jetplugins / apidocx Goto Github PK

View Code? Open in Web Editor NEW
171.0 3.0 41.0 3.07 MB

Generate API documents to any place: YApi, RAP2, Eolink, etc.

Home Page: https://plugins.jetbrains.com/plugin/17425-apidocx/

License: Apache License 2.0

Java 100.00%
apifox eolink openapi rap2 showdoc yapi

apidocx's People

Contributors

bofa1ex avatar chengliangcode avatar lkqm avatar rewuir avatar wulangcode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

apidocx's Issues

fix: 接口常量字段未被过滤

public static boolean isNeedField(PsiField field) {
    PsiModifierList modifierList = field.getModifierList();
    if (modifierList == null || !modifierList.hasExplicitModifier(PsiModifier.STATIC)) {
        return true;
    }
    return false;
}
public interface TestInterface{
    Map<String,Integer> FIELD_MAPPINGS = Map.of("1",2,"3",4);
}

image

希望可以支持 RESTful 风格 get接口正则

接口

/**
   * 根据id查询工单详情
   *
   * @param id 任务Id
   * @return 数据详情
   */
  @GetMapping("/{id:\\d+}")
  public ApiResult getInfo(@PathVariable String id) {

image

错误信息

io.yapix.base.sdk.yapi.YapiException: path位必需为 /, 只允许由 字母数字-/_:.! 组成 at 
io.yapix.base.sdk.yapi.YapiClient.doHandleResponse(YapiClient.java:227) at 
io.yapix.base.sdk.yapi.AbstractClient.execute(AbstractClient.java:99) at 
io.yapix.base.sdk.yapi.AbstractClient.doRequest(AbstractClient.java:55) at 
io.yapix.base.sdk.yapi.YapiClient.requestPost(YapiClient.java:186) at 
io.yapix.base.sdk.yapi.YapiClient.saveInterface(YapiClient.java:136) at 
io.yapix.process.yapi.process.YapiUploader.addOrUpdate(YapiUploader.java:97) at 
io.yapix.process.yapi.process.YapiUploader.upload(YapiUploader.java:33) at 
io.yapix.process.yapi.YapiUploadAction.lambda$handle$0(YapiUploadAction.java:63) at 
io.yapix.action.AbstractAction$1.lambda$run$0(AbstractAction.java:235) at 
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at 
java.base/java.lang.Thread.run(Thread.java:829)

支持多种模式更新策略

希望可以支持yapi的完全覆盖策略

image

目前我有个情况,原先一个controller有3个接口,现在经过优化后2个接口就可以了。但是现在我上传通过coller,只是变更了我修改后的2个接口,我废弃的接口没有被删除

fix: markdown 拼接请求体/响应体 npe error

private String getBodySnippets(String title, Property property) {
    if (property == null) {
        return "";
    }
    StringBuilder markdown = new StringBuilder();
    markdown.append(format("*%s:*", title)).append("\n\n");
    markdown.append("| 名称 | 必选 | 类型 | 默认值 | 描述 |").append("\n");
    markdown.append("| - | - | - | - | - |").append("\n");
    if (property.isObjectType()) {
       // property#properties npe error, 建议optional包装处理.
        property.getProperties().values().forEach(p -> markdown.append(propertyRowSnippets(p, 1)));
    } else {
        markdown.append(propertyRowSnippets(property, 1));
    }
    return markdown.toString();
}

提交到YApi上的接口状态以及请求的时间参数格式

1.通过插件提交到YApi上面的接口状态全部都是未完成,希望有对应的注解或者提交后都是已完成状态

2.通过插件提交到YApi上面的接口的请求参数无论是LocalDate、LocalDateTime、Date 在备注栏都是 yyyy-MM-dd HH:mm:ss 希望LocalDate和LocalDateTime 有区分(如以下两张图片)

image

image

idea导出接口报too complex

您好,
idea 版本IntelliJ IDEA 2022.2.3
idea yapi插件 Easy Yapi Tangcent 2.4.7.191.0

错误信息
......is too complex. Blocked by elements reached 1417

feat: 选中非java文件但未打开编辑器的情况下, 不显示yapix菜单

Editor editor = event.getDataContext().getData(CommonDataKeys.EDITOR);
VirtualFile file = event.getDataContext().getData(CommonDataKeys.VIRTUAL_FILE);
// 当选中非java文件, 但未打开编辑器时, yapix正常回显.
if (editor != null && file != null && !"java".equals(file.getExtension())) {
    visible = false;
}

推送 RAP2 报错

IDEA版本:2022.2

推送到RAP2报错
Config file error: Failed making field 'java.util.regex.Pattern#pattern' accessible; either change its visibility or write a custom TypeAdapter for its declaring type

feat: 优化交互细节

  1. 当未找到配置文件时,提供创建初始配置文件快捷动作
  2. 配置文件.yapix设置语法为properties
  3. 优化登录时网络不通,交互短暂卡死问题

feat:建议导出接口支持 ResponseBodyAdvice 统一返回配置

为了代码简洁,通常springboot项目都会实现org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<T> 这个类去做统一响应处理。例如:

/**
 * 统一响应结果
 */
@Data
public class Result<T> implements Serializable {
    private static final long serialVersionUID = 8925927757015090232L;
    /** 响应编码 */
    private String code;
    /** 响应消息 */
    private String msg;
    /** 响应数据 */
    private T data;
}

/**
 * 统一处理响应结果
 * 处理后,不需要在Controller层的每个接口返回结果再包一层Result<T>
 */
@Slf4j
@RestControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice<Object> {
    @Override
    public boolean supports(MethodParameter returnType, Class converterType) {
        return true;
    }
    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                                  Class<? extends HttpMessageConverter<?>> selectedConverterType,
                                  ServerHttpRequest request, ServerHttpResponse response) {
        if (body instanceof Result) {
            return body;
        }
        return Result.success(body);
    }
}

/**
 * 测试实体类
 */
@Data
public class TestDTO implements Serializable {
    private static final long serialVersionUID = -5026639589154791246L;
    /** 
     * 名称
     * */
    private String name;
    /**
     * 性别
     */
    private String gender;
}

@Slf4j
@Validated
@RestController
@RequestMapping("test")
public class TestController {
    /**
     * 测试接口
     * @return 结果对象
     */
    @GetMapping
    public TestDTO test(){
        TestDTO entity = new TestDTO();
        entity.setGender("男");
        return entity;
    }
}

经过统一处理,接口test()最终返回结果如下:

{
  "code": "00000",
  "msg": "成功",
  "data": {
    "name": "名称",
    "gender": ""
  }
}

理论上对应的接口文档响应结果字段应该是这样的:

名称 类型 是否必须 备注 其他信息
code string 非必须 响应编码
msg string 非必须 响应消息
data object 非必须 响应数据 备注: 响应数据
name string 非必须 名称
gender string 非必须 性别

但是实际只生成了如下文档:

名称 类型 是否必须 备注 其他信息
name string 非必须 名称
gender string 非必须 性别

因此建议插件增加一个结果类型(Result)配置开关,如果开启并配置了这个Result类,当扫描接口返回结果类型时,如果类型是Result类,则直接生成文档;如果不是,则包上这一层Result类,再生成接口文档。 这样,才不会生成错误的接口文档。

feat: 新增接口推送策略

问题描述:

目前同一个controller推送两次,就创建了两次不会去重,希望可以新增接口推送策略,支持覆盖更新等操作

idea中使用插件上传文档至yapi提示Yapi X: The current class must declare category

插件版本:0.9.2

错误提示信息:Yapi X: The current class must declare category

源代码如下:

@RestController
@RequestMapping("/v1/auth")
@ShenyuSpringMvcClient(path = "/v1/auth/**")
public class SynergyAuthController {

    private final SynergyAuthService authService;

    @Autowired
    public SynergyAuthController(SynergyAuthService authService) {
        this.authService = authService;
    }

    /**
     * 切换租户
     *
     * @param param 选择的租户
     * @return 状态
     */
    @PostMapping("/group/switchover")
    public Result<AuthGroupSwitchoverVO> groupSwitchover(@RequestBody @Valid AuthGroupSwitchoverParam param) {
        return Result.success(authService.groupSwitchover(param));
    }

    /**
     * 扫码验证
     *
     * @param param 验证状态
     * @return 状态
     */
    @PostMapping("/valid/make")
    public Result<AuthValidMakeVO> validMake(@RequestBody @Valid AuthValidMakeParam param) {
        return Result.success(authService.validMake(param));
    }

}

使用用户收集

如果您或者您所在的公司正在使用该插件,请让我们知道留下您的评论,收集仅用于宣传。

参考格式:
公司名称:您所在的公司或你的github链接
API平台:YApi/Rap2/Eolinker/ShowDoc/Markdown
原API管理方式: swagger/手动录入等

fix: controller 接口解析异常

问题: 使用yapix 解析的controller 比使用swagger 解析出来的接口少。

效果:

  • swagger 解析效果如下:
    image
  • yapix 解析效果如下:
    image

原因分析:

个人分析的原因如下,仅供参考

  • 不支持接口继承解析,目前我们这个项目存在接口继承的操作
    image

代码参考

  • 目前测试发现这个插件(RedsoftYapiUpload)支持,但是他支持的平台没有 yapix多,所以希望yapix可以支持这个操作

@RequestMapping识别不到

@RestController
@RequestMapping(value = "/index")
public class DemoController {
    /**
     * 测试接口
     * @return
     */
    @RequestMapping(value = "/demo", method = RequestMethod.POST)
    public String hotMap() {
        return "demo";
    }

}

类似上边的Demo,upload to yapi 异常:
java.lang.NullPointerException
at io.yapix.model.HttpMethod.of(HttpMethod.java:21)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.yapix.parse.parser.PathParser.parseRequestMappingAnnotation(PathParser.java:89)
at io.yapix.parse.parser.PathParser.parse(PathParser.java:41)
at io.yapix.parse.ApiParser.parseMethod(ApiParser.java:144)
at io.yapix.parse.ApiParser.parse(ApiParser.java:61)
at io.yapix.action.AbstractAction.parse(AbstractAction.java:118)
at io.yapix.action.AbstractAction.actionPerformed(AbstractAction.java:90)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:296)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:281)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:285)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6650)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at java.desktop/java.awt.Component.processEvent(Component.java:6415)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5025)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:912)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:844)
at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

feat: 支持接口/实体类 @see引用派生类获取扁平化字段列表信息

存在以下场景, 返参类型是JobDTO.
其字段content接口响应结果为向下转型后的派生类对象.
因此接口文档中关于content@object的描述需要涵盖NormalJobContentDTO/WorkflowJobContentDTO内的所有字段.

public class JobDTO {
    /**
     * 任务实例内容
     * [note]返回对象为向下转型后的派生类
     */
    private JobContentDTO content;
}

/**
 * @see NormalJobContentDTO
 * @see WorkflowJobContentDTO
 */
public interface JobContentDTO {

}

public class NormalJobContentDTO implements JobContentDTO {
    /**
     * 任务实例#field0
     */
    private Integer field0;
}

public class WorkflowJobContentDTO implements JobContentDTO {
    /**
     * 工作流实例#子任务DAG
     */
    private String dags;
}

接口文档大致如下
image

feat: 支持配置路径前缀

场景: 微服务中多个子项目接口,上传到yapi中单个项目中,此时无法使用yapi平台项目的统一前缀配置

feat: 希望能支持组合注解的场景

作者好
目前业务上,可能会对@controller(@RestController)在进一步包装
举个例子 定义一个@ValidController的注解 它是 @Valid@controller 的组合注解
例如

@Validated
@RestController
public @interface ValidController {

    @AliasFor(annotation = Controller.class) String value() default "";
}

这时候 对于加上了这个注解的Controller类 yapix会认为他不是合法的controller 因此不进行接口的上传
想问一下可否加入对这种场景的支持呢
谢谢

IDEA 2022.2 ERROR

idea 2020就可以
idea 2022.2报错如下

com.google.gson.JsonIOException: Failed making field 'java.util.regex.Pattern#pattern' accessible; either change its visibility or write a custom TypeAdapter for its declaring type
at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:22)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:158)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:101)
at com.google.gson.Gson.getAdapter(Gson.java:501)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:116)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:165)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:101)
at com.google.gson.Gson.getAdapter(Gson.java:501)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
at com.google.gson.Gson.getAdapter(Gson.java:501)
at com.google.gson.Gson.fromJson(Gson.java:990)
at com.google.gson.Gson.fromJson(Gson.java:956)
at com.google.gson.Gson.fromJson(Gson.java:905)
at io.yapix.config.YapixConfig.fromProperties(YapixConfig.java:151)
at io.yapix.config.YapixConfig.getMergedInternalConfig(YapixConfig.java:161)
at io.yapix.action.AbstractAction.resolveConfig(AbstractAction.java:195)
at io.yapix.action.AbstractAction.actionPerformed(AbstractAction.java:80)
at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:315)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:294)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:337)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:294)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$performAction$4(ActionMenuItem.java:293)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:224)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.performAction(ActionMenuItem.java:286)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$new$0(ActionMenuItem.java:67)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$3(ActionMenuItem.java:109)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:109)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:546)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:578)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:743)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String java.util.regex.Pattern.pattern accessible: module java.base does not "opens java.util.regex" to unnamed module @c9347be
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:19)
... 72 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.