Skip to content

Commit ce63338

Browse files
committed
[MCOMPILER-485] Always use forward slash for internal package name
Per JLS 4.2.1 if the file separator character is not a forward slash, replace it
1 parent 2ce2698 commit ce63338

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,12 +1363,16 @@ private void createMissingPackageInfoClasses( CompilerConfiguration compilerConf
13631363
private byte[] generatePackage( CompilerConfiguration compilerConfiguration, String javaFile )
13641364
{
13651365
int version = getOpcode( compilerConfiguration );
1366+
String internalPackageName = javaFile.substring( 0, javaFile.length() - ".java".length() );
1367+
if ( File.separatorChar != '/' )
1368+
{
1369+
internalPackageName = internalPackageName.replace( File.separatorChar, '/' );
1370+
}
13661371
ClassWriter cw = new ClassWriter( 0 );
13671372
cw.visitSource( "package-info.java", null );
13681373
cw.visit( version,
13691374
Opcodes.ACC_SYNTHETIC | Opcodes.ACC_ABSTRACT | Opcodes.ACC_INTERFACE,
1370-
javaFile.substring( 0, javaFile.length() - ".java".length() ),
1371-
null, "java/lang/Object", null );
1375+
internalPackageName, null, "java/lang/Object", null );
13721376
return cw.toByteArray();
13731377
}
13741378

0 commit comments

Comments
 (0)