Maven 2.x Changes Plugin

Fix VTL errors

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Trivial Trivial
  • Resolution: Fixed
  • Affects Version/s: 2.0-beta-3
  • Fix Version/s: 2.0
  • Component/s: announcement
  • Labels:
    None
  • Patch Submitted:
    Yes
  • Number of attachments :
    3

Description

When calling mvn changes:announcement-generate for the attached changes.xml VTL errors are logged due to the various null fields in the Action bean:

[INFO] [changes:announcement-generate]
[INFO] Creating announcement file from changes.xml...
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 30, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 31, column 1]
[ERROR] Left side ($!issue) of '!=' operation has null value. Operation not possible. org/apache/maven/plugin/announcement/announcement.vm [line 32, column 27]
[ERROR] Left side ($!dueto) of '!=' operation has null value. Operation not possible. org/apache/maven/plugin/announcement/announcement.vm [line 32, column 65]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 43, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 44, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 56, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 57, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 69, column 1]
[ERROR] RHS of #set statement is null. Context will not be modified. org/apache/maven/plugin/announcement/announcement.vm [line 70, column 1]
[INFO] File created...

The attached patch goes the hard way and improves the VTL template to check for nulls. Easier would be to establish an invariant for the bean properties stating that they are never null but maybe empty, i.e. change all the setters to convert null into an empty string.

Activity

Hide
Dennis Lundberg added a comment -

I am unable to reproduce this error. Could you provide a minimal project that exploits this bug?

Show
Dennis Lundberg added a comment - I am unable to reproduce this error. Could you provide a minimal project that exploits this bug?
Hide
Benjamin Bentmann added a comment -

Well, I put a tiny POM aside to the already attached changes.xml. Also included is a debug log of my

mvn changes:announcement-generate -X

This was run against a SNAPSHOT build of r617867.

Technical background from the Velocity User Guide:

If the RHS is a property or method reference that evaluates to null, it will not be assigned to the LHS.

Show
Benjamin Bentmann added a comment - Well, I put a tiny POM aside to the already attached changes.xml. Also included is a debug log of my
mvn changes:announcement-generate -X
This was run against a SNAPSHOT build of r617867. Technical background from the Velocity User Guide:
If the RHS is a property or method reference that evaluates to null, it will not be assigned to the LHS.
Hide
Dennis Lundberg added a comment -

When I moved the configuration of the plugin to the <build> element I managed to reproduce the errors.

I have applied the patch. Thanks!

Show
Dennis Lundberg added a comment - When I moved the configuration of the plugin to the <build> element I managed to reproduce the errors. I have applied the patch. Thanks!

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: