Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build #3310

Closed
asfimport opened this issue Jan 28, 2014 · 3 comments

Comments

@asfimport
Copy link
Collaborator

@milamberspace (Bug 56080):
With Java 8 EA builds (2014/01/25), JMeter trunk fails to load a simple test script with a Constant Throughput Timer element.

With Java 6 or 7 the issue doesn't exists.

Perhaps is a Java 8 bug ou Xstream bug.

Error is:

2014/01/28 20:37:46 ERROR - jmeter.save.SaveService: Conversion error com.thoughtworks.xstream.converters.ConversionException: -1 : -1
---- Debugging information ----
message : -1
cause-exception : java.lang.ArrayIndexOutOfBoundsException
cause-message : -1
class : org.apache.jmeter.testelement.property.DoubleProperty
required-type : org.apache.jmeter.testelement.property.DoubleProperty
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /jmeterTestPlan/hashTree/hashTree/hashTree/ConstantThroughputTimer/doubleProp/name
line number : 32
class[1] : org.apache.jmeter.timers.ConstantThroughputTimer
converter-type[1] : org.apache.jmeter.save.converters.TestElementConverter
class[2] : org.apache.jorphan.collections.ListedHashTree
converter-type[2] : org.apache.jmeter.save.converters.HashTreeConverter

Created attachment test.jmx: Simple test script

test.jmx
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.6" jmeter="2.12-SNAPSHOT r1561147">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="Variables pré-définies" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <longProp name="ThreadGroup.start_time">1390941414000</longProp>
        <longProp name="ThreadGroup.end_time">1390941414000</longProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="Constant Throughput Timer" enabled="true">
          <intProp name="calcMode">0</intProp>
          <doubleProp>
            <name>throughput</name>
            <value>0.0667</value>
            <savedValue>0.0</savedValue>
          </doubleProp>
        </ConstantThroughputTimer>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Home" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp>
          <stringProp name="HTTPSampler.port"></stringProp>
          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
          <stringProp name="HTTPSampler.response_timeout"></stringProp>
          <stringProp name="HTTPSampler.protocol">http</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
          <stringProp name="HTTPSampler.path">/</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
          <stringProp name="TestPlan.comments">1 /</stringProp>
        </HTTPSamplerProxy>
        <hashTree/>
      </hashTree>
      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
        <boolProp name="ResultCollector.error_logging">false</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>false</message>
            <threadName>true</threadName>
            <dataType>false</dataType>
            <encoding>false</encoding>
            <assertions>true</assertions>
            <subresults>true</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <hostname>true</hostname>
            <threadCounts>true</threadCounts>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

Version: Nightly
Severity: normal
OS: Linux

Duplicates:

@asfimport
Copy link
Collaborator Author

@milamberspace (migrated from Bugzilla):
Created attachment jmeter.log: JMeter log file with error messages

jmeter.log
2014/01/28 20:37:39 INFO  - jmeter.util.JMeterUtils: Setting Locale to en_US 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Loading user properties from: /home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin/user.properties 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Loading system properties from: /home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin/system.properties 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Copyright (c) 1998-2014 The Apache Software Foundation 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Version 2.12-SNAPSHOT r1561147 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: java.version=1.8.0-ea 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: os.name=Linux 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: os.arch=amd64 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: os.version=3.2.0-4-amd64 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: file.encoding=UTF-8 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Default Locale=English (United States) 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: JMeter  Locale=English (United States) 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: JMeterHome=/home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: user.dir  =/home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: PWD       =/home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: IP: 192.168.7.235 Name: ender FullName: ender 
2014/01/28 20:37:39 INFO  - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties 
2014/01/28 20:37:40 INFO  - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' 
2014/01/28 20:37:40 INFO  - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' 
2014/01/28 20:37:41 INFO  - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] 
2014/01/28 20:37:41 INFO  - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default 
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is  
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is  
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is  
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is  
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser 
2014/01/28 20:37:42 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui 
2014/01/28 20:37:42 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui 
2014/01/28 20:37:42 INFO  - jorphan.exec.KeyToolUtils: keytool found at 'keytool' 
2014/01/28 20:37:42 INFO  - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin/proxyserver.jks 
2014/01/28 20:37:43 INFO  - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times 
2014/01/28 20:37:43 INFO  - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 
2014/01/28 20:37:43 INFO  - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true 
2014/01/28 20:37:43 INFO  - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 
2014/01/28 20:37:45 INFO  - jmeter.services.FileServer: Default base='/home/milamber/temp/jmetertemp/dist/apache-jmeter-2.12-SNAPSHOT/bin' 
2014/01/28 20:37:45 INFO  - jmeter.gui.action.Load: Loading file: /home/milamber/temp/test.jmx 
2014/01/28 20:37:45 INFO  - jmeter.services.FileServer: Set new base='/home/milamber/temp' 
2014/01/28 20:37:45 INFO  - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 
2014/01/28 20:37:45 INFO  - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 
2014/01/28 20:37:45 INFO  - jmeter.save.SaveService: Using SaveService properties version 2.6 
2014/01/28 20:37:45 INFO  - jmeter.save.SaveService: Using SaveService properties file version 1554411 
2014/01/28 20:37:45 INFO  - jmeter.save.SaveService: All converter versions present and correct 
2014/01/28 20:37:46 ERROR - jmeter.save.SaveService: Conversion error com.thoughtworks.xstream.converters.ConversionException: -1 : -1
---- Debugging information ----
message             : -1
cause-exception     : java.lang.ArrayIndexOutOfBoundsException
cause-message       : -1
class               : org.apache.jmeter.testelement.property.DoubleProperty
required-type       : org.apache.jmeter.testelement.property.DoubleProperty
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /jmeterTestPlan/hashTree/hashTree/hashTree/ConstantThroughputTimer/doubleProp/name
line number         : 32
class[1]            : org.apache.jmeter.timers.ConstantThroughputTimer
converter-type[1]   : org.apache.jmeter.save.converters.TestElementConverter
class[2]            : org.apache.jorphan.collections.ListedHashTree
converter-type[2]   : org.apache.jmeter.save.converters.HashTreeConverter
------------------------------- : -1 : -1
---- Debugging information ----
message             : -1
cause-exception     : java.lang.ArrayIndexOutOfBoundsException
cause-message       : -1
class               : org.apache.jmeter.testelement.property.DoubleProperty
required-type       : org.apache.jmeter.testelement.property.DoubleProperty
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /jmeterTestPlan/hashTree/hashTree/hashTree/ConstantThroughputTimer/doubleProp/name
line number         : 32
class[1]            : org.apache.jmeter.timers.ConstantThroughputTimer
converter-type[1]   : org.apache.jmeter.save.converters.TestElementConverter
class[2]            : org.apache.jorphan.collections.ListedHashTree
converter-type[2]   : org.apache.jmeter.save.converters.HashTreeConverter
-------------------------------
message             : -1 : -1
---- Debugging information ----
message             : -1
cause-exception     : java.lang.ArrayIndexOutOfBoundsException
cause-message       : -1
class               : org.apache.jmeter.testelement.property.DoubleProperty
required-type       : org.apache.jmeter.testelement.property.DoubleProperty
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /jmeterTestPlan/hashTree/hashTree/hashTree/ConstantThroughputTimer/doubleProp/name
line number         : 32
class[1]            : org.apache.jmeter.timers.ConstantThroughputTimer
converter-type[1]   : org.apache.jmeter.save.converters.TestElementConverter
class[2]            : org.apache.jorphan.collections.ListedHashTree
converter-type[2]   : org.apache.jmeter.save.converters.HashTreeConverter
-------------------------------
cause-exception     : com.thoughtworks.xstream.converters.ConversionException
cause-message       : -1 : -1
first-jmeter-class  : org.apache.jmeter.save.converters.TestElementConverter.unmarshal(TestElementConverter.java:107)
class               : org.apache.jmeter.save.ScriptWrapper
required-type       : org.apache.jmeter.testelement.property.DoubleProperty
converter-type      : org.apache.jmeter.save.ScriptWrapperConverter
path                : /jmeterTestPlan/hashTree/hashTree/hashTree/ConstantThroughputTimer/doubleProp/name
line number         : 32
version             : 2.12-SNAPSHOT r1561147
------------------------------- 
2014/01/28 20:37:46 WARN  - jmeter.gui.action.Load: Unexpected error org.apache.jmeter.exceptions.IllegalUserActionException: Empty TestPlan - see log file
	at org.apache.jmeter.gui.action.Load.insertLoadedTree(Load.java:174)
	at org.apache.jmeter.gui.action.Load.loadProjectFile(Load.java:136)
	at org.apache.jmeter.gui.action.Load.loadProjectFile(Load.java:105)
	at org.apache.jmeter.gui.action.LoadRecentProject.doAction(LoadRecentProject.java:68)
	at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:81)
	at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40)
	at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:63)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

@asfimport
Copy link
Collaborator Author

@pmouawad (migrated from Bugzilla):
There is a newer XStream library, could you make a test with it ?

http://jira.codehaus.org/browse/XSTR-746

@asfimport
Copy link
Collaborator Author

@milamberspace (migrated from Bugzilla):

Fixed with xstream upgrade to 1.4.6

URL: http://svn.apache.org/r1562373
Log:
Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build
Updated to xstream 1.4.6 (from 1.4.4)
#3310

Added:
jmeter/trunk/licenses/bin/xstream-1.4.6.txt (contents, props changed)
- copied, changed from r1562371, jmeter/trunk/licenses/bin/xstream-1.4.4.txt
Removed:
jmeter/trunk/licenses/bin/xstream-1.4.4.txt
Modified:
jmeter/trunk/build.properties
jmeter/trunk/eclipse.classpath
jmeter/trunk/lib/ (props changed)
jmeter/trunk/lib/aareadme.txt
jmeter/trunk/res/maven/ApacheJMeter_parent.pom
jmeter/trunk/xdocs/changes.xml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant