小编Jor*_*ins的帖子

在自定义 doclet 中处理某些 5.0 语言功能(枚举和注释)的问题

我正在使用 JDK 1.7 编写一个全新的自定义 doclet。这些是我目前发现的问题:

文件的方法isAnnotationType()isAnnotationTypeElement()isEnum()并且isEnumConstant()不工作。他们总是返回 false

PackageDoc方法enums()不起作用。它总是返回一个空数组Enums包含在方法allClasses()和的结果中ordinaryClasses()

ClassDoc方法enumConstants()不起作用。它总是返回一个空数组Enum常量包含在 method 的结果中fields()

PackageDoc方法annotationTypes()不起作用。它总是返回一个空数组Annotations包含在 method 的结果中interfaces(),因此我可以实施以下解决方法:

AnnotationTypeDoc annotationDoc;
ClassDoc[] interfaces = packageDoc.interfaces();
for (ClassDoc classDoc : interfaces) {
if (classDoc instanceof AnnotationTypeDoc) {
    annotationDoc = (AnnotationTypeDoc) classDoc;
} else {
    continue;
}
process(annotationDoc); …
Run Code Online (Sandbox Code Playgroud)

enums annotations javadoc doclet

5
推荐指数
1
解决办法
144
查看次数

尝试使用嵌套事务控制执行过程时出现“错误:无效事务终止”

根据文档(https://www.postgresql.org/docs/current/app-psql.html),即使AUTOCOMMIT设置为关闭,PSQL 也会BEGIN在尚未位于事务块中的任何命令之前发出隐式命令本身不是一个BEGIN或其他事务控制命令,也不是不能在事务块内执行的命令,例如VACUUM. (不幸的CALL是,与 的处理方式不同VACCUM)。而且,根据 Shaun Thomas ( https://blog.2ndquadrant.com/pg-phriday-stored-procedures-postgres-11/ ) 的说法,发生无效交易终止错误是因为无法关闭当前交易(在此情况下)情况是由 PSQL 启动的)在过程中。我尝试了所有与事务控制相关的PSQL设置,但都出现无效事务终止错误;即使 PSQL 处理的命令文件仅包含该CALL语句。

这是我调用的程序:

create or replace procedure producto$cargar_imagenes(_super$ bigint, _archivo$ character varying) as $$
declare
    _msg character varying;
    _log rastro_proceso%ROWTYPE;
begin
    perform rastro_proceso_temporal$insert(_super$);
    perform producto$cargar_imagenes$biz(_super$, _archivo$);
    if (_super$ is not null and _super$ > 0) then
        perform producto$cargar_imagenes$log(_super$, _archivo$);
    else
        perform tarea_usuario$private$update(6519204281880642486, null);
    end if;
    commit;
end;
$$ language plpgsql set search_path …
Run Code Online (Sandbox Code Playgroud)

postgresql transactions commit plpgsql postgresql-11

5
推荐指数
1
解决办法
2万
查看次数