【发布时间】:2015-10-08 07:35:10
【问题描述】:
当我尝试在 6.1.10 中编译一个 portlet 插件时,我遇到了一个奇怪的问题。
插件的第一个版本没有任何问题,并在SVN中提交。我做了这个插件的一个分支,并在 java 文件中做了一些更改,从那以后我无法从提示符编译它(在 Liferay Studio 2.2.x 中它编译正确)。
所以,现在我在同一个SDK中有同一个插件的两个版本,但是第一个版本编译没有问题,第二个出现以下错误:
[javac] 1. ERROR in /XXXX/liferay-plugins-sdk-6.1.10-ee-ga1/portlets/XXXX-portlet/docroot/WEB-INF/src/XXXX/ObjectFactory.java (at line 0)
[javac]
[javac] ^
[javac] Internal compiler error
[javac] java.lang.NullPointerException
[javac] at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:44)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:130)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:197)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:193)
[javac] at org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:231)
[javac] at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:594)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.resolveAnnotations(AnnotationDiscoveryVisitor.java:143)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.visit(AnnotationDiscoveryVisitor.java:131)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1198)
[javac] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundEnvImpl.<init>(RoundEnvImpl.java:56)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:148)
[javac] at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:794)
[javac] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:423)
[javac] at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:3543)
[javac] at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1645)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac] at java.lang.reflect.Method.invoke(Method.java:597)
[javac] at org.eclipse.jdt.core.JDTCompilerAdapter.execute(JDTCompilerAdapter.java:79)
我检查了两个构建的类路径,它们除了插件文件夹的名称之外是相同的。由于他们构建在同一个SDK中,他们使用相同的java,相同的编译器,门户等。java版本是1.6.0_65,但问题也可以在不同的机器上重现。
另外,编译失败的类在两个项目中是相同的。
提前致谢。
【问题讨论】:
-
NullPointerException 在这个位置意味着您在 Eclipse(组件 JDT/Core)中遇到了一个错误。请在bugs.eclipse.org/bugs/… 提交错误,您将被询问更多调查所需的详细信息。
-
感谢您的建议。如果有人有兴趣,这里是错误的link:
标签: java compiler-errors liferay liferay-6 ecj