Bugzilla – Bug 5789
lifetime of subscription resources
Last modified: 2008-03-21 15:06:33
You need to log in before you can comment on or make changes to this bug.
shoot, hit the submit button somehow. description will follow ...
About renewing the lifetime of a subscription resource: The schema (b-2.xsd) says that the 'TerminationTime' element is nillable in the input type 'Renew' of the call to the 'Renew' operation. But the 'TerminationTime' element is not defined as nillable in the output type 'RenewResponse' of the 'Renew' operation. BaseSubscriptionProvider.java however sets the 'TerminationTime' element in the response to null in case it is null in the request. This causes exceptions like 2008-01-18T11:27:49.748-06:00 ERROR ser.BeanSerializer [ServiceThread-20,serialize:287] Exception: java.io.IOException: Non nillable element 'terminationTime' is null. at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:228) .... The current way to make a resource never expire however in ResourceHomeImpl is setting its lifetime null in Java, because the ResourceSweeper that's responsible for this does the following check: public static boolean isExpired(ResourceLifetime resource, Calendar currentTime) { Calendar terminationTime = resource.getTerminationTime(); return (terminationTime != null && terminationTime.before(currentTime)); } But this causes the above exceptions. As a workaround i'll set the lifetime of subscription resources to a far point in time in the future.
Fixed in trunk. The specification uses reference to TerminationTime, but Axis doesn't seem to recogonize the nillable=true in that element. Changed the definition to explicitly use type. Martin, thanks for reporting this.