This section details common errors that you may encounter when using the Groovy stage and resolutions. You should look for the Caused by: in the AspireException to aid troubleshooting.

No such property: bh for class

The following error was caused by an incorrect Groovy component configuration:

AspireException(GroovyStage.script-execution-error):
com.searchtechnologies.aspire.services.AspireException: Error occured while executing the groovy script. (component='/MemoryLane-initial-experiment/ProcessEndecaFiles/SplitEndecaFileAndFeedIndividualDocs', componentFactory='aspire-groovy')
       at com.searchtechnologies.aspire.components.GroovyStage.process(GroovyStage.java:146)
       at com.searchtechnologies.aspire.framework.JobHandler.runNested(JobHandler.java:106)
       at com.searchtechnologies.aspire.framework.JobHandler.run(JobHandler.java:47)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
       at java.lang.Thread.run(Thread.java:619)
 Caused by: groovy.lang.MissingPropertyException: No such property: bh for class: Script1
       at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)
       at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
       at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241)
       at Script1.run(Script1.groovy:23)
       at com.searchtechnologies.aspire.components.GroovyStage.process(GroovyStage.java:142)
       ... 5 more

The script used a branch handler, but its configuration had been placed outside the <config> block:

<!-- Mis placed <branches> configuration below -->
<branches>
 <branch event="onPublish" pipelineManager="../PrintDocDontIndex" />
</branches>
<component name="SplitEndecaFileAndFeedIndividualDocs" subType="default" factoryName="aspire-groovy">
	<config>
		<script>
			<![CDATA[
				.
             	.
             	AspireDocument subDoc = new AspireDocument();
             	subDoc.add("text", outputBuffer.toString());  
             	Job subJob = job.createSubJob(subDoc, job.getJobId() + "-" + subjobCount);
             	bh.enqueue(subJob, "onPublish");
             	.
             	.
           	]]>
		</script>
	</config>
	<!-- Mis placed <branches> configuration below -->
	<branches>
		<branch event="onPublish" pipelineManager="../PrintDocDontIndex" />
	</branches>
</component>

The correct configuration is shown below:

<!-- Correctly placed <branches> configuration below -->
<branches>
    <branch event="onPublish" pipelineManager="../PrintDocDontIndex" />
</branches>
<component name="SplitEndecaFileAndFeedIndividualDocs" subType="default" factoryName="aspire-groovy">
	<config>
		<script>
			<![CDATA[
            	.
             	.
             	AspireDocument subDoc = new AspireDocument();
             	subDoc.add("text", outputBuffer.toString());  
             	Job subJob = job.createSubJob(subDoc, job.getJobId() + "-" + subjobCount);
             	bh.enqueue(subJob, "onPublish");
             	.
             	.
           	]]>
		</script>
		<!-- Correctly placed <branches> configuration below -->
		<branches>
			<branch event="onPublish" pipelineManager="../PrintDocDontIndex" />
		</branches>
	</config>
</component>

 

 
  • No labels