cloudspannerecosystem / spanner-schema-diff-tool

Compare two Cloud Spanner Schema (DDL) files, determine the differences and generate the required ALTER statements to convert one schema to the other.
Apache License 2.0
33 stars 17 forks source link

Add .mvn/jvm.config #94

Closed gurminder71 closed 6 months ago

gurminder71 commented 7 months ago

On Mac with various JDKs I could not do mvn compile. Ultimately found solution to have .mvn/jvm.config with following contents:

--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED

Please include this in the repository

nielm commented 6 months ago

Can you give some more explanation on when this happens (ie which JDKs, what part of build process)

Normally anything com.sun.* should be hidden from the users, and I have not seen the same issue so I am reluctant to add this to the repo for all users...

gurminder71 commented 6 months ago

I am using openjdk@21 installed using brew. Here is the complete output on Mac laptop:

% mvn clean generate-resources compile assembly:single
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------< com.google.cloud.solutions:spanner-ddl-diff >-------------
[INFO] Building spanner-ddl-diff 1.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.3.2:clean (default-clean) @ spanner-ddl-diff ---
[INFO] Deleting /Users/gurminder/spanner-schema-diff-tool/target
[INFO] 
[INFO] --- exec:3.2.0:exec (jjt-2-concat) @ spanner-ddl-diff ---
[INFO] 
[INFO] --- ph-javacc:4.1.5:jjtree-javacc (jjt-2-compile) @ spanner-ddl-diff ---
ParserGeneratorCC Version 1.1.4 (Tree Builder)
(type "jjtree" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/spanner-schema-diff-tool/target/generated-sources/jjtree-src/DdlParser.jjt . . .
Warning: Bad option name "STATIC".  Option setting will be ignored.
opt:java
File "Node.java" does not exist.  Will create one.
File "SimpleNode.java" does not exist.  Will create one.
File "ASTany_reserved_word.java" does not exist.  Will create one.
File "ASTany_string_literal.java" does not exist.  Will create one.
File "ASTany_bytes_literal.java" does not exist.  Will create one.
File "ASTexpression.java" does not exist.  Will create one.
File "ASTgooglesql_operator.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren.java" does not exist.  Will create one.
File "ASTpart.java" does not exist.  Will create one.
File "ASTidentifier_list.java" does not exist.  Will create one.
File "ASTidentifier.java" does not exist.  Will create one.
File "ASTqualified_identifier_list.java" does not exist.  Will create one.
File "ASTpath.java" does not exist.  Will create one.
File "ASTint_value.java" does not exist.  Will create one.
File "ASTstring_value.java" does not exist.  Will create one.
File "ASTddl_statement.java" does not exist.  Will create one.
File "ASTcreate_or_replace_statement.java" does not exist.  Will create one.
File "ASTalter_index_statement.java" does not exist.  Will create one.
File "ASTname.java" does not exist.  Will create one.
File "ASTadd.java" does not exist.  Will create one.
File "ASTdrop.java" does not exist.  Will create one.
File "ASTcolumn_name.java" does not exist.  Will create one.
File "ASToptions_clause.java" does not exist.  Will create one.
File "ASTcreate_database_statement.java" does not exist.  Will create one.
File "ASTdb_name.java" does not exist.  Will create one.
File "ASTcreate_table_statement.java" does not exist.  Will create one.
File "ASTcolumn_def.java" does not exist.  Will create one.
File "ASTnot_null.java" does not exist.  Will create one.
File "ASThidden.java" does not exist.  Will create one.
File "ASTcolumn_def_alter_attrs.java" does not exist.  Will create one.
File "ASTcolumn_def_alter.java" does not exist.  Will create one.
File "ASTset_not_null.java" does not exist.  Will create one.
File "ASTdrop_column_default.java" does not exist.  Will create one.
File "ASTdrop_not_null.java" does not exist.  Will create one.
File "ASTcolumn_type.java" does not exist.  Will create one.
File "ASTlength.java" does not exist.  Will create one.
File "ASTpgtype.java" does not exist.  Will create one.
File "ASTstruct_fields.java" does not exist.  Will create one.
File "ASTstruct_field.java" does not exist.  Will create one.
File "ASTcolumn_length.java" does not exist.  Will create one.
File "ASTgeneration_clause.java" does not exist.  Will create one.
File "ASTstored.java" does not exist.  Will create one.
File "ASTcolumn_default_clause.java" does not exist.  Will create one.
File "ASTcolumn_default_expression.java" does not exist.  Will create one.
File "ASTprimary_key.java" does not exist.  Will create one.
File "ASTforeign_key.java" does not exist.  Will create one.
File "ASTconstraint_name.java" does not exist.  Will create one.
File "ASTreferencing_columns.java" does not exist.  Will create one.
File "ASTreferenced_table.java" does not exist.  Will create one.
File "ASTreferenced_columns.java" does not exist.  Will create one.
File "ASTon_delete.java" does not exist.  Will create one.
File "ASTreferential_action.java" does not exist.  Will create one.
File "ASTno_action.java" does not exist.  Will create one.
File "ASTcascade.java" does not exist.  Will create one.
File "ASTstatement_token_no_paren.java" does not exist.  Will create one.
File "ASTcheck_constraint.java" does not exist.  Will create one.
File "ASTcheck_constraint_expression.java" does not exist.  Will create one.
File "ASTtable_interleave_clause.java" does not exist.  Will create one.
File "ASTinterleave_in.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_clause.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_expression.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_function.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_column.java" does not exist.  Will create one.
File "ASTinterval_expression.java" does not exist.  Will create one.
File "ASTon_delete_clause.java" does not exist.  Will create one.
File "ASTcreate_index_statement.java" does not exist.  Will create one.
File "ASTunique_index.java" does not exist.  Will create one.
File "ASTnull_filtered.java" does not exist.  Will create one.
File "ASTtable.java" does not exist.  Will create one.
File "ASTcolumns.java" does not exist.  Will create one.
File "ASTindex_interleave_clause.java" does not exist.  Will create one.
File "ASTcreate_change_stream_statement.java" does not exist.  Will create one.
File "ASTchange_stream_for_clause.java" does not exist.  Will create one.
File "ASTall.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables_entry.java" does not exist.  Will create one.
File "ASTexplicit_columns.java" does not exist.  Will create one.
File "ASTcolumn.java" does not exist.  Will create one.
File "ASTcreate_role_statement.java" does not exist.  Will create one.
File "ASTprivilege.java" does not exist.  Will create one.
File "ASTprivileges.java" does not exist.  Will create one.
File "ASTtarget_type.java" does not exist.  Will create one.
File "ASTtable_function.java" does not exist.  Will create one.
File "ASTfunction.java" does not exist.  Will create one.
File "ASTchange_stream.java" does not exist.  Will create one.
File "ASTview.java" does not exist.  Will create one.
File "ASTsequence.java" does not exist.  Will create one.
File "ASTprivilege_target.java" does not exist.  Will create one.
File "ASTgrantees.java" does not exist.  Will create one.
File "ASTgrant_statement.java" does not exist.  Will create one.
File "ASTrevoke_statement.java" does not exist.  Will create one.
File "ASTcreate_sequence_statement.java" does not exist.  Will create one.
File "ASTkey_part.java" does not exist.  Will create one.
File "ASTdesc.java" does not exist.  Will create one.
File "ASTstored_column.java" does not exist.  Will create one.
File "ASTstored_column_list.java" does not exist.  Will create one.
File "ASToption_key_val.java" does not exist.  Will create one.
File "ASTkey.java" does not exist.  Will create one.
File "ASTnulll.java" does not exist.  Will create one.
File "ASTbool_true_val.java" does not exist.  Will create one.
File "ASTbool_false_val.java" does not exist.  Will create one.
File "ASTinteger_val.java" does not exist.  Will create one.
File "ASTstr_val.java" does not exist.  Will create one.
File "ASTstr_val_list.java" does not exist.  Will create one.
File "ASTor_replace.java" does not exist.  Will create one.
File "ASTsql_security.java" does not exist.  Will create one.
File "ASTcreate_view_statement.java" does not exist.  Will create one.
File "ASTview_definition.java" does not exist.  Will create one.
File "ASTstatement_tokens.java" does not exist.  Will create one.
File "ASTif_not_exists.java" does not exist.  Will create one.
File "ASTif_exists.java" does not exist.  Will create one.
File "ASTcreate_schema_statement.java" does not exist.  Will create one.
File "ASTcreate_model_statement.java" does not exist.  Will create one.
File "ASTinput.java" does not exist.  Will create one.
File "ASToutput.java" does not exist.  Will create one.
File "ASTremote.java" does not exist.  Will create one.
File "ASTdrop_statement.java" does not exist.  Will create one.
File "ASTindex.java" does not exist.  Will create one.
File "ASTrole.java" does not exist.  Will create one.
File "ASTmodel.java" does not exist.  Will create one.
File "ASTschema.java" does not exist.  Will create one.
File "ASTalter_database_statement.java" does not exist.  Will create one.
File "ASTalter_table_statement.java" does not exist.  Will create one.
File "ASTtable_name.java" does not exist.  Will create one.
File "ASTdrop_constraint.java" does not exist.  Will create one.
File "ASTdrop_row_deletion_policy.java" does not exist.  Will create one.
File "ASTdrop_column.java" does not exist.  Will create one.
File "ASTalter_column.java" does not exist.  Will create one.
File "ASTset_on_delete.java" does not exist.  Will create one.
File "ASTadd_row_deletion_policy.java" does not exist.  Will create one.
File "ASTadd_column.java" does not exist.  Will create one.
File "ASTreplace_row_deletion_policy.java" does not exist.  Will create one.
File "ASTalter_change_stream_statement.java" does not exist.  Will create one.
File "ASTdrop_for_all.java" does not exist.  Will create one.
File "ASTalter_sequence_statement.java" does not exist.  Will create one.
File "ASTalter_schema_statement.java" does not exist.  Will create one.
File "ASTalter_model_statement.java" does not exist.  Will create one.
File "ASTanalyze_statement.java" does not exist.  Will create one.
File "DdlParserTreeConstants.java" does not exist.  Will create one.
File "JJTDdlParserState.java" does not exist.  Will create one.
Annotated grammar generated successfully in /Users/gurminder/spanner-schema-diff-tool/target/javacc-1714486997275/node/DdlParser.jj
ParserGeneratorCC Version 1.1.4 (ParserGeneratorCC)
(type "pgcc" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/spanner-schema-diff-tool/target/javacc-1714486997275/node/DdlParser.jj ...
Warning: Line 49, Column 3: Bad option name "STATIC".  Option setting will be ignored.
Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
Warning: Choice conflict in [...] construct at line 918, column 3.
         Expansion nested within construct and expansion following construct
         have common prefixes, one of which is: "bool"
         Consider using a lookahead of 2 or more for nested expansion.
File "TokenMgrException.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "CharStream.java" does not exist.  Will create one.
File "AbstractCharStream.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated with 0 errors and 2 warnings.
[INFO] Processed 1 grammar
[INFO] 
[INFO] --- build-helper:3.5.0:add-source (add-source) @ spanner-ddl-diff ---
[INFO] Source directory: /Users/gurminder/spanner-schema-diff-tool/target/generated-sources/jjtree added.
[INFO] 
[INFO] --- exec:3.2.0:exec (jjt-2-concat) @ spanner-ddl-diff ---
[INFO] 
[INFO] --- ph-javacc:4.1.5:jjtree-javacc (jjt-2-compile) @ spanner-ddl-diff ---
ParserGeneratorCC Version 1.1.4 (Tree Builder)
(type "jjtree" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/spanner-schema-diff-tool/target/generated-sources/jjtree-src/DdlParser.jjt . . .
Warning: Bad option name "STATIC".  Option setting will be ignored.
opt:java
File "Node.java" does not exist.  Will create one.
File "SimpleNode.java" does not exist.  Will create one.
File "ASTany_reserved_word.java" does not exist.  Will create one.
File "ASTany_string_literal.java" does not exist.  Will create one.
File "ASTany_bytes_literal.java" does not exist.  Will create one.
File "ASTexpression.java" does not exist.  Will create one.
File "ASTgooglesql_operator.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren.java" does not exist.  Will create one.
File "ASTpart.java" does not exist.  Will create one.
File "ASTidentifier_list.java" does not exist.  Will create one.
File "ASTidentifier.java" does not exist.  Will create one.
File "ASTqualified_identifier_list.java" does not exist.  Will create one.
File "ASTpath.java" does not exist.  Will create one.
File "ASTint_value.java" does not exist.  Will create one.
File "ASTstring_value.java" does not exist.  Will create one.
File "ASTddl_statement.java" does not exist.  Will create one.
File "ASTcreate_or_replace_statement.java" does not exist.  Will create one.
File "ASTalter_index_statement.java" does not exist.  Will create one.
File "ASTname.java" does not exist.  Will create one.
File "ASTadd.java" does not exist.  Will create one.
File "ASTdrop.java" does not exist.  Will create one.
File "ASTcolumn_name.java" does not exist.  Will create one.
File "ASToptions_clause.java" does not exist.  Will create one.
File "ASTcreate_database_statement.java" does not exist.  Will create one.
File "ASTdb_name.java" does not exist.  Will create one.
File "ASTcreate_table_statement.java" does not exist.  Will create one.
File "ASTcolumn_def.java" does not exist.  Will create one.
File "ASTnot_null.java" does not exist.  Will create one.
File "ASThidden.java" does not exist.  Will create one.
File "ASTcolumn_def_alter_attrs.java" does not exist.  Will create one.
File "ASTcolumn_def_alter.java" does not exist.  Will create one.
File "ASTset_not_null.java" does not exist.  Will create one.
File "ASTdrop_column_default.java" does not exist.  Will create one.
File "ASTdrop_not_null.java" does not exist.  Will create one.
File "ASTcolumn_type.java" does not exist.  Will create one.
File "ASTlength.java" does not exist.  Will create one.
File "ASTpgtype.java" does not exist.  Will create one.
File "ASTstruct_fields.java" does not exist.  Will create one.
File "ASTstruct_field.java" does not exist.  Will create one.
File "ASTcolumn_length.java" does not exist.  Will create one.
File "ASTgeneration_clause.java" does not exist.  Will create one.
File "ASTstored.java" does not exist.  Will create one.
File "ASTcolumn_default_clause.java" does not exist.  Will create one.
File "ASTcolumn_default_expression.java" does not exist.  Will create one.
File "ASTprimary_key.java" does not exist.  Will create one.
File "ASTforeign_key.java" does not exist.  Will create one.
File "ASTconstraint_name.java" does not exist.  Will create one.
File "ASTreferencing_columns.java" does not exist.  Will create one.
File "ASTreferenced_table.java" does not exist.  Will create one.
File "ASTreferenced_columns.java" does not exist.  Will create one.
File "ASTon_delete.java" does not exist.  Will create one.
File "ASTreferential_action.java" does not exist.  Will create one.
File "ASTno_action.java" does not exist.  Will create one.
File "ASTcascade.java" does not exist.  Will create one.
File "ASTstatement_token_no_paren.java" does not exist.  Will create one.
File "ASTcheck_constraint.java" does not exist.  Will create one.
File "ASTcheck_constraint_expression.java" does not exist.  Will create one.
File "ASTtable_interleave_clause.java" does not exist.  Will create one.
File "ASTinterleave_in.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_clause.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_expression.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_function.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_column.java" does not exist.  Will create one.
File "ASTinterval_expression.java" does not exist.  Will create one.
File "ASTon_delete_clause.java" does not exist.  Will create one.
File "ASTcreate_index_statement.java" does not exist.  Will create one.
File "ASTunique_index.java" does not exist.  Will create one.
File "ASTnull_filtered.java" does not exist.  Will create one.
File "ASTtable.java" does not exist.  Will create one.
File "ASTcolumns.java" does not exist.  Will create one.
File "ASTindex_interleave_clause.java" does not exist.  Will create one.
File "ASTcreate_change_stream_statement.java" does not exist.  Will create one.
File "ASTchange_stream_for_clause.java" does not exist.  Will create one.
File "ASTall.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables_entry.java" does not exist.  Will create one.
File "ASTexplicit_columns.java" does not exist.  Will create one.
File "ASTcolumn.java" does not exist.  Will create one.
File "ASTcreate_role_statement.java" does not exist.  Will create one.
File "ASTprivilege.java" does not exist.  Will create one.
File "ASTprivileges.java" does not exist.  Will create one.
File "ASTtarget_type.java" does not exist.  Will create one.
File "ASTtable_function.java" does not exist.  Will create one.
File "ASTfunction.java" does not exist.  Will create one.
File "ASTchange_stream.java" does not exist.  Will create one.
File "ASTview.java" does not exist.  Will create one.
File "ASTsequence.java" does not exist.  Will create one.
File "ASTprivilege_target.java" does not exist.  Will create one.
File "ASTgrantees.java" does not exist.  Will create one.
File "ASTgrant_statement.java" does not exist.  Will create one.
File "ASTrevoke_statement.java" does not exist.  Will create one.
File "ASTcreate_sequence_statement.java" does not exist.  Will create one.
File "ASTkey_part.java" does not exist.  Will create one.
File "ASTdesc.java" does not exist.  Will create one.
File "ASTstored_column.java" does not exist.  Will create one.
File "ASTstored_column_list.java" does not exist.  Will create one.
File "ASToption_key_val.java" does not exist.  Will create one.
File "ASTkey.java" does not exist.  Will create one.
File "ASTnulll.java" does not exist.  Will create one.
File "ASTbool_true_val.java" does not exist.  Will create one.
File "ASTbool_false_val.java" does not exist.  Will create one.
File "ASTinteger_val.java" does not exist.  Will create one.
File "ASTstr_val.java" does not exist.  Will create one.
File "ASTstr_val_list.java" does not exist.  Will create one.
File "ASTor_replace.java" does not exist.  Will create one.
File "ASTsql_security.java" does not exist.  Will create one.
File "ASTcreate_view_statement.java" does not exist.  Will create one.
File "ASTview_definition.java" does not exist.  Will create one.
File "ASTstatement_tokens.java" does not exist.  Will create one.
File "ASTif_not_exists.java" does not exist.  Will create one.
File "ASTif_exists.java" does not exist.  Will create one.
File "ASTcreate_schema_statement.java" does not exist.  Will create one.
File "ASTcreate_model_statement.java" does not exist.  Will create one.
File "ASTinput.java" does not exist.  Will create one.
File "ASToutput.java" does not exist.  Will create one.
File "ASTremote.java" does not exist.  Will create one.
File "ASTdrop_statement.java" does not exist.  Will create one.
File "ASTindex.java" does not exist.  Will create one.
File "ASTrole.java" does not exist.  Will create one.
File "ASTmodel.java" does not exist.  Will create one.
File "ASTschema.java" does not exist.  Will create one.
File "ASTalter_database_statement.java" does not exist.  Will create one.
File "ASTalter_table_statement.java" does not exist.  Will create one.
File "ASTtable_name.java" does not exist.  Will create one.
File "ASTdrop_constraint.java" does not exist.  Will create one.
File "ASTdrop_row_deletion_policy.java" does not exist.  Will create one.
File "ASTdrop_column.java" does not exist.  Will create one.
File "ASTalter_column.java" does not exist.  Will create one.
File "ASTset_on_delete.java" does not exist.  Will create one.
File "ASTadd_row_deletion_policy.java" does not exist.  Will create one.
File "ASTadd_column.java" does not exist.  Will create one.
File "ASTreplace_row_deletion_policy.java" does not exist.  Will create one.
File "ASTalter_change_stream_statement.java" does not exist.  Will create one.
File "ASTdrop_for_all.java" does not exist.  Will create one.
File "ASTalter_sequence_statement.java" does not exist.  Will create one.
File "ASTalter_schema_statement.java" does not exist.  Will create one.
File "ASTalter_model_statement.java" does not exist.  Will create one.
File "ASTanalyze_statement.java" does not exist.  Will create one.
File "DdlParserTreeConstants.java" does not exist.  Will create one.
File "JJTDdlParserState.java" does not exist.  Will create one.
Annotated grammar generated successfully in /Users/gurminder/spanner-schema-diff-tool/target/javacc-1714486997934/node/DdlParser.jj
ParserGeneratorCC Version 1.1.4 (ParserGeneratorCC)
(type "pgcc" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/spanner-schema-diff-tool/target/javacc-1714486997934/node/DdlParser.jj ...
Warning: Line 49, Column 3: Bad option name "STATIC".  Option setting will be ignored.
Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
Warning: Choice conflict in [...] construct at line 918, column 3.
         Expansion nested within construct and expansion following construct
         have common prefixes, one of which is: "bool"
         Consider using a lookahead of 2 or more for nested expansion.
File "TokenMgrException.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "CharStream.java" does not exist.  Will create one.
File "AbstractCharStream.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated with 0 errors and 2 warnings.
[INFO] Processed 1 grammar
[INFO] 
[INFO] --- build-helper:3.5.0:add-source (add-source) @ spanner-ddl-diff ---
[INFO] Source directory: /Users/gurminder/spanner-schema-diff-tool/target/generated-sources/jjtree added.
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ spanner-ddl-diff ---
[INFO] skip non existing resourceDirectory /Users/gurminder/spanner-schema-diff-tool/src/main/resources
[INFO] 
[INFO] --- compiler:3.13.0:compile (default-compile) @ spanner-ddl-diff ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 158 source files with javac [debug target 8] to target/classes
An exception has occurred in the compiler (21.0.2). Please file a bug against the Java compiler via the Java bug reporting page (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
java.lang.IllegalAccessError: class com.google.errorprone.BaseErrorProneJavaCompiler (in unnamed module @0xf95d64d) cannot access class com.sun.tools.javac.api.BasicJavacTask (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.api to unnamed module @0xf95d64d
    at com.google.errorprone.BaseErrorProneJavaCompiler.addTaskListener(BaseErrorProneJavaCompiler.java:92)
    at com.google.errorprone.ErrorProneJavacPlugin.init(ErrorProneJavacPlugin.java:34)
    at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugin(BasicJavacTask.java:256)
    at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:230)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:204)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:101)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:214)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1228)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:215)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] An unknown compilation problem occurred
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.922 s
[INFO] Finished at: 2024-04-30T07:23:18-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project spanner-ddl-diff: Compilation failure
[ERROR] An unknown compilation problem occurred
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
nielm commented 6 months ago

Ok, so its ErrorProne causing the issue.

Can you remove or comment out lines 121 and 129-130 from pom.xml and see if it helps?

            <!-- <arg>-Xplugin:ErrorProne -XepExcludedPaths:${project.build.directory}/generated-sources/.* -XepDisableWarningsInGeneratedCode</arg> -->

...

            <!-- <path>
              <groupId>com.google.errorprone</groupId>
              <artifactId>error_prone_core</artifactId>
              <version>${error-prone.version}</version>
            </path> -->
nielm commented 6 months ago

And indeed, Errorprone docs mention the issue in Maven and JDK 16+

nielm commented 6 months ago

Can you check to see if the change in #100 fixes it for you.

(and yes I can now repro locally - while I had JDK 17 installed, JDK 11 was the version being used by default due to PATH shenanigans!)

nielm commented 6 months ago

(PS thanks for raising these issues!)

gurminder71 commented 6 months ago

Pulled the latest code from main branch:

gurminder@gurminder-H2FYXYQN9R spanner-schema-diff-tool % mvn clean generate-resources compile assembly:single
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------< com.google.cloud.solutions:spanner-ddl-diff >-------------
[INFO] Building spanner-ddl-diff 1.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.3.2:clean (default-clean) @ spanner-ddl-diff ---
[INFO] Deleting /Users/gurminder/xxx/spanner-schema-diff-tool/target
[INFO] 
[INFO] --- exec:3.2.0:exec (jjt-2-concat) @ spanner-ddl-diff ---
[INFO] 
[INFO] --- ph-javacc:4.1.5:jjtree-javacc (jjt-2-compile) @ spanner-ddl-diff ---
ParserGeneratorCC Version 1.1.4 (Tree Builder)
(type "jjtree" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/xxx/spanner-schema-diff-tool/target/generated-sources/jjtree-src/DdlParser.jjt . . .
Warning: Bad option name "STATIC".  Option setting will be ignored.
opt:java
File "Node.java" does not exist.  Will create one.
File "SimpleNode.java" does not exist.  Will create one.
File "ASTany_reserved_word.java" does not exist.  Will create one.
File "ASTany_string_literal.java" does not exist.  Will create one.
File "ASTany_bytes_literal.java" does not exist.  Will create one.
File "ASTexpression.java" does not exist.  Will create one.
File "ASTgooglesql_operator.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren.java" does not exist.  Will create one.
File "ASTpart.java" does not exist.  Will create one.
File "ASTidentifier_list.java" does not exist.  Will create one.
File "ASTidentifier.java" does not exist.  Will create one.
File "ASTqualified_identifier_list.java" does not exist.  Will create one.
File "ASTpath.java" does not exist.  Will create one.
File "ASTint_value.java" does not exist.  Will create one.
File "ASTstring_value.java" does not exist.  Will create one.
File "ASTddl_statement.java" does not exist.  Will create one.
File "ASTdotted_path.java" does not exist.  Will create one.
File "ASTcreate_proto_bundle_statement.java" does not exist.  Will create one.
File "ASTalter_proto_bundle_statement.java" does not exist.  Will create one.
File "ASTinsert.java" does not exist.  Will create one.
File "ASTupdate.java" does not exist.  Will create one.
File "ASTdelete.java" does not exist.  Will create one.
File "ASTcreate_or_replace_statement.java" does not exist.  Will create one.
File "ASTalter_index_statement.java" does not exist.  Will create one.
File "ASTname.java" does not exist.  Will create one.
File "ASTadd.java" does not exist.  Will create one.
File "ASTdrop.java" does not exist.  Will create one.
File "ASTcolumn_name.java" does not exist.  Will create one.
File "ASToptions_clause.java" does not exist.  Will create one.
File "ASTcreate_database_statement.java" does not exist.  Will create one.
File "ASTdb_name.java" does not exist.  Will create one.
File "ASTcreate_table_statement.java" does not exist.  Will create one.
File "ASTcolumn_def.java" does not exist.  Will create one.
File "ASTnot_null.java" does not exist.  Will create one.
File "ASThidden.java" does not exist.  Will create one.
File "ASTcolumn_def_alter_attrs.java" does not exist.  Will create one.
File "ASTcolumn_def_alter.java" does not exist.  Will create one.
File "ASTset_not_null.java" does not exist.  Will create one.
File "ASTdrop_column_default.java" does not exist.  Will create one.
File "ASTdrop_not_null.java" does not exist.  Will create one.
File "ASTcolumn_type.java" does not exist.  Will create one.
File "ASTlength.java" does not exist.  Will create one.
File "ASTpgtype.java" does not exist.  Will create one.
File "ASTstruct_fields.java" does not exist.  Will create one.
File "ASTstruct_field.java" does not exist.  Will create one.
File "ASTcolumn_length.java" does not exist.  Will create one.
File "ASTgeneration_clause.java" does not exist.  Will create one.
File "ASTstored.java" does not exist.  Will create one.
File "ASTcolumn_default_clause.java" does not exist.  Will create one.
File "ASTcolumn_default_expression.java" does not exist.  Will create one.
File "ASTprimary_key.java" does not exist.  Will create one.
File "ASTforeign_key.java" does not exist.  Will create one.
File "ASTconstraint_name.java" does not exist.  Will create one.
File "ASTreferencing_columns.java" does not exist.  Will create one.
File "ASTreferenced_table.java" does not exist.  Will create one.
File "ASTreferenced_columns.java" does not exist.  Will create one.
File "ASTon_delete.java" does not exist.  Will create one.
File "ASTreferential_action.java" does not exist.  Will create one.
File "ASTno_action.java" does not exist.  Will create one.
File "ASTcascade.java" does not exist.  Will create one.
File "ASTstatement_token_no_paren.java" does not exist.  Will create one.
File "ASTcheck_constraint.java" does not exist.  Will create one.
File "ASTcheck_constraint_expression.java" does not exist.  Will create one.
File "ASTsynonym_clause.java" does not exist.  Will create one.
File "ASTsynonym.java" does not exist.  Will create one.
File "ASTtable_interleave_clause.java" does not exist.  Will create one.
File "ASTinterleave_in.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_clause.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_expression.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_function.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_column.java" does not exist.  Will create one.
File "ASTinterval_expression.java" does not exist.  Will create one.
File "ASTon_delete_clause.java" does not exist.  Will create one.
File "ASTcreate_index_statement.java" does not exist.  Will create one.
File "ASTunique_index.java" does not exist.  Will create one.
File "ASTnull_filtered.java" does not exist.  Will create one.
File "ASTtable.java" does not exist.  Will create one.
File "ASTcolumns.java" does not exist.  Will create one.
File "ASTcreate_index_where_clause.java" does not exist.  Will create one.
File "ASTindex_interleave_clause.java" does not exist.  Will create one.
File "ASTcreate_change_stream_statement.java" does not exist.  Will create one.
File "ASTchange_stream_for_clause.java" does not exist.  Will create one.
File "ASTall.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables_entry.java" does not exist.  Will create one.
File "ASTexplicit_columns.java" does not exist.  Will create one.
File "ASTcolumn.java" does not exist.  Will create one.
File "ASTcreate_role_statement.java" does not exist.  Will create one.
File "ASTprivilege.java" does not exist.  Will create one.
File "ASTprivileges.java" does not exist.  Will create one.
File "ASTtarget_type.java" does not exist.  Will create one.
File "ASTtable_function.java" does not exist.  Will create one.
File "ASTfunction.java" does not exist.  Will create one.
File "ASTchange_stream.java" does not exist.  Will create one.
File "ASTview.java" does not exist.  Will create one.
File "ASTsequence.java" does not exist.  Will create one.
File "ASTprivilege_target.java" does not exist.  Will create one.
File "ASTgrantees.java" does not exist.  Will create one.
File "ASTgrant_statement.java" does not exist.  Will create one.
File "ASTrevoke_statement.java" does not exist.  Will create one.
File "ASTcreate_sequence_statement.java" does not exist.  Will create one.
File "ASTkey_part.java" does not exist.  Will create one.
File "ASTdesc.java" does not exist.  Will create one.
File "ASTstored_column.java" does not exist.  Will create one.
File "ASTstored_column_list.java" does not exist.  Will create one.
File "ASToption_key_val.java" does not exist.  Will create one.
File "ASTkey.java" does not exist.  Will create one.
File "ASTnulll.java" does not exist.  Will create one.
File "ASTbool_true_val.java" does not exist.  Will create one.
File "ASTbool_false_val.java" does not exist.  Will create one.
File "ASTinteger_val.java" does not exist.  Will create one.
File "ASTstr_val.java" does not exist.  Will create one.
File "ASTstr_val_list.java" does not exist.  Will create one.
File "ASTor_replace.java" does not exist.  Will create one.
File "ASTsql_security.java" does not exist.  Will create one.
File "ASTcreate_view_statement.java" does not exist.  Will create one.
File "ASTview_definition.java" does not exist.  Will create one.
File "ASTstatement_tokens.java" does not exist.  Will create one.
File "ASTif_not_exists.java" does not exist.  Will create one.
File "ASTif_exists.java" does not exist.  Will create one.
File "ASTcreate_schema_statement.java" does not exist.  Will create one.
File "ASTcreate_model_statement.java" does not exist.  Will create one.
File "ASTinput.java" does not exist.  Will create one.
File "ASToutput.java" does not exist.  Will create one.
File "ASTremote.java" does not exist.  Will create one.
File "ASTdrop_statement.java" does not exist.  Will create one.
File "ASTindex.java" does not exist.  Will create one.
File "ASTrole.java" does not exist.  Will create one.
File "ASTmodel.java" does not exist.  Will create one.
File "ASTschema.java" does not exist.  Will create one.
File "ASTproto_bundle.java" does not exist.  Will create one.
File "ASTalter_database_statement.java" does not exist.  Will create one.
File "ASTdatabase_name.java" does not exist.  Will create one.
File "ASTalter_table_statement.java" does not exist.  Will create one.
File "ASTtable_name.java" does not exist.  Will create one.
File "ASTdrop_constraint.java" does not exist.  Will create one.
File "ASTdrop_row_deletion_policy.java" does not exist.  Will create one.
File "ASTdrop_synonym.java" does not exist.  Will create one.
File "ASTdrop_column.java" does not exist.  Will create one.
File "ASTalter_column.java" does not exist.  Will create one.
File "ASTset_on_delete.java" does not exist.  Will create one.
File "ASTrename_to.java" does not exist.  Will create one.
File "ASTadd_row_deletion_policy.java" does not exist.  Will create one.
File "ASTadd_synonym.java" does not exist.  Will create one.
File "ASTadd_column.java" does not exist.  Will create one.
File "ASTreplace_row_deletion_policy.java" does not exist.  Will create one.
File "ASTrename_op.java" does not exist.  Will create one.
File "ASTfrom_name.java" does not exist.  Will create one.
File "ASTto_name.java" does not exist.  Will create one.
File "ASTrename_statement.java" does not exist.  Will create one.
File "ASTalter_change_stream_statement.java" does not exist.  Will create one.
File "ASTdrop_for_all.java" does not exist.  Will create one.
File "ASTalter_sequence_statement.java" does not exist.  Will create one.
File "ASTalter_schema_statement.java" does not exist.  Will create one.
File "ASTalter_model_statement.java" does not exist.  Will create one.
File "ASTanalyze_statement.java" does not exist.  Will create one.
File "DdlParserTreeConstants.java" does not exist.  Will create one.
File "JJTDdlParserState.java" does not exist.  Will create one.
Annotated grammar generated successfully in /Users/gurminder/xxx/spanner-schema-diff-tool/target/javacc-1714490307887/node/DdlParser.jj
ParserGeneratorCC Version 1.1.4 (ParserGeneratorCC)
(type "pgcc" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/xxx/spanner-schema-diff-tool/target/javacc-1714490307887/node/DdlParser.jj ...
Warning: Line 49, Column 3: Bad option name "STATIC".  Option setting will be ignored.
Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
Warning: Choice conflict involving two expansions at
         line 934, column 5 and line 947, column 5 respectively.
         A common prefix is: "float64"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 935, column 5 and line 947, column 5 respectively.
         A common prefix is: "int64"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 936, column 5 and line 947, column 5 respectively.
         A common prefix is: "bool"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 937, column 5 and line 947, column 5 respectively.
         A common prefix is: "string"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 938, column 5 and line 947, column 5 respectively.
         A common prefix is: "bytes"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 939, column 5 and line 947, column 5 respectively.
         A common prefix is: "timestamp"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 940, column 5 and line 947, column 5 respectively.
         A common prefix is: "date"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 941, column 5 and line 947, column 5 respectively.
         A common prefix is: "numeric"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 942, column 5 and line 947, column 5 respectively.
         A common prefix is: "pg" "."
         Consider using a lookahead of 3 or more for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 943, column 5 and line 947, column 5 respectively.
         A common prefix is: "json"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict in [...] construct at line 959, column 3.
         Expansion nested within construct and expansion following construct
         have common prefixes, one of which is: <ID>
         Consider using a lookahead of 2 or more for nested expansion.
File "TokenMgrException.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "CharStream.java" does not exist.  Will create one.
File "AbstractCharStream.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated with 0 errors and 12 warnings.
[INFO] Processed 1 grammar
[INFO] 
[INFO] --- build-helper:3.5.0:add-source (add-source) @ spanner-ddl-diff ---
[INFO] Source directory: /Users/gurminder/xxx/spanner-schema-diff-tool/target/generated-sources/jjtree added.
[INFO] 
[INFO] --- exec:3.2.0:exec (jjt-2-concat) @ spanner-ddl-diff ---
[INFO] 
[INFO] --- ph-javacc:4.1.5:jjtree-javacc (jjt-2-compile) @ spanner-ddl-diff ---
ParserGeneratorCC Version 1.1.4 (Tree Builder)
(type "jjtree" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/xxx/spanner-schema-diff-tool/target/generated-sources/jjtree-src/DdlParser.jjt . . .
Warning: Bad option name "STATIC".  Option setting will be ignored.
opt:java
File "Node.java" does not exist.  Will create one.
File "SimpleNode.java" does not exist.  Will create one.
File "ASTany_reserved_word.java" does not exist.  Will create one.
File "ASTany_string_literal.java" does not exist.  Will create one.
File "ASTany_bytes_literal.java" does not exist.  Will create one.
File "ASTexpression.java" does not exist.  Will create one.
File "ASTgooglesql_operator.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_punctuation_no_paren.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren_without_dot.java" does not exist.  Will create one.
File "ASTgooglesql_statement_token_no_paren.java" does not exist.  Will create one.
File "ASTpart.java" does not exist.  Will create one.
File "ASTidentifier_list.java" does not exist.  Will create one.
File "ASTidentifier.java" does not exist.  Will create one.
File "ASTqualified_identifier_list.java" does not exist.  Will create one.
File "ASTpath.java" does not exist.  Will create one.
File "ASTint_value.java" does not exist.  Will create one.
File "ASTstring_value.java" does not exist.  Will create one.
File "ASTddl_statement.java" does not exist.  Will create one.
File "ASTdotted_path.java" does not exist.  Will create one.
File "ASTcreate_proto_bundle_statement.java" does not exist.  Will create one.
File "ASTalter_proto_bundle_statement.java" does not exist.  Will create one.
File "ASTinsert.java" does not exist.  Will create one.
File "ASTupdate.java" does not exist.  Will create one.
File "ASTdelete.java" does not exist.  Will create one.
File "ASTcreate_or_replace_statement.java" does not exist.  Will create one.
File "ASTalter_index_statement.java" does not exist.  Will create one.
File "ASTname.java" does not exist.  Will create one.
File "ASTadd.java" does not exist.  Will create one.
File "ASTdrop.java" does not exist.  Will create one.
File "ASTcolumn_name.java" does not exist.  Will create one.
File "ASToptions_clause.java" does not exist.  Will create one.
File "ASTcreate_database_statement.java" does not exist.  Will create one.
File "ASTdb_name.java" does not exist.  Will create one.
File "ASTcreate_table_statement.java" does not exist.  Will create one.
File "ASTcolumn_def.java" does not exist.  Will create one.
File "ASTnot_null.java" does not exist.  Will create one.
File "ASThidden.java" does not exist.  Will create one.
File "ASTcolumn_def_alter_attrs.java" does not exist.  Will create one.
File "ASTcolumn_def_alter.java" does not exist.  Will create one.
File "ASTset_not_null.java" does not exist.  Will create one.
File "ASTdrop_column_default.java" does not exist.  Will create one.
File "ASTdrop_not_null.java" does not exist.  Will create one.
File "ASTcolumn_type.java" does not exist.  Will create one.
File "ASTlength.java" does not exist.  Will create one.
File "ASTpgtype.java" does not exist.  Will create one.
File "ASTstruct_fields.java" does not exist.  Will create one.
File "ASTstruct_field.java" does not exist.  Will create one.
File "ASTcolumn_length.java" does not exist.  Will create one.
File "ASTgeneration_clause.java" does not exist.  Will create one.
File "ASTstored.java" does not exist.  Will create one.
File "ASTcolumn_default_clause.java" does not exist.  Will create one.
File "ASTcolumn_default_expression.java" does not exist.  Will create one.
File "ASTprimary_key.java" does not exist.  Will create one.
File "ASTforeign_key.java" does not exist.  Will create one.
File "ASTconstraint_name.java" does not exist.  Will create one.
File "ASTreferencing_columns.java" does not exist.  Will create one.
File "ASTreferenced_table.java" does not exist.  Will create one.
File "ASTreferenced_columns.java" does not exist.  Will create one.
File "ASTon_delete.java" does not exist.  Will create one.
File "ASTreferential_action.java" does not exist.  Will create one.
File "ASTno_action.java" does not exist.  Will create one.
File "ASTcascade.java" does not exist.  Will create one.
File "ASTstatement_token_no_paren.java" does not exist.  Will create one.
File "ASTcheck_constraint.java" does not exist.  Will create one.
File "ASTcheck_constraint_expression.java" does not exist.  Will create one.
File "ASTsynonym_clause.java" does not exist.  Will create one.
File "ASTsynonym.java" does not exist.  Will create one.
File "ASTtable_interleave_clause.java" does not exist.  Will create one.
File "ASTinterleave_in.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_clause.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_expression.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_function.java" does not exist.  Will create one.
File "ASTrow_deletion_policy_column.java" does not exist.  Will create one.
File "ASTinterval_expression.java" does not exist.  Will create one.
File "ASTon_delete_clause.java" does not exist.  Will create one.
File "ASTcreate_index_statement.java" does not exist.  Will create one.
File "ASTunique_index.java" does not exist.  Will create one.
File "ASTnull_filtered.java" does not exist.  Will create one.
File "ASTtable.java" does not exist.  Will create one.
File "ASTcolumns.java" does not exist.  Will create one.
File "ASTcreate_index_where_clause.java" does not exist.  Will create one.
File "ASTindex_interleave_clause.java" does not exist.  Will create one.
File "ASTcreate_change_stream_statement.java" does not exist.  Will create one.
File "ASTchange_stream_for_clause.java" does not exist.  Will create one.
File "ASTall.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables.java" does not exist.  Will create one.
File "ASTchange_stream_tracked_tables_entry.java" does not exist.  Will create one.
File "ASTexplicit_columns.java" does not exist.  Will create one.
File "ASTcolumn.java" does not exist.  Will create one.
File "ASTcreate_role_statement.java" does not exist.  Will create one.
File "ASTprivilege.java" does not exist.  Will create one.
File "ASTprivileges.java" does not exist.  Will create one.
File "ASTtarget_type.java" does not exist.  Will create one.
File "ASTtable_function.java" does not exist.  Will create one.
File "ASTfunction.java" does not exist.  Will create one.
File "ASTchange_stream.java" does not exist.  Will create one.
File "ASTview.java" does not exist.  Will create one.
File "ASTsequence.java" does not exist.  Will create one.
File "ASTprivilege_target.java" does not exist.  Will create one.
File "ASTgrantees.java" does not exist.  Will create one.
File "ASTgrant_statement.java" does not exist.  Will create one.
File "ASTrevoke_statement.java" does not exist.  Will create one.
File "ASTcreate_sequence_statement.java" does not exist.  Will create one.
File "ASTkey_part.java" does not exist.  Will create one.
File "ASTdesc.java" does not exist.  Will create one.
File "ASTstored_column.java" does not exist.  Will create one.
File "ASTstored_column_list.java" does not exist.  Will create one.
File "ASToption_key_val.java" does not exist.  Will create one.
File "ASTkey.java" does not exist.  Will create one.
File "ASTnulll.java" does not exist.  Will create one.
File "ASTbool_true_val.java" does not exist.  Will create one.
File "ASTbool_false_val.java" does not exist.  Will create one.
File "ASTinteger_val.java" does not exist.  Will create one.
File "ASTstr_val.java" does not exist.  Will create one.
File "ASTstr_val_list.java" does not exist.  Will create one.
File "ASTor_replace.java" does not exist.  Will create one.
File "ASTsql_security.java" does not exist.  Will create one.
File "ASTcreate_view_statement.java" does not exist.  Will create one.
File "ASTview_definition.java" does not exist.  Will create one.
File "ASTstatement_tokens.java" does not exist.  Will create one.
File "ASTif_not_exists.java" does not exist.  Will create one.
File "ASTif_exists.java" does not exist.  Will create one.
File "ASTcreate_schema_statement.java" does not exist.  Will create one.
File "ASTcreate_model_statement.java" does not exist.  Will create one.
File "ASTinput.java" does not exist.  Will create one.
File "ASToutput.java" does not exist.  Will create one.
File "ASTremote.java" does not exist.  Will create one.
File "ASTdrop_statement.java" does not exist.  Will create one.
File "ASTindex.java" does not exist.  Will create one.
File "ASTrole.java" does not exist.  Will create one.
File "ASTmodel.java" does not exist.  Will create one.
File "ASTschema.java" does not exist.  Will create one.
File "ASTproto_bundle.java" does not exist.  Will create one.
File "ASTalter_database_statement.java" does not exist.  Will create one.
File "ASTdatabase_name.java" does not exist.  Will create one.
File "ASTalter_table_statement.java" does not exist.  Will create one.
File "ASTtable_name.java" does not exist.  Will create one.
File "ASTdrop_constraint.java" does not exist.  Will create one.
File "ASTdrop_row_deletion_policy.java" does not exist.  Will create one.
File "ASTdrop_synonym.java" does not exist.  Will create one.
File "ASTdrop_column.java" does not exist.  Will create one.
File "ASTalter_column.java" does not exist.  Will create one.
File "ASTset_on_delete.java" does not exist.  Will create one.
File "ASTrename_to.java" does not exist.  Will create one.
File "ASTadd_row_deletion_policy.java" does not exist.  Will create one.
File "ASTadd_synonym.java" does not exist.  Will create one.
File "ASTadd_column.java" does not exist.  Will create one.
File "ASTreplace_row_deletion_policy.java" does not exist.  Will create one.
File "ASTrename_op.java" does not exist.  Will create one.
File "ASTfrom_name.java" does not exist.  Will create one.
File "ASTto_name.java" does not exist.  Will create one.
File "ASTrename_statement.java" does not exist.  Will create one.
File "ASTalter_change_stream_statement.java" does not exist.  Will create one.
File "ASTdrop_for_all.java" does not exist.  Will create one.
File "ASTalter_sequence_statement.java" does not exist.  Will create one.
File "ASTalter_schema_statement.java" does not exist.  Will create one.
File "ASTalter_model_statement.java" does not exist.  Will create one.
File "ASTanalyze_statement.java" does not exist.  Will create one.
File "DdlParserTreeConstants.java" does not exist.  Will create one.
File "JJTDdlParserState.java" does not exist.  Will create one.
Annotated grammar generated successfully in /Users/gurminder/xxx/spanner-schema-diff-tool/target/javacc-1714490308570/node/DdlParser.jj
ParserGeneratorCC Version 1.1.4 (ParserGeneratorCC)
(type "pgcc" with no arguments for help)
Warning: Bad option value in "-JDK_VERSION=8" will be ignored.
Reading from file /Users/gurminder/xxx/spanner-schema-diff-tool/target/javacc-1714490308570/node/DdlParser.jj ...
Warning: Line 49, Column 3: Bad option name "STATIC".  Option setting will be ignored.
Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
Warning: Choice conflict involving two expansions at
         line 934, column 5 and line 947, column 5 respectively.
         A common prefix is: "float64"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 935, column 5 and line 947, column 5 respectively.
         A common prefix is: "int64"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 936, column 5 and line 947, column 5 respectively.
         A common prefix is: "bool"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 937, column 5 and line 947, column 5 respectively.
         A common prefix is: "string"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 938, column 5 and line 947, column 5 respectively.
         A common prefix is: "bytes"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 939, column 5 and line 947, column 5 respectively.
         A common prefix is: "timestamp"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 940, column 5 and line 947, column 5 respectively.
         A common prefix is: "date"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 941, column 5 and line 947, column 5 respectively.
         A common prefix is: "numeric"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 942, column 5 and line 947, column 5 respectively.
         A common prefix is: "pg" "."
         Consider using a lookahead of 3 or more for earlier expansion.
Warning: Choice conflict involving two expansions at
         line 943, column 5 and line 947, column 5 respectively.
         A common prefix is: "json"
         Consider using a lookahead of 2 for earlier expansion.
Warning: Choice conflict in [...] construct at line 959, column 3.
         Expansion nested within construct and expansion following construct
         have common prefixes, one of which is: <ID>
         Consider using a lookahead of 2 or more for nested expansion.
File "TokenMgrException.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "CharStream.java" does not exist.  Will create one.
File "AbstractCharStream.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated with 0 errors and 12 warnings.
[INFO] Processed 1 grammar
[INFO] 
[INFO] --- build-helper:3.5.0:add-source (add-source) @ spanner-ddl-diff ---
[INFO] Source directory: /Users/gurminder/xxx/spanner-schema-diff-tool/target/generated-sources/jjtree added.
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ spanner-ddl-diff ---
[INFO] skip non existing resourceDirectory /Users/gurminder/xxx/spanner-schema-diff-tool/src/main/resources
[INFO] 
[INFO] --- compiler:3.13.0:compile (default-compile) @ spanner-ddl-diff ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 176 source files with javac [debug target 8] to target/classes
An exception has occurred in the compiler (21.0.2). Please file a bug against the Java compiler via the Java bug reporting page (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
java.lang.IllegalAccessError: class com.google.errorprone.BaseErrorProneJavaCompiler (in unnamed module @0x6b09ce57) cannot access class com.sun.tools.javac.api.BasicJavacTask (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.api to unnamed module @0x6b09ce57
    at com.google.errorprone.BaseErrorProneJavaCompiler.addTaskListener(BaseErrorProneJavaCompiler.java:92)
    at com.google.errorprone.ErrorProneJavacPlugin.init(ErrorProneJavacPlugin.java:34)
    at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugin(BasicJavacTask.java:256)
    at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:230)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:204)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:101)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:214)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1228)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:215)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] An unknown compilation problem occurred
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.845 s
[INFO] Finished at: 2024-04-30T08:18:29-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project spanner-ddl-diff: Compilation failure
[ERROR] An unknown compilation problem occurred
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
nielm commented 6 months ago

Pulled the latest code from main branch:

The main branch did not have the fix in at the time - it was in my PR - because at the time I posted, I could not test the fix - but since then I was able to repro and verify that #100 fixes the issue.

now that #100 is merged, main should include the fix (by updating pom.xml with the javac args)

gurminder71 commented 6 months ago

Verified that it is working