<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.4</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Scenario</h3>
<p dir="auto">We have an interface provided in two IDC clusters. We call them <code class="notranslate">BJ</code> / <code class="notranslate">HZ</code>.<br>
The target interface we call it <code class="notranslate">AService</code>.</p>
<p dir="auto">In project <code class="notranslate">AProject</code> we want to subscribe AService separately from both BJ and HZ for different beans' registering.</p>
<p dir="auto">In XML age we can easily achieving that by</p>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;dubbo:registry id=&quot;ARegistry&quot; address=&quot;xxx&quot; /&gt;
&lt;dubbo:registry id=&quot;BRegistry&quot; address=&quot;zzz&quot; register=&quot;false&quot; /&gt;
&lt;dubbo:consumer registry=&quot;ARegistry&quot; .... /&gt;
&lt;dubbo:consumer interface=&quot;AService&quot; id=&quot;beanA /&gt;
&lt;dubbo:consumer interface=&quot;AService&quot; id=&quot;beanB&quot; registry=&quot;BRegistry /&gt;"><pre class="notranslate">&lt;<span class="pl-ent">dubbo</span><span class="pl-ent">:</span><span class="pl-ent">registry</span> <span class="pl-e">id</span>=<span class="pl-s"><span class="pl-pds">"</span>ARegistry<span class="pl-pds">"</span></span> <span class="pl-e">address</span>=<span class="pl-s"><span class="pl-pds">"</span>xxx<span class="pl-pds">"</span></span> /&gt;
&lt;<span class="pl-ent">dubbo</span><span class="pl-ent">:</span><span class="pl-ent">registry</span> <span class="pl-e">id</span>=<span class="pl-s"><span class="pl-pds">"</span>BRegistry<span class="pl-pds">"</span></span> <span class="pl-e">address</span>=<span class="pl-s"><span class="pl-pds">"</span>zzz<span class="pl-pds">"</span></span> <span class="pl-e">register</span>=<span class="pl-s"><span class="pl-pds">"</span>false<span class="pl-pds">"</span></span> /&gt;
&lt;<span class="pl-ent">dubbo</span><span class="pl-ent">:</span><span class="pl-ent">consumer</span> <span class="pl-e">registry</span>=<span class="pl-s"><span class="pl-pds">"</span>ARegistry<span class="pl-pds">"</span></span> .... /&gt;
&lt;<span class="pl-ent">dubbo</span><span class="pl-ent">:</span><span class="pl-ent">consumer</span> <span class="pl-e">interface</span>=<span class="pl-s"><span class="pl-pds">"</span>AService<span class="pl-pds">"</span></span> <span class="pl-e">id</span>=<span class="pl-s"><span class="pl-pds">"</span>beanA /&gt;</span>
<span class="pl-s">&lt;dubbo:consumer interface=<span class="pl-pds">"</span></span>AService<span class="pl-s"><span class="pl-pds">"</span> id=<span class="pl-pds">"</span></span>beanB<span class="pl-s"><span class="pl-pds">"</span> registry=<span class="pl-pds">"</span></span>BRegistry /&gt;</pre></div>
<p dir="auto">But in dubbo.properties, it's hard and the correct way is:</p>
<div class="highlight highlight-source-ini notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="# main registry
dubbo.registry.id=registryMain
dubbo.registry.address=xxxx
dubbo.registry.file=logs/dubbo-registry-main.properties
dubbo.registry.protocol=zookeeper

# second registry
dubbo.registries.registryOther.id=registryOther
dubbo.registries.registryOther.address=zzzz
dubbo.registries.registryOther.file=logs/dubbo-registry-other.properties
dubbo.registries.registryOther.protocol=zookeeper
dubbo.registries.registryOther.register=false

dubbo.provider.timeout=30000
dubbo.provider.registryIds=registryMain

dubbo.consumer.id=consumerMain
dubbo.consumer.registryIds=registryMain
dubbo.consumer.timeout=30000
dubbo.consumer.retries=0
dubbo.consumer.default=true           ########## important

dubbo.consumers.consumerOther.id=consumerOther
dubbo.consumers.consumerOther.registryIds=registryOther
dubbo.consumers.consumerOther.timeout=30000
dubbo.consumers.consumerOther.retries=0
dubbo.consumers.consumerOther.default=false         ####### important

dubbo.monitor.protocol=registry"><pre class="notranslate"><span class="pl-c"><span class="pl-c">#</span> main registry</span>
<span class="pl-k">dubbo.registry.id</span>=registryMain
<span class="pl-k">dubbo.registry.address</span>=xxxx
<span class="pl-k">dubbo.registry.file</span>=logs/dubbo-registry-main.properties
<span class="pl-k">dubbo.registry.protocol</span>=zookeeper

<span class="pl-c"><span class="pl-c">#</span> second registry</span>
<span class="pl-k">dubbo.registries.registryOther.id</span>=registryOther
<span class="pl-k">dubbo.registries.registryOther.address</span>=zzzz
<span class="pl-k">dubbo.registries.registryOther.file</span>=logs/dubbo-registry-other.properties
<span class="pl-k">dubbo.registries.registryOther.protocol</span>=zookeeper
<span class="pl-k">dubbo.registries.registryOther.register</span>=false

<span class="pl-k">dubbo.provider.timeout</span>=30000
<span class="pl-k">dubbo.provider.registryIds</span>=registryMain

<span class="pl-k">dubbo.consumer.id</span>=consumerMain
<span class="pl-k">dubbo.consumer.registryIds</span>=registryMain
<span class="pl-k">dubbo.consumer.timeout</span>=30000
<span class="pl-k">dubbo.consumer.retries</span>=0
<span class="pl-k">dubbo.consumer.default</span>=true           <span class="pl-c"><span class="pl-c">#</span>######### important</span>

<span class="pl-k">dubbo.consumers.consumerOther.id</span>=consumerOther
<span class="pl-k">dubbo.consumers.consumerOther.registryIds</span>=registryOther
<span class="pl-k">dubbo.consumers.consumerOther.timeout</span>=30000
<span class="pl-k">dubbo.consumers.consumerOther.retries</span>=0
<span class="pl-k">dubbo.consumers.consumerOther.default</span>=false         <span class="pl-c"><span class="pl-c">#</span>###### important</span>

<span class="pl-k">dubbo.monitor.protocol</span>=registry</pre></div>
<p dir="auto">And when reference:</p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="@Reference
private AService beanA;
@Reference(consumer = &quot;consumerOther&quot;, injvm = false, id = &quot;beanB&quot;)
private AService beanB;"><pre class="notranslate"><span class="pl-c1">@</span><span class="pl-c1">Reference</span>
<span class="pl-k">private</span> <span class="pl-smi">AService</span> <span class="pl-s1">beanA</span>;
<span class="pl-c1">@</span><span class="pl-c1">Reference</span>(<span class="pl-s1">consumer</span> = <span class="pl-s">"consumerOther"</span>, <span class="pl-s1">injvm</span> = <span class="pl-c1">false</span>, <span class="pl-s1">id</span> = <span class="pl-s">"beanB"</span>)
<span class="pl-k">private</span> <span class="pl-smi">AService</span> <span class="pl-s1">beanB</span>;</pre></div>
<p dir="auto">Following will not achieve it:</p>
<div class="highlight highlight-source-ini notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="# main registry
dubbo.registry.id=registryMain
dubbo.registry.address=xxxx
dubbo.registry.file=logs/dubbo-registry-main.properties
dubbo.registry.protocol=zookeeper
dubbo.registry.default=true     #########

# second registry
dubbo.registries.registryOther.id=registryOther
dubbo.registries.registryOther.address=zzzz
dubbo.registries.registryOther.file=logs/dubbo-registry-other.properties
dubbo.registries.registryOther.protocol=zookeeper
dubbo.registries.registryOther.register=false
dubbo.registries.registryOther.default=false

dubbo.provider.timeout=30000
dubbo.provider.registryIds=registryMain

dubbo.consumer.id=consumerMain
dubbo.consumer.registryIds=registryMain
dubbo.consumer.timeout=30000
dubbo.consumer.retries=0

dubbo.monitor.protocol=registry"><pre class="notranslate"><span class="pl-c"><span class="pl-c">#</span> main registry</span>
<span class="pl-k">dubbo.registry.id</span>=registryMain
<span class="pl-k">dubbo.registry.address</span>=xxxx
<span class="pl-k">dubbo.registry.file</span>=logs/dubbo-registry-main.properties
<span class="pl-k">dubbo.registry.protocol</span>=zookeeper
<span class="pl-k">dubbo.registry.default</span>=true     <span class="pl-c"><span class="pl-c">#</span>########</span>

<span class="pl-c"><span class="pl-c">#</span> second registry</span>
<span class="pl-k">dubbo.registries.registryOther.id</span>=registryOther
<span class="pl-k">dubbo.registries.registryOther.address</span>=zzzz
<span class="pl-k">dubbo.registries.registryOther.file</span>=logs/dubbo-registry-other.properties
<span class="pl-k">dubbo.registries.registryOther.protocol</span>=zookeeper
<span class="pl-k">dubbo.registries.registryOther.register</span>=false
<span class="pl-k">dubbo.registries.registryOther.default</span>=false

<span class="pl-k">dubbo.provider.timeout</span>=30000
<span class="pl-k">dubbo.provider.registryIds</span>=registryMain

<span class="pl-k">dubbo.consumer.id</span>=consumerMain
<span class="pl-k">dubbo.consumer.registryIds</span>=registryMain
<span class="pl-k">dubbo.consumer.timeout</span>=30000
<span class="pl-k">dubbo.consumer.retries</span>=0

<span class="pl-k">dubbo.monitor.protocol</span>=registry</pre></div>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="@Reference
private AService beanA;
@Reference(registry = &quot;registryOther&quot;, injvm = false, id = &quot;beanB&quot;)
private AService beanB;"><pre class="notranslate"><span class="pl-c1">@</span><span class="pl-c1">Reference</span>
<span class="pl-k">private</span> <span class="pl-smi">AService</span> <span class="pl-s1">beanA</span>;
<span class="pl-c1">@</span><span class="pl-c1">Reference</span>(<span class="pl-s1">registry</span> = <span class="pl-s">"registryOther"</span>, <span class="pl-s1">injvm</span> = <span class="pl-c1">false</span>, <span class="pl-s1">id</span> = <span class="pl-s">"beanB"</span>)
<span class="pl-k">private</span> <span class="pl-smi">AService</span> <span class="pl-s1">beanB</span>;</pre></div>
<p dir="auto">Will cause unexpected subscription and wrong configuration for beanB.</p>
<p dir="auto">And setting registryOther both register=false and subscript=false will ignore its initializing.</p>
<p dir="auto">Same to other kinds of such configuration combinations.</p>
<p dir="auto">Is that an issue?</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.3</li>
<li>Operating System version: win7</li>
<li>Java version: jdk8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<ol dir="auto">
<li>write a goole proto file contain bytes list or bytes map.<br>
<code class="notranslate">syntax = "proto2"; package org.apache.dubbo.metadata.definition.protobuf.model; message PBRequestType { optional bytes msg = 7;    repeated bytes bytesList = 10; map&lt;string, bytes&gt; bytesMap = 11; }</code></li>
<li>generate goolgle pb entity and used as service parameter.</li>
<li>add dependency</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" &lt;dependency&gt;
            &lt;groupId&gt;com.google.protobuf&lt;/groupId&gt;
           &lt;artifactId&gt;dubbo-metadata-definition-protobuf&lt;/artifactId&gt;
   &lt;/dependency&gt;"><pre class="notranslate"><code class="notranslate"> &lt;dependency&gt;
            &lt;groupId&gt;com.google.protobuf&lt;/groupId&gt;
           &lt;artifactId&gt;dubbo-metadata-definition-protobuf&lt;/artifactId&gt;
   &lt;/dependency&gt;
</code></pre></div>
<ol start="4" dir="auto">
<li>service log exception when generate service definition.<br>
see  org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilderTest<br>
<a href="https://github.com/vio-lin/incubator-dubbo/tree/reappear">仓库地址</a></li>
<li>Some compatibility logic could be added by who want to use the serviceDefinition.<br>
We could use String Value in base64 encoded to transform to bytes property.</li>
</ol>
<p dir="auto">Brief changelog</p>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">serviceDefinition should be generated successfully.</p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">If there is an exception, please attach the exception trace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="java.lang.IllegalArgumentException: Map protobuf property bytesMapof Type java.util.Map&lt;java.lang.String, com.google.protobuf.ByteString&gt; can't be parsed.Map with unString key or ByteString value is not supported.
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.validateMapType(ProtobufTypeBuilder.java:164)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.buildProtobufTypeDefinition(ProtobufTypeBuilder.java:103)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.build(ProtobufTypeBuilder.java:72)
	at org.apache.dubbo.metadata.definition.TypeDefinitionBuilder.build(TypeDefinitionBuilder.java:52)
	at org.apache.dubbo.metadata.definition.TypeDefinitionBuilder.build(TypeDefinitionBuilder.java:81)
	at org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.build(ServiceDefinitionBuilder.java:77)
	at org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.buildFullDefinition(ServiceDefinitionBuilder.java:50)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilderTest.testProtobufBuilder(ProtobufTypeBuilderTest.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:628)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:117)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:184)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:180)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:127)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
	at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)"><pre class="notranslate"><code class="notranslate">java.lang.IllegalArgumentException: Map protobuf property bytesMapof Type java.util.Map&lt;java.lang.String, com.google.protobuf.ByteString&gt; can't be parsed.Map with unString key or ByteString value is not supported.
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.validateMapType(ProtobufTypeBuilder.java:164)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.buildProtobufTypeDefinition(ProtobufTypeBuilder.java:103)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder.build(ProtobufTypeBuilder.java:72)
	at org.apache.dubbo.metadata.definition.TypeDefinitionBuilder.build(TypeDefinitionBuilder.java:52)
	at org.apache.dubbo.metadata.definition.TypeDefinitionBuilder.build(TypeDefinitionBuilder.java:81)
	at org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.build(ServiceDefinitionBuilder.java:77)
	at org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.buildFullDefinition(ServiceDefinitionBuilder.java:50)
	at org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilderTest.testProtobufBuilder(ProtobufTypeBuilderTest.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:628)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:117)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:184)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:180)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:127)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
	at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
</code></pre></div>