[Geoserver-users] Inconsistent WPS/Render transform behaviour between reloads of container

I have a render transform process that is very similar to the heatmap example.

-Geoserver 2.4.4

-Tried under both tomcat and jetty (war distribution, and using the embedded jetty distro)

-WPS extension is installed in both

-Demo → WPS Builder → my function (loc:Decimation) appears and properly shows the parameters

-Java 7 (Oracle, 45 and 51)

I modified the heatmap example SLD (just noticed I forgot to change the description) -
http://pastebin.com/6GfTKmuc

I take a layer (that works with the standard point style), and apply that style. One of three things happens when the Publish tab tried to generate the getLegendGraphic.

  1. Null Pointer exception -
    02 Feb 10:07:15 INFO [geoserver.wms] -
    Request: getServiceInfo
    02 Feb 10:07:15 ERROR [geoserver.ows] -
    java.lang.NullPointerException
    at org.geotools.process.function.ProcessFunctionFactory.getPrimary(ProcessFunctionFactory.java:161)
    at org.geotools.process.function.ProcessFunctionFactory.init(ProcessFunctionFactory.java:144)
    at org.geotools.process.function.ProcessFunctionFactory.function(ProcessFunctionFactory.java:101)
    at org.geotools.filter.FunctionFinder.findFunctionInternal(FunctionFinder.java:22

(full stacktrace: http://pastebin.com/is84fXmA )

  1. Unable to find function aaa:Decimation -
    02 Feb 10:02:27 INFO [geoserver.wms] -
    Request: getServiceInfo
    02 Feb 10:02:27 ERROR [geoserver.ows] -
    java.lang.RuntimeException: Unable to find function aaa:Decimation
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:205)
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:152)
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:127)

(full stacktrace: http://pastebin.com/dvSFjxCC )

If one of these was consistent, it would make more sense, but I can cycle through all three by just stopping, starting, logging in, clicking on layer, then publish (if the style referencing aaa:decimation is present)

I see this same behaviour with tomcat and jetty. I have tried increasing the permgen, new, and heap size on all three (and also left them as default) with the same behaviour
export JAVA_OPTS=“-XX:MaxPermSize=513m -XX:MaxNewSize=513m -Xmx7g”

was what I had for the latest run, and I verified it was taking effect via ps aux | grep java

Here’s a log of startups/shutdowns:
9:57AM
startup - Null Pointer Error
shutdown
startup - Null Pointer Error
shutdown
startup - Works
shutdown
startup - Works
shutdown
startup - Works
shutdown
startup - Works
shutdown
startup - Unable to Find Function
shutdown
startup - Null Pointer Error
shutdown
startup - Works
10:10AM

Note, that in every case, under Demo → WPS Request Builder I was able to see my process and interrogate the parameters correctly (even under the Unable to Find Function instance)

I don’t think I had this same issue in 2.3x - but I need to re-download it and verify - so that might be just selective memory. That said, I don’t want to be pegged to an old version.

Any thought, suggestions, or directions are appreciated

Chris

On Sun, Feb 2, 2014 at 4:29 PM, Chris Bennight <chris@anonymised.com> wrote:

I have a render transform process that is very similar to the heatmap
example.
-Geoserver 2.4.4
-Tried under both tomcat and jetty (war distribution, and using the
embedded jetty distro)
-WPS extension is installed in both
-Demo -> WPS Builder -> my function (loc:Decimation) appears and properly
shows the parameters
-Java 7 (Oracle, 45 and 51)

I modified the heatmap example SLD (just noticed I forgot to change the
description) -
http://pastebin.com/6GfTKmuc

I take a layer (that works with the standard point style), and apply that
style. One of three things happens when the Publish tab tried to generate
the getLegendGraphic.

1) - It works and I see the point style
http://pastebin.com/R9Gi4Qse

2) Null Pointer exception -
02 Feb 10:07:15 INFO [geoserver.wms] -
Request: getServiceInfo
02 Feb 10:07:15 ERROR [geoserver.ows] -
java.lang.NullPointerException
        at
org.geotools.process.function.ProcessFunctionFactory.getPrimary(ProcessFunctionFactory.java:161)
        at
org.geotools.process.function.ProcessFunctionFactory.init(ProcessFunctionFactory.java:144)
        at
org.geotools.process.function.ProcessFunctionFactory.function(ProcessFunctionFactory.java:101)
        at
org.geotools.filter.FunctionFinder.findFunctionInternal(FunctionFinder.java:22
(full stacktrace: http://pastebin.com/is84fXmA )

This one is due to http://jira.codehaus.org/browse/GEOT-4587, probably
mixed with process selection.
It was fixed only on the developer series, I've backported the fix to the
stable one a few minutes ago.
You can try a nightly build of the stable series tomorrow, it should
contain the fix:
http://ares.boundlessgeo.com/geoserver/2.4.x/

3) Unable to find function aaa:Decimation -
02 Feb 10:02:27 INFO [geoserver.wms] -
Request: getServiceInfo
02 Feb 10:02:27 ERROR [geoserver.ows] -
java.lang.RuntimeException: Unable to find function aaa:Decimation
        at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:205)
        at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:152)
        at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:127)
(full stacktrace: http://pastebin.com/dvSFjxCC )

Hmm... nope, for this one I have no idea. How does the process look like?

Cheers
Andrea

--
== Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information ==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Confirmed - I went through 20 restart cycles and was unable to induce an error.

So with the 03-Feb-2014 03:37 nightly I was not able to induce this error either. In looking through the code I"m not sure how the former could propagate the latter, but it certainly seems to be the case here. 20 restarts without any error.

(This was going from 2.4.4 → 2.4.x nightly listed above)

I just realize I also did not install the WPS plugin - though the render transform worked fine without this. Regardless, I just installed the 2.4-snapshot wps plugin and restarted 10 times without a NPE or Function not found.

So thanks! Looks like GEOT-4587 solved both my issues!

···

This one is due to http://jira.codehaus.org/browse/GEOT-4587, probably mixed with process selection.
It was fixed only on the developer series, I’ve backported the fix to the stable one a few minutes ago.
You can try a nightly build of the stable series tomorrow, it should contain the fix:
http://ares.boundlessgeo.com/geoserver/2.4.x/

  1. Unable to find function aaa:Decimation -
    02 Feb 10:02:27 INFO [geoserver.wms] -
    Request: getServiceInfo
    02 Feb 10:02:27 ERROR [geoserver.ows] -
    java.lang.RuntimeException: Unable to find function aaa:Decimation
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:205)
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:152)
    at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:127)

(full stacktrace: http://pastebin.com/dvSFjxCC )

Hmm… nope, for this one I have no idea. How does the process look like?