Forum Discussion

kpalsson's avatar
kpalsson
New Contributor
15 years ago

NPE with groovy script assertion

Hi, I have a groovy scriptlet, based on the examples at: http://www.soapui.org/Functional-Testing/working-with-cdata.html


import com.eviware.soapui.support.XmlHolder

def holder = new XmlHolder( messageExchange.responseContentAsXml )
def cdata = holder["//outxml"]
log.info "$cdata"
def real = new XmlHolder(cdata)

log.info "real = $real"


The first time this script runs, the cdata section matching the xpath is correctly logged out, but then I get a popup saying "null" and a big stacktrace in the logs.

From now on, soapui is dead in the water. Rerunning the script does nothing at all, and if I close the script editor window, double clicking on the assertion doesn't reopen the editor, I have to close and restart soapui. Stack trace from 3.6.1 is below, but this was seen with 3.6.0 as well.

The killer line is
log.info "real = $real"
If I leave out the logging, it works just fine.

2010-10-28 15:26:36,263 ERROR [SoapUI] An error occured [java.lang.NullPointerException], see error log for details
2010-10-28 15:26:36,263 ERROR [errorlog] java.lang.NullPointerException
java.lang.NullPointerException
at org.codehaus.groovy.runtime.InvokerHelper.formatMap(InvokerHelper.java:559)
at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:647)
at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:636)
at org.codehaus.groovy.runtime.InvokerHelper.write(InvokerHelper.java:473)
at groovy.lang.GString.writeTo(GString.java:189)
at groovy.lang.GString.toString(GString.java:161)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LoggingEventWrapper.toString(JLogList.java:244)
at javax.swing.DefaultListCellRenderer.getListCellRendererComponent(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LogAreaCellRenderer.getListCellRendererComponent(JLogList.java:203)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getCellBounds(Unknown Source)
at javax.swing.JList.getCellBounds(Unknown Source)
at javax.swing.JList.ensureIndexIsVisible(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LogListModel$1.run(JLogList.java:522)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at javax.swing.JOptionPane.showOptionDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at com.eviware.x.impl.swing.SwingDialogs.showErrorMessage(SwingDialogs.java:58)
at com.eviware.soapui.support.UISupport.showErrorMessage(UISupport.java:260)
at com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.GroovyScriptAssertion$GroovyScriptAssertionPanel$RunAction.actionPerformed(GroovyScriptAssertion.java:396)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.eviware.soapui.support.UISupport.showDialog(UISupport.java:396)
at com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.GroovyScriptAssertion.configure(GroovyScriptAssertion.java:145)
at com.eviware.soapui.impl.wsdl.panels.teststeps.AssertionsPanel$2.mouseClicked(AssertionsPanel.java:139)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
2010-10-28 15:26:36,263 ERROR [SoapUI] An error occured [java.lang.NullPointerException], see error log for details
2010-10-28 15:26:36,263 ERROR [errorlog] java.lang.NullPointerException
java.lang.NullPointerException
at org.codehaus.groovy.runtime.InvokerHelper.formatMap(InvokerHelper.java:559)
at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:647)
at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:636)
at org.codehaus.groovy.runtime.InvokerHelper.write(InvokerHelper.java:473)
at groovy.lang.GString.writeTo(GString.java:189)
at groovy.lang.GString.toString(GString.java:161)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LoggingEventWrapper.toString(JLogList.java:244)
at javax.swing.DefaultListCellRenderer.getListCellRendererComponent(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LogAreaCellRenderer.getListCellRendererComponent(JLogList.java:203)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getCellBounds(Unknown Source)
at javax.swing.JList.getCellBounds(Unknown Source)
at javax.swing.JList.ensureIndexIsVisible(Unknown Source)
at com.eviware.soapui.support.log.JLogList$LogListModel$1.run(JLogList.java:522)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at javax.swing.JOptionPane.showOptionDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at com.eviware.x.impl.swing.SwingDialogs.showErrorMessage(SwingDialogs.java:58)
at com.eviware.soapui.support.UISupport.showErrorMessage(UISupport.java:260)
at com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.GroovyScriptAssertion$GroovyScriptAssertionPanel$RunAction.actionPerformed(GroovyScriptAssertion.java:396)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.eviware.soapui.support.UISupport.showDialog(UISupport.java:396)
at com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.GroovyScriptAssertion.configure(GroovyScriptAssertion.java:145)
at com.eviware.soapui.impl.wsdl.panels.teststeps.AssertionsPanel$2.mouseClicked(AssertionsPanel.java:139)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

2 Replies

  • Hi!

    thanks for reporting this.. what is the output of the first log.info call the second time around?

    regards!

    /Ole
    eviware.com