[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: ThreadInfoCompositeData.compositeType() broken in 11 and later
From:       Sven Reimers <sven.reimers () gmail ! com>
Date:       2018-10-22 0:15:22
Message-ID: CAP+Jvx6yLyQfBv0Z6Kwtdow=NMVW=sPTV-N0RD-JP4PQM=XRrg () mail ! gmail ! com
[Download RAW message or body]

Probable fix use Runtime.version().feature() instead of 0:

    public static CompositeType compositeType() {
        return
ThreadInfoCompositeTypes.compositeTypes.get(Runtime.version().feature());
    }

Sven


On Sun, Oct 21, 2018 at 10:50 AM Sven Reimers <sven.reimers@gmail.com>
wrote:

> Hi,
> 
> seems with the change for
> 
> 8198253: ThreadInfo.from(CompositeData) incorrectly accepts CompositeData
> with missing JDK 6 attributes
> 
> ThreadInfoCompositeData.compositeType()  was broken. It just returns
> 
> public static CompositeType compositeType() {
> return ThreadInfoCompositeTypes.compositeTypes.get(0);
> }
> 
> while ThreadInfoCompositeTypes.compositeTypes consists of
> 
> types.put(CURRENT, ctype);
> types.put(5, initV5CompositeType(ctype));
> types.put(6, initV6CompositeType(ctype));
> 
> so that compositeType just returns null, which further down the stack
> leads to
> 
> java.lang.reflect.InvocationTargetException
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at
> org.netbeans.modules.sampler.SamplesOutputStream.toCompositeData(SamplesOutputStream.java:178)
>  at
> org.netbeans.modules.sampler.SamplesOutputStream.access$400(SamplesOutputStream.java:44)
>  at
> org.netbeans.modules.sampler.SamplesOutputStream$Sample.writeToStream(SamplesOutputStream.java:285)
>  at
> org.netbeans.modules.sampler.SamplesOutputStream$Sample.access$300(SamplesOutputStream.java:253)
>  at
> org.netbeans.modules.sampler.SamplesOutputStream.close(SamplesOutputStream.java:202)
>  at org.netbeans.modules.sampler.Sampler.stopSampling(Sampler.java:231)
> at org.netbeans.modules.sampler.Sampler.stop(Sampler.java:207)
> at
> org.netbeans.core.ui.sampler.SelfSamplerAction$1.doInBackground(SelfSamplerAction.java:90)
>  at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  at java.base/java.lang.Thread.run(Thread.java:835)xx
> Caused by: java.lang.IllegalArgumentException: Argument compositeType
> cannot be null.
> at
> java.management/javax.management.openmbean.CompositeDataSupport.<init>(CompositeDataSupport.java:206)
>  at
> java.management/javax.management.openmbean.CompositeDataSupport.<init>(CompositeDataSupport.java:118)
>  at
> java.management/sun.management.ThreadInfoCompositeData.getCompositeData(ThreadInfoCompositeData.java:130)
>  at
> java.management/sun.management.ThreadInfoCompositeData.toCompositeData(ThreadInfoCompositeData.java:72)
>                 
> ... 18 more
> 
> See also latest comments on NETBEANS-1359
> <https://issues.apache.org/jira/browse/NETBEANS-1359?focusedCommentId=16658301&page= \
>                 com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16658301>
>                 
> .
> 
> Thanks for investigating.
> 
> -Sven
> 


-- 
Sven Reimers

* Senior Expert Software Architect
* Java Champion
* NetBeans Dream Team Member: http://dreamteam.netbeans.org
* Community Leader  NetBeans: http://community.java.net/netbeans
                              Desktop Java:
http://community.java.net/javadesktop
* JUG Leader JUG Bodensee: http://www.jug-bodensee.de
* Duke's Choice Award Winner 2009

* XING: https://www.xing.com/profile/Sven_Reimers8
* LinkedIn: http://www.linkedin.com/in/svenreimers


[Attachment #3 (text/html)]

<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Probable \
fix use Runtime.version().feature() instead of 0:</div><div dir="ltr"><br><div><div>  \
public static CompositeType compositeType() {</div><div>            return \
ThreadInfoCompositeTypes.compositeTypes.get(Runtime.version().feature());</div><div>  \
}</div></div><div><br><div>Sven</div><div><br></div></div></div></div></div></div></div><br><div \
class="gmail_quote"><div dir="ltr">On Sun, Oct 21, 2018 at 10:50 AM Sven Reimers \
&lt;<a href="mailto:sven.reimers@gmail.com">sven.reimers@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div \
dir="ltr">Hi,<div><br></div><div>seems with the change for  \
</div><div><br></div><div>8198253: ThreadInfo.from(CompositeData) incorrectly accepts \
CompositeData with missing JDK 6 \
attributes</div><div><br></div><div>ThreadInfoCompositeData.compositeType()   was \
broken. It just returns</div><div><br></div><div><div>      public static \
CompositeType compositeType() {</div><div>            return \
ThreadInfoCompositeTypes.compositeTypes.get(0);</div><div>      \
}</div><div><br></div><div>while ThreadInfoCompositeTypes.compositeTypes consists of  \
</div><div><br></div><div>                  types.put(CURRENT, ctype);</div><div>     \
types.put(5, initV5CompositeType(ctype));</div><div>                  types.put(6, \
initV6CompositeType(ctype));</div><div><br></div><div>so that compositeType just \
returns null, which further down the stack leads to</div><div><br></div><div><pre \
class="m_7205033560727153568gmail-code-java" \
style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-keyword" \
style="color:rgb(145,0,145)"></span></pre><pre \
class="m_7205033560727153568gmail-code-java" \
style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-keyword" \
style="color:rgb(145,0,145)"></span></pre></div><div><pre \
class="m_7205033560727153568gmail-code-java" \
style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-keyword" \
style="color:rgb(145,0,145)"></span></pre><pre \
class="m_7205033560727153568gmail-code-java" \
style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px"><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-object" \
style="color:rgb(0,0,145)"></span><span \
class="m_7205033560727153568gmail-code-keyword" \
style="color:rgb(145,0,145)"></span></pre><div>java.lang.reflect.InvocationTargetException</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native \
Method)</div><div><span class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/java.lang.reflect.Method.invoke(Method.java:566)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.SamplesOutputStream.toCompositeData(SamplesOutputStream.java:178)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.SamplesOutputStream.access$400(SamplesOutputStream.java:44)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.SamplesOutputStream$Sample.writeToStream(SamplesOutputStream.java:285)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.SamplesOutputStream$Sample.access$300(SamplesOutputStream.java:253)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.SamplesOutputStream.close(SamplesOutputStream.java:202)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.Sampler.stopSampling(Sampler.java:231)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.modules.sampler.Sampler.stop(Sampler.java:207)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
org.netbeans.core.ui.sampler.SelfSamplerAction$1.doInBackground(SelfSamplerAction.java:90)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.base/java.lang.Thread.run(Thread.java:835)xx</div><div>Caused by: \
java.lang.IllegalArgumentException: Argument compositeType cannot be \
null.</div><div><span class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.management/javax.management.openmbean.CompositeDataSupport.&lt;init&gt;(CompositeDataSupport.java:206)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.management/javax.management.openmbean.CompositeDataSupport.&lt;init&gt;(CompositeDataSupport.java:118)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.management/sun.management.ThreadInfoCompositeData.getCompositeData(ThreadInfoCompositeData.java:130)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>at \
java.management/sun.management.ThreadInfoCompositeData.toCompositeData(ThreadInfoCompositeData.java:72)</div><div><span \
class="m_7205033560727153568gmail-Apple-tab-span" \
style="white-space:pre-wrap">	</span>... 18 more</div></div><div><br></div><div>See \
also latest comments on  <a \
href="https://issues.apache.org/jira/browse/NETBEANS-1359?focusedCommentId=16658301&am \
p;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16658301" \
target="_blank">NETBEANS-1359</a>.</div><div><br></div><div>Thanks for \
investigating.</div><div><br></div><div>-Sven</div></div></div></div></div></div></div></div></div></div></div></div></div></div>
 </blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" \
class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div \
dir="ltr"><div dir="ltr"><div>Sven Reimers<br><br>* Senior Expert Software \
Architect</div><div>* Java Champion<br>* NetBeans Dream Team Member: <a \
href="http://dreamteam.netbeans.org" \
target="_blank">http://dreamteam.netbeans.org</a><br>* Community Leader   NetBeans: \
<a href="http://community.java.net/netbeans" \
target="_blank">http://community.java.net/netbeans</a><br>                            \
Desktop Java: <a href="http://community.java.net/javadesktop" \
target="_blank">http://community.java.net/javadesktop</a><br></div>* JUG Leader JUG \
Bodensee: <a href="http://www.jug-bodensee.de" \
target="_blank">http://www.jug-bodensee.de</a><br><div>* Duke&#39;s Choice Award \
Winner 2009<br><br>* XING: <a href="https://www.xing.com/profile/Sven_Reimers8" \
target="_blank">https://www.xing.com/profile/Sven_Reimers8</a><br>* LinkedIn: <a \
href="http://www.linkedin.com/in/svenreimers" \
target="_blank">http://www.linkedin.com/in/svenreimers</a><br></div></div></div></div></div></div>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic