text:
API level 21 is not working due to incorrect shadows

Trace:
java.lang.NoSuchMethodError: java.lang.System.arraycopy([II[III)V
	at com.android.internal.util.GrowingArrayUtils.insert(GrowingArrayUtils.java:135)
	at android.util.SparseIntArray.put(SparseIntArray.java:143)
	at android.view.RenderNodeAnimator$1.__constructor__(RenderNodeAnimator.java:68)
	at android.view.RenderNodeAnimator$1.<init>(RenderNodeAnimator.java)
	at android.view.RenderNodeAnimator.__staticInitializer__(RenderNodeAnimator.java:67)
	at org.robolectric.util.ReflectionHelpers.callStaticMethod(ReflectionHelpers.java:263)
	at org.robolectric.internal.bytecode.RobolectricInternals.performStaticInitialization(RobolectricInternals.java:56)
	at org.robolectric.internal.bytecode.ShadowWrangler.classInitializing(ShadowWrangler.java:116)
	at org.robolectric.internal.bytecode.RobolectricInternals.classInitializing(RobolectricInternals.java:20)
	at android.view.RenderNodeAnimator.<clinit>(RenderNodeAnimator.java)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:158)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:173)
	at org.robolectric.shadows.ShadowRenderNodeAnimator.reset(ShadowRenderNodeAnimator.java:33)
	at org.robolectric.Shadows.reset(Shadows.java:1662)
	at org.robolectric.Robolectric.reset(Robolectric.java:42)
	at org.robolectric.android.internal.ParallelUniverse.resetStaticState(ParallelUniverse.java:45)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.beforeTest(OleasterRobolectricRunner.java:104)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:273)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	at org.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
java.lang.reflect.InvocationTargetException
	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.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.RuntimeException: An exception occurred while running invokable: Can't create handler inside thread that has not called Looper.prepare()
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:168)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	... 21 more
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
	at android.os.Handler.__constructor__(Handler.java:200)
	at android.os.Handler.<init>(Handler.java)
	at android.app.Activity.__constructor__(Activity.java:793)
	at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:232)
	at org.robolectric.internal.bytecode.ShadowImpl.invokeConstructor(ShadowImpl.java:71)
	at org.robolectric.shadow.api.Shadow.invokeConstructor(Shadow.java:66)
	at org.robolectric.shadows.ShadowActivity.__constructor__(ShadowActivity.java:80)
	at android.app.Activity.<init>(Activity.java)
	at com.example.harshitbangar.testapp.MainActivity.<init>(MainActivity.java:8)
	at org.robolectric.util.ReflectionHelpers.callConstructor(ReflectionHelpers.java:322)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:98)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:94)
	at com.example.harshitbangar.testapp.MainActivityTest.lambda$null$0(MainActivityTest.java:35)
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:166)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	at org.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	... 1 more
java.lang.NoClassDefFoundError: Could not initialize class android.view.RenderNodeAnimator
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
	at java.lang.reflect.Field.set(Field.java:764)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:158)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:173)
	at org.robolectric.shadows.ShadowRenderNodeAnimator.reset(ShadowRenderNodeAnimator.java:33)
	at org.robolectric.Shadows.reset(Shadows.java:1662)
	at org.robolectric.Robolectric.reset(Robolectric.java:42)
	at org.robolectric.android.internal.ParallelUniverse.resetStaticState(ParallelUniverse.java:45)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.beforeTest(OleasterRobolectricRunner.java:104)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:273)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	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.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
java.lang.reflect.InvocationTargetException
	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.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.RuntimeException: An exception occurred while running invokable: Can't create handler inside thread that has not called Looper.prepare()
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:168)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	... 21 more
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
	at android.os.Handler.__constructor__(Handler.java:200)
	at android.os.Handler.<init>(Handler.java)
	at android.app.Activity.__constructor__(Activity.java:793)
	at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:232)
	at org.robolectric.internal.bytecode.ShadowImpl.invokeConstructor(ShadowImpl.java:71)
	at org.robolectric.shadow.api.Shadow.invokeConstructor(Shadow.java:66)
	at org.robolectric.shadows.ShadowActivity.__constructor__(ShadowActivity.java:80)
	at android.app.Activity.<init>(Activity.java)
	at com.example.harshitbangar.testapp.MainActivity.<init>(MainActivity.java:8)
	at org.robolectric.util.ReflectionHelpers.callConstructor(ReflectionHelpers.java:322)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:98)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:94)
	at com.example.harshitbangar.testapp.MainActivityTest.lambda$null$0(MainActivityTest.java:35)
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:166)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	at org.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	... 1 more
java.lang.NoClassDefFoundError: Could not initialize class android.view.RenderNodeAnimator
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
	at java.lang.reflect.Field.set(Field.java:764)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:158)
	at org.robolectric.util.ReflectionHelpers.setStaticField(ReflectionHelpers.java:173)
	at org.robolectric.shadows.ShadowRenderNodeAnimator.reset(ShadowRenderNodeAnimator.java:33)
	at org.robolectric.Shadows.reset(Shadows.java:1662)
	at org.robolectric.Robolectric.reset(Robolectric.java:42)
	at org.robolectric.android.internal.ParallelUniverse.resetStaticState(ParallelUniverse.java:45)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.beforeTest(OleasterRobolectricRunner.java:104)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:273)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	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.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
java.lang.reflect.InvocationTargetException
	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.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.RuntimeException: An exception occurred while running invokable: Can't create handler inside thread that has not called Looper.prepare()
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:168)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	... 21 more
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
	at android.os.Handler.__constructor__(Handler.java:200)
	at android.os.Handler.<init>(Handler.java)
	at android.app.Activity.__constructor__(Activity.java:793)
	at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:232)
	at org.robolectric.internal.bytecode.ShadowImpl.invokeConstructor(ShadowImpl.java:71)
	at org.robolectric.shadow.api.Shadow.invokeConstructor(Shadow.java:66)
	at org.robolectric.shadows.ShadowActivity.__constructor__(ShadowActivity.java:80)
	at android.app.Activity.<init>(Activity.java)
	at com.example.harshitbangar.testapp.MainActivity.<init>(MainActivity.java:8)
	at org.robolectric.util.ReflectionHelpers.callConstructor(ReflectionHelpers.java:322)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:98)
	at org.robolectric.Robolectric.buildActivity(Robolectric.java:94)
	at com.example.harshitbangar.testapp.MainActivityTest.lambda$null$0(MainActivityTest.java:35)
	at com.mscharhag.oleaster.runner.OleasterRunner.lambda$runInvokables$1(OleasterRunner.java:166)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at com.mscharhag.oleaster.runner.OleasterRunner.runInvokables(OleasterRunner.java:164)
	at com.mscharhag.oleaster.runner.OleasterRunner.runBeforeEachCallbacks(OleasterRunner.java:121)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:287)
	at com.mscharhag.oleaster.runner.OleasterRobolectricRunner.runChild(OleasterRobolectricRunner.java:57)
	at org.robolectric.internal.RoboOleaster.runChild(RoboOleaster.java:171)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
	... 1 more

The test works perfectly with RobolectricTestRunner. Instrumentation config is incorrectly loaded.

Fixed with https://github.com/bangarharshit/RoboOleaster/commit/76f9a8e6e09c0a0fb5240496e479b1e1a41e7ec4

repo: bangarharshit/RoboOleaster


text:
提供tsterser到webpack的接入方式，提供相应的webpack plugin

类似于webpack中现有的 terser webpack plugin: https://www.npmjs.com/package/terser-webpack-plugin
提供一个相似的 tsterser-webpack-plugin，并实现无缝替换terser-webpack-plugin。

好

source: gharchive/issue

authors: banyudu wxgg

repo: banyudu/tsterser-webpack-plugin

license: MIT

license_type: permissive

license_source: github-api


text:
Add example to show how users can customize log4j properties for kafka servers

Q
A

Bug fix?
no

New feature?
no

API breaks?
no

Deprecations?
no

License
Apache 2.0

What's in this PR?

Docs - add example to show how users can customize log4j properties for kafka servers
Why?

Currently we don't have an example to show how this customized configurations can be set

LGTM, nice to have it :)

source: gharchive/pull-request

repo: banzaicloud/koperator


text:
QueryWrapper序列化有问题，问题在SharedString

当前使用版本(必须填写清楚，否则不予处理)
版本3.3.1
该问题是怎么引起的？(最新版上已修复的会直接close掉)
Dubbo RPC调用，参数为QueryWrapper，序列化失败，无法调用。直接继承AbstractWrapper是可以序列化的，原因在SharedString类
重现步骤
使用Dubbo2.7.3，默认序列化方式是hessian
报错信息
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodName=getABC, parameterTypes=[class com.baomidou.mybatisplus.core.conditions.Wrapper], arguments=null, attachments={path=com.ly.energy.upload.facade.upload.FacadeUpload, input=985, dubbo=2.0.2, version=0.0.0}]

不建议序列化wrapper

repo: baomidou/mybatis-plus

license_source: bigquery


text:
Consider replacing the chrono crates with security

ref:https://github.com/baoyachi/shadow-rs/issues/71

use time crates replace with chrono

although its not really a security issue, this is slightly annoying because it fails the CI check. time 0.3.11 does not trigger any security advisory atleast.

Solution: Consider the following two creates

https://docs.rs/time
https://docs.rs/tz-rs

Close now, and reopen it if there is a problem.

authors: baoyachi coderedart

repo: baoyachi/shadow-rs


text:
Doesn't work on OSX/MacOS

As pointed out in several threads online, you can't access HID through libusb.lib on Mac, so this one doesn't work either.
(a.o.: (https://github.com/tessel/node-usb/issues/30#issuecomment-244477201))
I'm not expecting you to fix this; just leaving this note for others experiencing the same...

I haven't tried it in 10.12 yet, but it certainly worked in 10.11 fine with the kext generated by HIDAPI::SetupTaskHelper.  The kext is supposed to disconnect the specific HID device from the kernel's HID driver, thereby allowing libusb to access the device.  Did you receive a specific error when you attempted using the library?

You're absolutely right, I didn't notice the kext section in the readme while hurrying to get something working. Sorry :(

authors: barkerest bertBruynooghe

repo: barkerest/hidapi


text:
openPicker doesn't return a response when I press the "done" button without making any changes to the selectedAssets

My app asks users to upload at least 10 photos and if they don't, it triggers an alert with a button that redirects the user to the photo gallery (retaining the selected photos).
But when the user hits the done button again WITHOUT making any changes to the list of selected photos, then openPicker doesn't get triggered at all (the function doesn't return anything, not even null). So, the app fails to trigger the alert button (it should be triggered because the user still hasn't selected 10 photos).
Could someone please help me out?

Handle your case in js code. Because this library only considers the maximum condition when selecting

I’m facing the same issue. When I click 'Done' without making any changes in the picker, it doesn’t return anything and stays stuck in the openPicker function. Is there a fix or workaround for this?

authors: YubinKim16 baronha krisnapy


text:
E-mails are hidden if not all cookies are allowed

Description (screenshots, logs, ...)
If only necessary cookies are allowed (we're using Cookiebot https://www.cookiebot.com), then e-mails are not shown. They only show up if only all cookies are allowed.
In the case of this plugin, no cookie is set with "Sprout Encode Email". Typically, we could add any cookie in the necessary section, but not in this case. In order to work with this plugin, we're asking you to do so.
Additional info

Craft version: 3.7.37
PHP version: 7.3.27
Database driver & version:  MySQL 5.7.33
Plugins & versions: Sprout Encode Email 2.0.7

For some issues, we may request that you send the following items to Support sprout@barrelstrengthdesign.com. If you feel your issue may fall in that category, feel free to send things over after you post this issue and reference the issue in your email.

composer.json
storage/logs/web.log (or a zip of the whole log folder)
An export of your database (or, if you can't share the whole db, the specific Sprout tables)

@BenParizek & @brandonkelly ping 🛎
Let me know even if you don't plan to work on it. We'll fork and make changes ourselves.

I’m not affiliated with Barrel Strength or this plugin, but the readme looks like it has your answer:

Status

In an effort to reduce the number of packages we publicly maintain, Sprout Encode Email will not be migrated to Craft 4. If you'd like to take the helm or take responsibility over maintaining the repository please reach out: sprout@barrelstrengthdesign.com.

@brandonkelly, thanks, I see. Any intent for the Craft team to take it over, even integrate it?

You’re welcome to start a discussion about it!

authors: brandonkelly sandissauka


text:
Cannot install edgedriver (install.js issue)

When installing via nightwatch yeoman yo nightwatchjs I get the error below:
Versions
node v7.5.0
npm v4.2.0

Error
541 silly install printInstalled
542 verbose stack Error: edgedriver@2.1.142791 install: `node install.js`
542 verbose stack Exit status 1
542 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
542 verbose stack     at emitTwo (events.js:106:13)
542 verbose stack     at EventEmitter.emit (events.js:192:7)
542 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
542 verbose stack     at emitTwo (events.js:106:13)
542 verbose stack     at ChildProcess.emit (events.js:192:7)
542 verbose stack     at maybeClose (internal/child_process.js:890:16)
542 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
543 verbose pkgid edgedriver@2.1.142791
544 verbose cwd /Users/.../code/.../e2e
545 error Darwin 14.5.0
546 error argv "/usr/local/Cellar/node/7.5.0/bin/node" "/usr/local/bin/npm" "install"
547 error node v7.5.0
548 error npm  v4.2.0
549 error code ELIFECYCLE
550 error errno 1
551 error edgedriver@2.1.142791 install: `node install.js`
551 error Exit status 1
552 error Failed at the edgedriver@2.1.142791 install script 'node install.js'.
552 error Make sure you have the latest version of node.js and npm installed.
552 error If you do, this is most likely a problem with the edgedriver package,
552 error not with npm itself.
552 error Tell the author that this fails on your system:
552 error     node install.js
552 error You can get information on how to open an issue for this project with:
552 error     npm bugs edgedriver
552 error Or if that isn't available, you can get their info via:
552 error     npm owner ls edgedriver
552 error There is likely additional logging output above.
553 verbose exit [ 1, true ]

Any chance you're trying this on a Mac? This package is only suitable for Windows.

authors: Fishbowler enroxorz

repo: barretts/node-edgedriver


text:
Remove state between pages while scrolling horizontally

Here my snippet:
   pdfView = findViewById(R.id.pdfView);
        pageNumberTextView = findViewById(R.id.pageNumberTextView);
        pdfView.fromAsset("portrait.pdf")
                .defaultPage(currentPage)
                .onPageChange(this)
                .enableAntialiasing(false)
                .swipeHorizontal(true).load();

And it's work fine. OK.
Here result:

As you can see when I stop swiping horizontally the pdfViewer can stop between pages. But I wan't this behavior. How I can remove this effect?

You may use AndroidPdfViewerV1

Do you mean this:
compile 'com.github.barteksc:android-pdf-viewer:1.6.0'
and in Android code:
     pdfView.fromAsset("portrait.pdf")
                .defaultPage(currentPage)
                .enableSwipe(false)
                .onPageChange(this)
                .load()

?

From memory if you adjust the fit to width code you can remove the white to a certain amount

My old fork has code to remove borders on orientation which after looking twice is what this may appear to be, change the border color to confirm.

This code working perfectly.
pdfView.fromStream(inputStream)
.enableDoubletap(true)
.enableSwipe(true)
.pageSnap(true)
.autoSpacing(true)
.pageFling(true)
.swipeHorizontal(true)
.pageFitPolicy(FitPolicy.BOTH)
.onPageChange(new OnPageChangeListener() {
@Override
public void onPageChanged(int page, int pageCount) {
Log.d("Check","Check : "+inputStream);
Log.d("Check","Check : "+page);
}
})
.load();
;

repo: barteksc/AndroidPdfViewer


text:
fix(feat): handle autoplay timing correctly

When changing a slide using the public slideTo function, the autoplay would not reset and switch to fast on the next slide. Using autoplay.enable() and autoplay.disable() also didn't stop or resume the autoplay.
This should be fixed now
fixes: https://github.com/barthy-koeln/scroll-snap-slider/issues/30

Closed in favor of https://github.com/barthy-koeln/scroll-snap-slider/pull/35

repo: barthy-koeln/scroll-snap-slider


text:
Questions/Requests about ConfirmModal and PromptModal (custom css and html)

Is it possible to add a custom css class for ConfirmModal or PromptModal?
I tried to add a "class" parameters in the configuration object, but that didn't seem to work.
I would also like to be able to insert html into the buttons text to add an icon to them. How should I do that?

Custom CSS can be added by using the provided .confirm-modal and .prompt-modal classes.
There is no way currently to customize the HTML structure of the modals.  Since the modals use the ModalFactory, it would make sense to allow customizing the configuration object used by both modals.  Some properties of the configuration object such as contentScope and destroyOnClose are vital to the functionality of the modals, but properties such as class, overlay, and templateUrl can be used to adjust the styling of the modals.
I would like to make the ConfirmModal and PromptModal as easy to configure as possible, but I also don't want to go down the route of adding configuration options for every single use case as at some point it'll get out of hand.  For instance, I would like to add support for icons to the buttons, but 4 configuration options would be needed of the gate:

Icon HTML for enter button
Icon HTML for cancel button
Icon position for enter button icon

available if using one of the icons supported by Angular Icons

Icon position for cancel button icon

available if using one of the icons supported by Angular Icons

Adding icons to the modals could instead be done by creating a new template for the modals and overriding the default template provided by Angular Base Apps.  This is probably the best approach to cover all use cases.
If you need anything more complex (like modifying contentScope), it likely points to needing to write your own implementation of the modals.

@Seb- if you need support for this right away, you can inject the html into the buttons after the modal has been rendered.  The enter and cancel buttons have the enter-button and cancel-button classes, respectively.

@Seb- I've created a new issue to add support for overriding the templateUrl property.  Is there anything else that needs to be addressed before this can be closed?

closing with the assumption this is resolved

I need to progress in my project and this seems to be too much for the result so I gave up on it for the moment and just kept default. The information was useful though. I might get back to it and comment more when I have time to play with this.

repo: base-apps/angular-base-apps

license: mit


text:
Publish SNS event on new alert

Pull Request Template

Fixes Issue

Fixes #198
Changes proposed

Screenshots (Optional)
Note to reviewers

Review Error for epociask @ 2024-02-09 22:12:01 UTC
User failed mfa authentication, public email is not set on your github profile. see go/mfa-help

authors: adrain-cb cb-heimdall

repo: base-org/pessimism


text:
[dependency-management-maven-plugin] Probable reason for existence of this plugin is MNG-7906

See https://issues.apache.org/jira/browse/MNG-7906

tbd, I took this plugin from here: https://github.com/HubSpot/dependency-management-maven-plugin and I adopted it primarily because hubspot stopped maintaining it. This plugin exists because it solves a need (and I have many projects where I needed to add deps to the depMgt section to resolve conflicts).
Whether this is the "right way" or not, it is the way that works. I am a pragmatist here.

What would be the "right" behavior that you would expect? This (and a number of other plugins in the basepom) exist because they improve the quality of the dependency tree for a project.

authors: cstamas hgschmie

repo: basepom/maven-plugins


text:
Add Jina Embedding model

Add a Truss for Jina embedding model, intending to add to model library today + publish a blog post on this

@bolasim I was having trouble getting the hf_cache working with the revision, and I want to get this live, so I took hf_cache out entirely when I updated to the latest version.
The model is a quarter of a gig, so the download actually only takes about a second (log line below):
Downloading model.safetensors: 275MB [00:01, 264MB/s]
...
Completed model.load() execution in 8419 ms

The whole model.load() is 8.5 seconds which is not great but not terrible. And the model is running faster now with the new revision, I'm getting 40-45 seconds for my shakespeare dataset.

Whatever you think is best!

authors: bolasim philipkiely-baseten

repo: basetenlabs/truss-examples


text:
Unconventional sunrise and sunset times

I wanted to use sunset after midnight but it didn't work out of the box. Turned out that the small fix to the noon and midnight calculation is enough to fix the problem.
#105

Thank you!

authors: basnijholt vapescherov

repo: basnijholt/adaptive-lighting


text:
Multiline text

Can you alter the layout so that editext ("message_edit_text") can be set as multiline? Writing more than a sentence means the text scrolls from left to right and hides part of it out of view.
I tried altering this myself programatically but it won't work correctly as the LinearLayout it's wrapped in can't have it's height changed to WRAP_CONTENT. It needs given an ID. Or perhaps it should be given another dimension string other than @dimen/icon_normal that we can alter.

@DaveMurchison83
please update 1.6.0

mChatView.setMaxInputLine(5);

Excellent, worked perfectly.

repo: bassaer/ChatMessageView


text:
Theming: add new themeable global variable for retroachievements

Hi @fabricecaruso , I know that there is a variable for compatible systems with retroachievemens ("ifCheevos="true"), but a global themeable variable for retroachievements is missing, something like ifCheevosGlobal¿? would be great for theming.
Thanks a lot for the work

done in #1249
Thanks again for your work


text:
[BUG] Error ocurred while enabling NVIDIA Persistence Daemon

Describe the bug
when trying to change the graphics to nvidia only, an error is shown to enable a service
To Reproduce
Steps to reproduce the behavior:

Run sudo envycontrol -s nvidia
See error

System Information:

Model: Acer aspire 5
Distro: Fedora 39
Kernel: 6.6.9-200
DE/WM and Display Manager (if applicable): Gnome 45 GDM
EnvyControl version: 3.3.1
Nvidia driver version: 545.29.06

Additional context
Add any other context about the problem here. If possible try to reproduce the problem with --verbose flag and attach its output.
Switching to nvidia mode
Enable ForceCompositionPipeline: False
Enable Coolbits: False
Failed to enable unit: Unit file nvidia-persistenced.service does not exist.
ERROR: An error ocurred while enabling service
INFO: Removed file /etc/X11/xorg.conf
INFO: Removed file /etc/modprobe.d/nvidia.conf
INFO: Found Nvidia GPU at 01:00.0
INFO: Found Intel iGPU
INFO: Created file /etc/X11/xorg.conf
# Automatically generated by EnvyControl

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

INFO: Created file /etc/modprobe.d/nvidia.conf
# Automatically generated by EnvyControl

options nvidia-drm modeset=1
options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0

INFO: Found gdm Display Manager
Rebuilding the initramfs...
Successfully rebuilt the initramfs!
Operation completed successfully
Please reboot your computer for changes to take effect!

Hi @pedroborraz, could you send me the output of:
systemctl --all | grep nvidia

Also I need to know how did you installed the Nvidia drivers (eg: akmod-nvidia from rpmfusion)?
Greetings :)

output:
borraz@fedora:~$ systemctl --all | grep nvidia
  nvidia-fallback.service                                                                   loaded    inactive dead      Fallback to nouveau as nvidia did not load
  nvidia-powerd.service                                                                     loaded    inactive dead      nvidia-powerd service

I installed the drivers from the rpmfusion non free repo, from gnome software.
thanks for the quick attention

Looks like the rpmfusion is missing the nvidia-persistenced dependency.
Try installing it with:
sudo dnf install nvidia-persistenced

Let me know if it works ;)

this worked thank you very much, I will close the issue
love u <3

authors: bayasdev pedroborraz

repo: bayasdev/envycontrol


text:
[Feature request] Support .tar.xz release archives

I recently tried to use publish-to-bcr for one of my rulesets, but it failed to publish because the release archive was an unsupported format.

Failed to publish entry for jmillikin/rules_bison@v0.3 to the Bazel Central Registry.
Unsupported release archive format 3.tar.xz

Looking at src/domain/release-archive.ts, it seems that only .tar.gz is currently supported.
Could that code be made more flexible? Bazel supports quite a number of file extensions for tarballs (see download_and_extract docs), including .tar.bz2, .tar.xz, and .tar.zst.

Looking at some candidate NPM packages, this one seems promising: https://github.com/SteveSanderson/xzwasm?tab=readme-ov-file#what-about-tarxz-files

Rough work-in-progress branch of decompressing .tar.xz archives using liblzma (via WebAssembly): https://github.com/bazel-contrib/publish-to-bcr/compare/main...jmillikin:upstream__publish-to-bcr:xz-artifacts?expand=1
Summary:

Local branch of https://github.com/bazel-contrib/toolchains_llvm to support wasm32-unknown-unknown targets.
Local branch of https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/xz to add a config.h (+ other small patches)
Wrote a thin wrapper around @xz//:lzma that exposes a Wasm-friendly API for decoding.
Modified release-archive.ts so it'll decompress .tar.xz files before passing them into tar.extract()
Checked in the compiled xzdec.wasm file because it's ~100 KB and the LLVM dependencies to build it are enormous.

What do the owners of this repository think of that branch? Should I try polishing it up to turn into a PR, or would you prefer a different approach?

I looked into the xzwasm package linked above, and it seems challenging from a maintenance standpoint:

The most recent version was v0.1.2, published three years ago, with no commits since then.
It's not using the standard xz library liblzma, but instead https://github.com/tukaani-project/xz-embedded which appears to be intended for use in the Linux kernel and says on its homepage "There are no release packages and no API/ABI stability guarantees".
It's shipping the WebAssembly module as part of a 20 KB xzwasm.min.js, which makes it difficult to review.
I couldn't find any way to limit the memory consumption of the decompressor, so it's potentially vulnerable to denial-of-service from malicious inputs.

There's a fork of that package at https://www.npmjs.com/package/xz-decompress with a slightly more active maintainer (v0.2.2 was published 4 months ago), but the other difficulties still apply.

Thanks for you work and investigation into this @jmillikin! I haven't used WebAssembly before. Just to confirm my understanding, you brought in Bazel just to get the necessary toolchains to generate the wasm binary? I would like to migrate this repo to use Bazel eventually, but I'm not quite there yet. I suppose we could just vendor the files you generated and leave the additional Bazel stuff in a separate branch in case we ever need to re-generate it?

I'd prefer to not have a separate branch for the build configuration, for technical and legal reasons. How about I put the Bazel configuration under src/infrastructure/xzdec/? Then if the overall build ever migrates to Bazel, the xzdec config can just be moved up to the top level.

I'd prefer to not have a separate branch for the build configuration, for technical and legal reasons. How about I put all of the Bazel configuration into the main branch, but under src/infrastructure/xzdec/? Then if the overall build ever migrates to Bazel, the xzdec config can just be moved up to the top level.

That works. Let's move the bazel module under src/domain/xzdec, then use a write_source_file target to write it to the source tree.

Thanks again for your contribution @jmillikin! Your work has been deployed to prod.

authors: jmillikin kormide

repo: bazel-contrib/publish-to-bcr


text:
Disable the PMD analysis cache

We never set this in the first place, but users would see a
warning that they could improve build times by using it. Since
each test run is hermetic, we can't realistically do that, so
instead we disable the warning.

Given how bazel should be executing this in a sandbox without access to the wider filesystem, the cache it builds would be for the files seen in this one run of the action, and would then be discarded. It would be very surprising if subsequent builds could alter this file (and a gross violation of build hermeticity) Which is a long way of saying that I don't think the cache analysis file is really helpful for us :)

Given how bazel should be executing this in a sandbox without access to the wider filesystem, the cache it builds would be for the files seen in this one run of the action, and would then be discarded. It would be very surprising if subsequent builds could alter this file (and a gross violation of build hermeticity) Which is a long way of saying that I don't think the cache analysis file is really helpful for us :)

It seemed to me like --cache can point to a file that resides inside output-dir instead of a global cache location. we have done something similar in rules_nodejs here: https://github.com/bazelbuild/rules_nodejs/blob/89fbec3801487b522ac36f32a7a6b00ebf069695/packages/typescript/internal/ts_project.bzl#L186
Anyways I am not familiar with how pmd works internally so no gonna make too much noise :)


text:
Return class→file and file→kind from Parser

and change the BFG ↔ Parser protocol.
Class → file is useful for languages that don't have a 1:1 relation between class names and the location they're defined at (e.g., Scala, Kotlin).
file → kind is necessary to make BFG language-agnostic enough to support JVM languages other than Java.

retest this please

@greggdonovan do you have more comments or are we good to go?

LGTM
Should we move JavaSourceFileParser and ReferencedClassesParser into a ./lang/java directory in a separate commit? I can start putting PRs for Scala support into lang/scala.

Yeah, I prefer doing this in a separate PR.

authors: cgrushko greggdonovan


text:
relation with GoogleContainerTools/distroless

I noticed that the deb_packages contains rules of similar functionalities with what's provided in the distroless/package_manager directory:
https://github.com/GoogleContainerTools/distroless/tree/master/package_manager
I'd like to see a convergence between these two efforts, given how much they overlap.
I understand that they are different for different reasons. Just would like to get onto the same page with everyone.

@MarkusTeufelberger @adragomir  Would either of you like to comment on that overlap in downloading packages?
My efforts right now are in the package building side. Specifically I want to get that out of Bazel core and let the community run with this.  Having package consumption rules in the same repo as package building rules might be an aid to development - but that is not a foregone conclusion.
The rules_docker people might have some thoughts on their preferred deb handling.
@nlopezgi

Friendly ping.
I'm still of the opinion that distroless is a better place for an deb package using functionality.
I'm considering taking all of the rules here and deleting them to see what happens. The cool kids should have moved on.
Any thoughts?

The problem with distroless is that they are explicitly not considering security a feature and are just randomly trusting a non-debian mirror server without validating signatures. Their design also doesn't allow this to easily change and the last time I tried to work with them there, they didn't even acknowledge that this could be a problem.
If anything, I'd like to see distroless remove their insecure implementation and start validating hashes and signatures. I'd argue that custom rules for pulling packages are also not at the ideal place for a project that aims to provide docker images with a few select binaries. I wouldn't be opposed to a different repository for package pull rules though, in case this is too confusing for people (rules_pkg_build vs. rules_pkg_pull?).
There is a clear overlap here, since the code stems from an attempt by me to rewrite the distroless rules in a secure way. I'd also like to see convergence, but I don't know how the situation at distroless is these days and if they would be willing to accept patches that improve their security settings. There would be a few easy wins, but in the end they would need quite a bit of redesign to be able to check signatures reliably or define actually which version of which package gets installed from which version of Debian/Ubuntu/Mint/???.
Personally I have to admit though that I kinda gave up on Bazel for now, as features I would have liked to see (bootstrapable builds [a means to compile and use your own TOOLCHAIN so things like in here or distroless where one needs to pull binaries from Google servers even if the repository contains all the code and the build process for these binaries], a collection of BUILD files maaaybe a bit like buckaroo.pm...) still haven't manifested and remote building as well as sandboxing seems still as clunky as ever. Maybe in a few years I'll take another look. If there is something concrete and I get the OK from people here and distroless who actually have commit access I would take another look, for now I just try to stay away from these projects as I just get a bit frustrated everytime I see something like # TODO: Remove when there is a security fix or dpkg_list finds the recent version in the WORKSPACE file of a project that builds the base images for a ton of Kubernetes deployments out there.

Thank you for that informative and frank answer.
FWIW.  I expect to see some users start a community based effort to gather real world requirements for WORKSPACE dependency management. The concerns they already raised were how to verify packages, how to override external deps, how to properly pre-sync a client so you can build without downloads on the fly, how to bless what is installed on the system rather than pull it from the internet, and how to tell what versions of what packages are used in any target.  They are mostly from the rpm and maven camps, but it is easy to see the concerns completely overlap with debian package reuse.
My admission to them was that users are better able to determine the requirements for workspace dependency management than Google. We have a set of source control practices which avoid important real-world use cases, so our needs are different.

Originally the whole rules_pkg repo was actually intended to be a collection for BUILD.bazel files for popular projects (something that Google probably has internally next to their vendored external dependencies) by the way - so kinda building really concrete packages of software/libraries as a drop-in. Maybe similar to https://github.com/nelhage/rules_boost as an example for a single library or crates.io as an example for how this could be presented to end users. That was never really gaining traction though so far since there's no need for this inside Google and outside Google a lot of larger projects seem to either drop Bazel, support a second build system anyways or have their own tooling (like gazelle) around generating BUILD files on the fly instead of relying on a central project.
Also after a while of looking through build scripts of popular projects it starts to really get to you how a computer is even able to build or run anything... shell scripts, autotools, python/perl/someone's-home-cooked-DSL build scripts, generated code, "only builds with X compiler version", missing includes, code only available in a tarball every second full moon when the dev turns on their home router...
Still nice to fantasize about every once in a while to "just" build a full distro in one run from source, but damn - there's a reason that there were probably whole teams at Google working on this for a few years in the past.

@MarkusTeufelberger
Hi Markus,
Thanks for the nice reply. That's really informative.
Just would like to drop my cent(s?) on the lack of security of distroless: My guess is that maybe google maintains its internal mirrors that they trust so lack of securities in distroless is a non-concern to them.
I have been using Bazel since 0.2. My general feeling about the Bazel community is that people are helpful and aggressive in terms of trying out new ideas and making fixes. Also, the way that Bazel workspace rules work is perhaps not optimal. But it is definitely improving. So, please don't feel too frustrated just yet.

I don't see a situation where there's overlap. Instead I see a gap. There's a public need for this functionality, but neither Distroless nor rules_pkg seems to want to offer rules that are consumable by the public. To me it makes more sense that deb repository rules belong with rules_pkg. Additionally, the rules here look to be better suited for general consumption.

More and more I am moving the other way.  I think the entire concept of how
we use packages in a WORKSPACE should be reevaluated. All rules that bring
things in need better coordination (for a variety of provenance and license
compliance issues) and should be combined into a single workspace with many
contributors.  I would have consumers of debian, cmake, configure, and
others all in a single repository adjunct to Bazel. Perhaps rules_workspace.
On Wed, Aug 5, 2020 at 10:35 PM Marius Grigoriu notifications@github.com
wrote:

I don't see a situation where there's overlap. Instead I see a gap.
There's a public need for this functionality, but neither Distroless nor
rules_pkg seems to want to offer rules that are consumable by the public.
To me it makes more sense that deb repository rules belong with rules_pkg.
Additionally, the rules here look to be better suited for general
consumption.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/48#issuecomment-669647704,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHFDK2T7MYVKFPZT35DR7IJGHANCNFSM4H5CDPEQ
.

I can respect that you don't want this project to turn into a junk drawer. Perhaps we should spin off the deb_packages into rules_dpkg.

That would be fine. But it needs owners to step up and create it. The most
likely path to that happening is to create the rules in some other github
org (not bazelbuild) so that it can move at its own speed.
Moving forward, we would like more recommended rule sets to be owned by
others, instead of bazelbuild. We don't have to be the gatekeeper.
On Tue, Aug 11, 2020 at 3:13 AM Marius Grigoriu notifications@github.com
wrote:

I can respect that you don't want this project to turn into a junk drawer.
Perhaps we should spin off the deb_packages into rules_dpkg.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/48#issuecomment-671772270,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHHAD4DZSYVSUESZRVLSADVQVANCNFSM4H5CDPEQ
.

Looks like I'm the one stepping up. I created a new repository with a copy of the deb_packages directory here: https://github.com/mariusgrigoriu/rules_dpkg

authors: MarkusTeufelberger aiuto mariusgrigoriu qzmfranklin


text:
Bump to using min version of 0.14.1

This will be needed for @johnynek ijar build and it. Also should avoid having to comment out lines in the tools/bazelrc

Added https://github.com/bazelbuild/rules_scala/issues/542

Current only failure here looks like a download failure on travis, could someone with the perms re-kick that job ?

I’ll re kick in 10 minutes.
On Tue, 26 Jun 2018 at 20:22 ianoc-stripe notifications@github.com wrote:

Current only failure here looks like a download failure on travis, could
someone with the perms re-kick that job ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/541#issuecomment-400396174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF1jsVI2oHID_oewoDWLM8rv7qWWfks5uAm3qgaJpZM4U4KQc
.

Thank you!

I'd like to hold just a bit on the 0.14 migration because our biggest scala repo is not yet there and I'm trying to get the aspect based thrift generation into production (as part of a big migration on our thrift generation).

I'm going to merge this when it goes green. It is blocking pretty much all the changes we want to make, and 0.13 is pretty old at this point.
Thanks @ianoc-stripe

authors: ianoc-stripe ittaiz johnynek


text:
after import 'monaco-editor-vue3', quasar hmr doesn't work

After a few days of struggle, I finally found out why hmr doesn't work properly in quasar. When I comment the line below everything works!
import MonacoEditor from "monaco-editor-vue3";

my quasar version is:
 » Dev mode............... spa
 » Pkg quasar............. v2.16.6
 » Pkg @quasar/app-vite... v2.0.0-beta.15

also meet the similar problem，i use vite and vue3，the hmr doesn't work


text:
Fix created directories permissions

During a build, the created directories (build, shared source, ...)
were created using 0644 permissions instead of 0755.
What's really weird is that it used to work in VirtualBox VMs, but
fails (which is to be expected) in VMWare VMs.

:+1:

authors: jawher julienvey

repo: bazooka-ci/bazooka


text:
Fix broken syntax on meta dir main file.

There was a line breaking the syntax of meta/main.yaml.
Thanks for the role!

Replaced by PR with your commits cherry-picked
https://github.com/bbaassssiiee/artifactory/pull/20

authors: MiguelGL bbaassssiiee

repo: bbaassssiiee/artifactory


text:
Crash on Class method else without rescue

Just testing some stuff and this crashes the latest Rubocop:
class ElseWithoutRescue
  def m
  end
  else
end

Stacktrace:
undefined method `begin_pos' for nil:NilClass
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/source/range.rb:182:in `join'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/builders/default.rb:1191:in `join_exprs'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/builders/default.rb:1273:in `collection_map'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/builders/default.rb:1026:in `begin_body'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/ruby21.rb:3366:in `_reduce_9'
.../ruby-2.1.10/lib/ruby/2.1.0/racc/parser.rb:258:in `_racc_do_parse_c'
.../ruby-2.1.10/lib/ruby/2.1.0/racc/parser.rb:258:in `do_parse'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/base.rb:162:in `parse'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/parser-2.4.0.0/lib/parser/base.rb:209:in `tokenize'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/rubocop-0.48.1/lib/rubocop/processed_source.rb:99:in `tokenize'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/rubocop-0.48.1/lib/rubocop/processed_source.rb:94:in `parse'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/rubocop-0.48.1/lib/rubocop/processed_source.rb:36:in `initialize'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/rubocop-0.48.1/lib/rubocop/processed_source.rb:17:in `new'
.../ruby-2.1.10/lib/ruby/gems/2.1.0/gems/rubocop-0.48.1/lib/rubocop/processed_source.rb:17:in `from_file'

Version

Ruby
ruby 2.1.10p492

Rubocop
0.48.1 (and master 4430501)

Possibly relevant cop: https://github.com/bbatsov/rubocop/blob/master/lib/rubocop/cop/lint/useless_else_without_rescue.rb

This is a problem with Parser, so you probably need to open this issue over there. 🙂

Dang, you are right, and I just found a duplicate (I swear I searched first :disappointed:).
#4344
Closed.

authors: Drenmi guilhermesimoes

repo: bbatsov/rubocop


text:
Add a check for stabby lambda parameters parentheses.

Adds in a cop to catch cases like ->x,y,z { z + x + y } and correct them to ->(x,y,z) { z + x + y }. It can also be configured to perform the reverse, catch ->(x,y,z) { z + x + y } and correct to  ->x,y,z { z + x + y }.  Resolves issue #2036.

Rebased and updated.

You should also squash the two commits together, drop the . from the commit message's title and prefix the message with [Fix #2036] (as noted in CONTRIBUTING.md).

Squashed and updated.

:+1: Thanks!

authors: bbatsov hmadison


text:
add LOADED_FEATURES to cache

Fixes #2886
Before submitting a PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it)
[x] Squashed related commits together.
[ ] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests are passing.
[x] The new code doesn't generate RuboCop offenses.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.

I think the commit message is a bit unclear right now (the changelog entry seems better formulated). Don't remember to capitalize the first word in the commit message.

@bbatsov updated

authors: bbatsov ptarjan


text:
Gem is not published on RubyGems.org

lava-frame_compare gem does not appear to have published on RubyGems yet.
mc-s083400:avqm ambupa01$ gem install lava-frame_compare
ERROR:  Could not find a valid gem 'lava-frame_compare' (>= 0) in any repository ERROR:  Possible alternatives: secure_compare, securecompare, vagrant-compose, web_image_compare

Done

authors: aambupe davidbuckhurst


text:
story 2: admin configures responsibilities and locations for the project

persistency layer blueprint (as of #6):

[ ] tables exist
[ ] roles ADMIN and OFFICE can configure a project (locations, sections and responsibilities)

EP-2, EP-3 and EP-4.

repo: bbortt/event-planner


text:
Often long BouncyCastleFipsProvider lock in getDefaultSecureRandom()

The context is a Java 8 JVM where both the BCFIPS and BCJSSE providers are registered (and SunJSSE is not), not in approved-only mode and FIPS mode respectively, using bc-fips-1.0.2.3.jar and bctls-fips-1.0.14.1.jar.
In deployments with a lot of traffic, we see quite some wait time for the registered BouncyCastleFipsProvider's lock.  And a large part of these occur while decrypting TLS packets, in RecordStream.decodeAndVerify() -> TlsAEADCipher.decodeCipherText() -> JceAEADCipherImpl.init().
And the ones that seem most time-consuming, are those that go from JceAEADCipherImpl.init() to BouncyCastleFipsProvider.getDefaultSecureRandom(), for example in the following stack trace:
	at java.lang.Throwable.fillInStackTrace(Native Method)
	at java.lang.Throwable.fillInStackTrace(Throwable.java:784)
	-  locked java.lang.IllegalStateException@67772e0c
	at java.lang.Throwable.<init>(Throwable.java:266)
	at java.lang.Exception.<init>(Exception.java:66)
	at java.lang.RuntimeException.<init>(RuntimeException.java:62)
	at java.lang.IllegalStateException.<init>(IllegalStateException.java:55)
	at org.bouncycastle.crypto.CryptoServicesRegistrar.getSecureRandom(Unknown Source)
	at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.getDefaultSecureRandom(Unknown Source)
	at org.bouncycastle.jcajce.provider.BaseCipher.engineInit(Unknown Source)
	at org.bouncycastle.jcajce.provider.BaseCipher.engineInit(Unknown Source)
	at javax.crypto.Cipher.init(Cipher.java:1540)
	at org.bouncycastle.tls.crypto.impl.jcajce.JceAEADCipherImpl.init(JceAEADCipherImpl.java:108)
	at org.bouncycastle.tls.crypto.impl.TlsAEADCipher.decodeCiphertext(TlsAEADCipher.java:299)
	at org.bouncycastle.tls.RecordStream.decodeAndVerify(RecordStream.java:253)
	at org.bouncycastle.tls.RecordStream.readFullRecord(RecordStream.java:204)
	at org.bouncycastle.tls.TlsProtocol.safeReadFullRecord(TlsProtocol.java:922)
	at org.bouncycastle.tls.TlsProtocol.offerInput(TlsProtocol.java:1364)
	at org.bouncycastle.jsse.provider.ProvSSLEngine.unwrap(ProvSSLEngine.java:481)
	-  locked org.bouncycastle.jsse.provider.ProvSSLEngine_8@52d8950d
	at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626)
[...snipped some of our own code...]
	at java.lang.Thread.run(Thread.java:750)

So from the bctls-fips-1.0.14.1.jar and bc-fips-1.0.2.3.jar source code, what seems to happen, is that for every decrypted packet Cipher.init() is called; that always calls BouncyCastleFipsProvider.getDefaultSecureRandom(); that always calls CryptoServicesRegistrar.getSecureRandom(); that by default always throws an IllegalStateException; and inside catch (IllegalStateException e) the caller BouncyCastleFipsProvider.getDefaultSecureRandom() then always creates its own SecureRandom, keeping the lock all the time:
        try
        {
            defRandom = CryptoServicesRegistrar.getSecureRandom();
        }
        catch (IllegalStateException e)
        {
            // See SP 800-90A R1 8.6.7 for setting of Nonce - at least 1/2 security strength bits
            synchronized (this)
            {
                if (providerDefaultRandom == null)
                {
                    SecureRandom sourceOfEntropy = getDefaultEntropySource();

                    // we set providerDefault here as we end up recursing due to personalization string
                    providerDefaultRandom = providerDefaultRandomBuilder
                        .fromEntropySource(sourceOfEntropy, true)
                        .setPersonalizationString(generatePersonalizationString())
                        .build(sourceOfEntropy.generateSeed((providerDefaultSecurityStrength / (2 * 8)) + 1), true, Strings.toByteArray("Bouncy Castle FIPS Provider"));
                }

                defRandom = providerDefaultRandom;
            }
        }

Is this expected behavior?  Or are we expected to call CryptoServicesRegistrar.setSecureRandom() to avoid all this exception-throwing and SecureRandom-creating?
We could find no documentation about that last method.

Note that we tried to set a default SecureRandom in CryptoServicesRegistrar, namely SecureRandom.getInstance("DEFAULT", "BCFIPS"), and that reduced the lock time by a lot, but then things started to fail in BCFIPS approved-only mode threads, with FipsUnapprovedOperationError: FIPS SecureRandom security strength not as high as required for operation: RSA.

Something does not sound right... the setting of providerDefaultRandom should only occur once for a provider so the behavior described makes it sound like multiple providers are being created.
How is the BCJSSE configured?
I'm not entirely sure what's going on with the use of setSecureRandom either, but I thought I should cross the BCJSSE off the list first.

"How is the BCJSSE configured?" Could you clarify?
We do set a few properties for BCJSSE and BCFIPS (will comment with details tomorrow) but nothing around SecureRandom.  (And we tell the JDK via java.security to use urandom and ...NonBlocking..., to prevent entropy issues on our Linux VMs.)

For FIPS you would usually configure it as fips:BCFIPS in java.security - in this case it would be in FIPS mode and using the BCFIPS provider. See section 2.1.1 of https://downloads.bouncycastle.org/fips-java/BC-FJA-(D)TLSUserGuide-1.0.15.pdf (this would apply to 14.1 as well).
One thing urandom and NonBlocking is not FIPS compliant, there's no point in using FIPS mode if you're using these - the application is not FIPS compliant the moment it boots up. It's possible to configure a DRBG chain in the FIPS provider as described with the HYBRID mode in section 2.3 https://downloads.bouncycastle.org/fips-java/BC-FJA-UserGuide-1.0.2.pdf
I'd also recommend looking at rng-tools or haveged to assist with this as well (HYBRID's fine once you're up and running, but a lack of entropy can cause a pause at boot time as well).

No randomness is needed for this operation, so it's at least an issue that the provider thinks it should initialize one at all. Presumably the one-time creation of providerDefaultRandom is not a main contributor, although it would preferably use the static singleton pattern instead of synchronization if possible. Finally the exception-as-return-value should be replaced with something like a tryGetSecureRandom.
However all those things require FIPS provider updates which is a slow turnaround.
https://github.com/bcgit/bc-java/commit/88101267d74d7b63cd92ffdab86c2fbba81792f6 started passing null as the random (instead of a JCE default - and therefore non-FIPS - SecureRandom). That would explain why this has only recently surfaced.
Since BCJSSE has a SecureRandom already available anyway I have changed the code to pass that instead of null. This should at least work around the issue until we get a chance to update the provider.
Just a note in case the original report is misdiagnosed in some way, there was a nearby performance issue addressed by https://github.com/bcgit/bc-java/commit/b25b441db071fd618a351446a4b9d6570dc05906 - that fix would not be present in 1.0.14.1 .

Something does not sound right... the setting of providerDefaultRandom should only occur once for a provider so the behavior described makes it sound like multiple providers are being created.

We are pretty sure we are creating only one BouncyCastleFipsProvider instance.
Also, I see no evidence (in the bc-fips-1.0.2.3.jar and bctls-fips-1.0.14.1.jar source code) that org.bouncycastle.crypto.CryptoServicesRegistrar.defaultSecureRandom is ever updated, because I see no calls to CryptoServicesRegistrar.setSecureRandom().  So (as long as we don't do anything explicit), CryptoServicesRegistrar.getSecureRandom() will always return null?
In other words, I see no evidence for your "should only occur once"?

How is the BCJSSE configured?
I'm not entirely sure what's going on with the use of setSecureRandom either, but I thought I should cross the BCJSSE off the list first.

For FIPS you would usually configure it as fips:BCFIPS in java.security - in this case it would be in FIPS mode and using the BCFIPS provider. See section 2.1.1 of https://downloads.bouncycastle.org/fips-java/BC-FJA-(D)TLSUserGuide-1.0.15.pdf (this would apply to 14.1 as well). Note: this isn't quite the same as having the module in FIPS mode - it just restricts the JSSE to what is acceptable in SP 800-52.

We have the same code base running BCJSSE from bctls-fips.jar in both in FIPS mode (so 'SP 800-52 mode' as you say, so with fips:BCFIPS, which we're aware is different from running as a FIPS validated module), and elsewhere in its default non-FIPS mode.  This reported issue we encountered in non-FIPS mode (and I don't think we tested it in non-FIPS mode).
Except for that, we run BCJSSE with only

Security property ssl.KeyManagerFactory.algorithm=PKIX
System property org.bouncycastle.jsse.client.assumeOriginalHostName=true

The original comment said you were seeing "that always calls CryptoServicesRegistrar.getSecureRandom(); that by default always throws an IllegalStateException; and inside catch (IllegalStateException e) the caller BouncyCastleFipsProvider.getDefaultSecureRandom() then always creates its own SecureRandom, keeping the lock all the time:"
I gather I wasn't clear about what I said. The providerDefaultRandom variable is a local field in the provider class. Ordinarily you'd expect this to be set once unless multiple threads were making multiple copies of the provider's non-volatile memory at the same time and consistently creating new SecureRandoms, I'm not saying this is impossible, but I can't say we've seen it before - the setting of the variable is being done under synchronized so by rights should actually be done on the "master copy" of the object. The biggest penalty you should be paying is the exception, again if your application results in a lot of calls to getDefaultSecureRandom() - the exception would show up a lot in thread dumps, similar to what is provided in your example but which is not code within the synchronized block as the exception is still being constructed and is not yet caught.
Since you don't have to worry about FIPS compliance, it might be worth trying 1.0.2.4 which avoids the exception throwing, and see how your experience is with that. The only caveat I would add on that is that if you have access to the support program you should use the version available through that, although for these purposes the non-cert version on the BC website is probably close enough to the submitted version.

Ah, OK, thanks!  I should have seen that BouncyCastleFipsProvider.providerDefaultRandom is only initialized once, so indeed my statement "inside catch (IllegalStateException e) the caller BouncyCastleFipsProvider.getDefaultSecureRandom() then always creates its own SecureRandom"` was incorrect: That SecureRandom is created only once.
Thanks for letting us know bc-fips-1.0.2.4.jar avoids / will avoid the IllegalStateException throwing.
So the biggest issue with the current code might be that exception throwing.
Or it may be that no if (providerDefaultRandom == null) check is done before entering synchronized (this)?  It seems that doing if-synchronized-if would avoid a lot of locks here, even though they would be short-lived.
Or whatever solution you think best, of course, like @peterdettman wrote, "it would preferably use the static singleton pattern instead of synchronization if possible."
And @peterdettman thanks for letting us know that a new version of BCJSSE will avoid the call to org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.getDefaultSecureRandom() altogether:

Since BCJSSE has a SecureRandom already available anyway, so I have changed the code to pass that instead of null. This should at least work around the issue until we get a chance to update the provider.

Either of those fixes should solve this issue for us.

@marnix bctls-fips-1.0.17.jar was just published to the bc-fips-java git repo. It contains the SecureRandom workaround amongst other fixes and features.

Appears completed.

authors: dghgit marnix peterdettman

repo: bcgit/bc-java


text:
Fix vulnerabilities found by Dependabot

We have enabled Dependabot for our project. "Dependabot helps users ... find and fix vulnerabilities in their dependencies".
Currently few Moderate vulnerabilities were identified:

We should update dependencies.

Fixed: https://github.com/bcgov/CONN-CCBC-portal/pull/1294

repo: bcgov/CONN-CCBC-portal


text:
Add First Nations column to Work list in Partners Insight

https://app.zenhub.com/workspaces/epictrack-63891ea941d309001fa292cf/issues/gh/bcgov/epic.track/1953
Details:

Lazy indigenous works in Work
Optionally include indigenous works in Work response schema
refactor insights api for tags
Add First Nations filter
Fix Other Ministry Filter

Codecov Report
Attention: Patch coverage is 92.85714% with 1 lines in your changes are missing coverage. Please review.

:exclamation: No coverage uploaded for pull request base (develop@14acd7e). Click here to learn what that means.

Files
Patch %
Lines

...rack-api/src/api/schemas/response/work_response.py
88.88%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #2015   +/-   ##
==========================================
  Coverage           ?   76.18%
==========================================
  Files              ?      283
  Lines              ?     9264
  Branches           ?        0
==========================================
  Hits               ?     7058
  Misses             ?     2206
  Partials           ?        0

Flag
Coverage Δ

epictrack-api
76.18% <92.85%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

authors: codecov-commenter jadmsaadaot


text:
#1737 - Update institution location content

OLD ONE - New one #1839
Updates

Updated content on location form and summary
Added banner on location edit
Aligned tooltips styles

Additional

Noticed there was unknown changes in the last commit (assessment.ts stuff?) wasn't showing in VisualStudios but showed up in GitHub

Screenshots
Location add/edit

Location summary

Tooltips
Forms.io tooltips

Forms.io tooltips - custom (within content like NOA)

Vuetify tooltips

OLD ONE - New PR https://github.com/bcgov/SIMS/pull/1839

repo: bcgov/SIMS


text:
UI - platform web bug fixes

Issue:

bcgov/entity/issues/

Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the namex license (Apache 2.0).

Temporary Url for review: https://strr-platform-dev--pr-197-8p9q6zrj.web.app

Nice!

Temporary Url for review: https://strr-platform-dev--pr-197-8p9q6zrj.web.app

repo: bcgov/STRR


text:
Strr base layer updates

Issue:

bcgov/entity/issues/

Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the namex license (Apache 2.0).

Temporary Url for review: https://strr-platform-dev--pr-263-qokowyf5.web.app

Temporary Url for review: https://strr-platform-dev--pr-263-qokowyf5.web.app

NOTE: this has the ldarkly redirect issue because it is pulling the dependency from the checked in repo code. I have verified that the new code inside this PR fixes that issue. Still not sure why the PR build is not picking up the env vars for ldarkly and address complete

/gcbrun

Temporary Url for review: https://strr-platform-dev--pr-263-qokowyf5.web.app


text:
18027- update AGM location change filing types and codes

Issue #: /bcgov/entity#18027
Description of changes:

update AGM location change key in enums (filing-types.ts, filing-names.ts, filing-codes.ts)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the business-filings-ui license (Apache 2.0).

Don't merge until CI checks succeed.

authors: ketaki-deodhar severinbeauvais

repo: bcgov/bcrs-shared-components


text:
Utopia 847 - Next Steps

Description
This PR includes the following proposed change(s):

{List all the changes, if possible add the jira ticket #}

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Refactoring / Documentation
[ ] Version change

How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Development Dependency Working Agreement

[x] My code DOES NOT include the importing of new dependencies into the DPIA ecosystem
[ ] My code DOES include the importing of new dependencies into the DPIA ecosystem
If new dependencies are being introduced to the DPIA ecosystem:
[ ] The functionality of the dependency drastically reduces code complexity and makes my changes more easily maintainable and readible
[ ] The dependency being introduced does not contain multiple layers of nested dependencies introducing maintainability complexity to the DPIA ecosystem

Frontend Development Changes

[ ] N/A
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to project documentation or diagrams that reflect my changes
[ ] New and existing unit tests pass locally with my changes
[ ] My code follows Airbnb React Style Guidelines

API Development Changes

[ ] N/A
[ ] I have performed a self-review of my own code
[ ] My code follows standards and practices outlined in the BC Government API Development Guidelines
[ ] New and existing unit tests pass locally with my changes
[ ] My changes includes Swagger documentation updates that reflect the changes I am introducing

Definition of Done

Local Testing results:

Submit button - is changing status to MPO Review
Submitting leads straight to the first tab or view page based on PI [No Next Steps page is shown] [--useEffect not working as we expected] - I will look into this piece.

authors: antsand kushal-arora-fw

repo: bcgov/cirmo-dpia


text:
Deliver Azure services list to Exec

Describe the issue
Exec needs a list equivalent list of Azure services that AWS SEA uses.
We need to proceed in parallel because getting access to GOc SEA is taking a while. We need to login to Azure and see what's the setup there.
Which Sprint Goal is this issue related to?

Note: 'Milestone' is a ZenHub term that we use synonymously with 'Sprint'.

The 'Milestone' description (created in ZenHub) should clearly list Sprint Goals. This section should indicate which 'goal' this issue is related to.
Additional context
Add any other context, attachments or screenshots
Definition of done

Deliver services list to Exec asap
To be done in close cooperation with PO
Read and understand the 200 pg design document
Login to Azure
Create any diagrams that highlight where our multi-cloud design might collide

@ActionAnalytics  this might be useful - it includes tables mapping Azure to corresponding AWS services. https://docs.microsoft.com/en-us/azure/architecture/aws-professional/services

authors: sheaphillips sid-gov

repo: bcgov/cloud-pathfinder


text:
Automate Changelog Generation

We discussed in button-inc/digital_marketplace#14 but haven't implemented yet in our first branching model agreements button-inc/digital_marketplace#18, the opportunity to adopt and enforce Conventional Commits. Might we consider enforcing that with a Gitlint guardrail (sample config) in a pre-commit hook (sample config)? This would unblock the option of using standard-version to automate the release process in a manner compliant with SemVer. If this adds value to our process, we'd likely want a releasing team agreement (sample agreement) to be part of this issue.

We're using conventional commits now, so:
As a developer
I want to automate changelog generation
so that I don't have to do it manually.
Tasks:

[ ] automate changelog generation in a manner compliant with SemVer

addressed in https://github.com/bcgov/digital_marketplace/pull/288/

authors: BCerki bdolor wenzowski


text:
Add a search bar component for the engagement table

Issue #69
Description of changes:

Search bar component on top of engagement table
engagement filtered by name

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the sbc-auth license (Apache 2.0).

Good point, I will add a no results found
On Tue., May 31, 2022, 11:19 a.m. Tiago Graf, @.***>
wrote:

@.**** approved this pull request.
We might need a “no records found” message but the current changes are good
—
Reply to this email directly, view it on GitHub
https://github.com/bcgov/met-public/pull/169#pullrequestreview-990932373,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AV5IDHVJC3A44FEJI5ITGZDVMZJ33ANCNFSM5XOKX5FQ
.
You are receiving this because you were assigned.Message ID:
@.***>

repo: bcgov/met-public


text:
back end changes for discrepancies in created date/updated date

Issue #:
https://github.com/bcgov/met-public/issues/882
Description of changes:
Fixes for discrepancies in created date/updated date.

Changes made such that all the created date/updated dates are saved as UTC datetime in backend
Changed the check for publishing an engagement to be based on UTC datetime

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

Codecov Report

Merging #897 (66aa89b) into main (a5a0da0) will increase coverage by 0.49%.
The diff coverage is 37.50%.

@@            Coverage Diff             @@
##             main     #897      +/-   ##
==========================================
+ Coverage   72.39%   72.88%   +0.49%
==========================================
  Files         175      175
  Lines        4647     4702      +55
  Branches      295      295
==========================================
+ Hits         3364     3427      +63
+ Misses       1244     1236       -8
  Partials       39       39

Flag
Coverage Δ

metapi
79.42% <37.50%> (+0.76%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

met-api/src/met_api/models/contact.py
72.09% <0.00%> (-1.72%)
:arrow_down:

met-api/src/met_api/models/email_verification.py
94.87% <ø> (ø)

met-api/src/met_api/models/submission.py
64.93% <ø> (ø)

met-api/src/met_api/models/survey.py
73.49% <ø> (ø)

met-api/src/met_api/models/user.py
100.00% <ø> (ø)

met-api/src/met_api/utils/datetime.py
72.72% <25.00%> (-27.28%)
:arrow_down:

met-api/src/met_api/models/engagement.py
66.94% <66.66%> (+0.28%)
:arrow_up:

met-api/src/met_api/schemas/widget.py
100.00% <0.00%> (ø)

met-api/src/met_api/constants/widget.py
100.00% <0.00%> (ø)

met-api/src/met_api/models/widget.py
85.10% <0.00%> (+4.15%)
:arrow_up:

... and 3 more

authors: VineetBala-AOT codecov-commenter


text:
fix: fixed the type-family.scss

so it uses relative path to refer to font-family instead of absolute.

um... we used to get a "Not found" error for the font family because of the relative path, so I changed it to the absolute path. But maybe the relative path works now
refers to this issue: https://github.com/bcgov/nr-fsa-theme/issues/34

repo: bcgov/nr-fsa-theme


text:
Test nr-quickstart-typescript outside bcgov

Testing nr-quickstart-typescript on personal/outside repository.  This should be able to run from unexpected scenarios.
Two bugs caught so far for capitals in repo/org names.  Both Docker and oc seem to choke on them.

Success!  Readme could still use polish, but that's always the case.

repo: bcgov/nr-quickstart-typescript


text:
Add sorting to range use plan list

Reimplements the range use plan table using material-ui.
Very little styling has been done so far to make this table look the same as the old one.
Old table:

New table:

Relies on https://github.com/bcgov/range-api/pull/143
Relates to #562

Why status isn't sortable yet:  @LisaMoore1 the challenge presented by sorting on Status is that its figured out client side and is dependant on who is viewing the queue (because of our role-based status set up).  I think @calebissharp if we are continuing to roll with that we should do what we talked about this morning and make the table have the smarts to make the sort work alphabetically for both RO and AH.  The alternative is we all switch to using one status which simplifies things, although we'd have some unraveling to do there as well.
Otherwise looks good so far buddy.  It's not styled exactly like the original but we'll let @LisaMoore1 pick what is most important to improve upon first other than sorting on status (unless she thinks otherwise).

@LisaMoore1 I've added another "status code" column, which can be sorted alphabetically, as a solution for now.
This is what it looks like:

How's this looking @micheal-w-wells?

I think if we can sort by RAN, Agreement Holder and some sort of course on status that solves our main sorting need. Someday filtering on status would be idea.

Looks good to me @calebissharp : )

`/home/runner/work/range-web/range-web/node_modules/liftoff/lib/file_search.js:10
path = findup(search, {cwd: paths[i], nocase: true});
^
TypeError: findup is not a function`. Other than this : P

@micheal-w-wells Finally figured out how to get the action to successfully complete. Going to merge this now.

authors: LisaMoore1 calebissharp micheal-w-wells

repo: bcgov/range-web


text:
🛑 namex-api is down

In a6824d7, namex-api (https://namex.apps.silver.devops.gov.bc.ca/api/v1/nr-ops/healthz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: namex-api is back up in f26c0f0.

repo: bcgov/upptime


text:
feat: use build-and-tag-action for creating dist

this will now use build-and-tag-action to push the v1 tag, and to create the dist/ folder.

@JasonEtco:

are the .hbs files part of the bundled action?

Yes the .hbs files are part of the conventional commit library, and used for the template of the CHANGELOG and GitHub release.
I'm wondering if I could just keep these checked in, since they're likely to change less often.

repo: bcoe/release-please-action


text:
How can I pass a custom User Agent string through this crawler?

How can I pass a custom User Agent string through this crawler? I know it's using request under the hood, but just curious what the proper way to do this is?

new crawler({
    userAgent: 'your user agent string'
});

new crawler({
    userAgent: 'your user agent string'
});

repo: bda-research/node-crawler


text:
🛑 Jenkins is down

In e2df6d8, Jenkins ($SECRET_SITE_1) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Jenkins is back up in 5b4c911.

repo: bdlangton/uptime


text:
FR: Dialog: Actions & Keybindings

I think the dialogues can be improved a bit.
After working with other frameworks and component palettes I think we could have the following improvements.

Actions: Instead of having a wide-open "List <Widget>? actions" we could have some specific class like DialogAction that allows having a title, maybe an (optional) icon, an onTap / onClick callback and more importantly, attributes like isDefaultAction or isDestructiveAction. The presentation would be as is usually done now with Button elements but we would already have semantics and the ability to work better with the UI (the default action is highlighted in color, the destructive action is red, RTL support ...)

Related to the above, I miss some key combinations:

Esc to close the active dialog
Enter to "execute the isDefaultAction=true action callback"
Tab to rotate the focus between the available actions, always starting with the default action

What do you think?

Esc should already pop modal routes in flutter (showDialog, for example). I don't know why it sometimes doesn't work
Enter should execute the focused button when pressed but, for some reason, the buttons aren't getting focus when the dialog shows up. Same for Tab
I don't like the idea of DialogAction, since in flutter anything can be a widget. Maybe the dev wants custom buttons and it wouldn't be possible with it

But, in Windows, normal buttons are used as actions

But, in Windows, normal buttons are used as actions

I agree. I don't want to have something different in terms of UI and end-user visible results. As I said, we could implement the UI of DialogActions using plain Button elements but with some superpowers, like Cupertino Widgets does.
My proposal simply wants to improve the developer experience.

Keybindings
About ESC to close the dialog, see https://github.com/flutter/flutter/issues/97581. Native behavior is to not allow user to tap ouside, that's why barrierDismissible is false, but Flutter also isn't allowing us to close the dialog pressing ESC. For a current workaround, set barrierDismissible: true
I tested with the latest stable (2.8.1) and pressing Tab to navigate through the actions works, as well as pressing Enter to execute their action. For default action, you can use autofocus on a button

@bdlukaa On Esc this could be not obvious but, after thinking on it this behavior probably makes sense.
And the use of autofocus could make the trick.
So, with current widgets we could be able to replicate most of my requirements in this FR. Nevertheless it could be interesting consider the implementation of a specialized DialogAction widget.

Hello! Now, on the latest master, is possible to close the dialog opened by showDialog pressing Esc. I used CallbackShortcuts + FocusScope to detect the key events. This is a workaround while https://github.com/flutter/flutter/issues/97581 isn't fixed on the framework!

Hello! Now the dialog can be closed with Esc properly.
Also, for the buttons, I think we can stay with the current buttons. FilledButton for primary button and Button for other actions!


text:
Chatbot integration functioning

Works with username and starring repo.
No styles yet.

authors: MishManners bdougie

repo: bdougie/git-twitch


text:
Add setting to always restore previouslly opened tabs.

This pull request adds the "General" settings page that includes an "On Startup" option that lets users choose what pages to display on startup. You can either choose to open up a blank page (the default) or you can open up your previously opened tabs and windows. This is an extension of the work done in #840. This should resolve issue #737. This PR adds a new custom_start_page setting to make it work.
@taravancil I'm guessing you might have an opinion on the page name and placement of this setting. I just went with a "General" page because that's where I saw this setting located in other browsers, but if you want it moved let me know.
(p.s. It seems the Settings page navigation is hidden at the moment on the 0.8 branch. Something to do with the absolute positioning?)

Great! We've got some layout work happening in 0.8 right now which is why the nav is screwy. We'll review your PR once the layouts are fixed again!

@pfrazee Sounds Good! If you don't have too much extra design work going into it, I could also take a look at fixing the sidebar tomorrow. CSS is my main language after all.

Appreciate that! But we'll get it. It's a side-effect of some work that Tara's doing.

@pfrazee Saw that @taravancil pushed some settings page changes and updated this pr on top of them.

Thanks for that! The 0.8 branch is in constant flux so don't sweat too much keeping things up-to-date.

@taravancil 👌🏼 Np, just let me know when y'all are interested in looking at the change.

Solid! Merged and tested, works great. Thanks @webdesserts

@pfrazee Great! Thanks for the merge.

authors: pfrazee taravancil webdesserts

repo: beakerbrowser/beaker


text:
🛑 Photo Prism is down

In 69b9a25, Photo Prism ($MAOW_VERY_SECRET_SITE_3) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Photo Prism is back up in dbc9f91 after 6 minutes.


text:
BVAL-682 Clarifying semantics of getTypeArgumentIndex() in edge case …

…of extractor for non-generic container appending a node

Merged, thanks!

authors: gsmet gunnarmorling

repo: beanvalidation/beanvalidation-spec


text:
Previous Event Model

Hi, thanks for writing this extension. I'm having trouble obtaining a previous event model. I want to obtain a previous event model during one of the following events.. I've tried using $event->sender->read(), but this is all Private Data constructs.. Is there an easier way to do this than writing the data to a file like in your example for the registration? I realize I can add the model to my own session variable during the registerWizardStep function, but I don't see the need to increase the session storage.. Is there an easier way?

Hi,
The step data is stored in the session as Array Objects - this is due to the way the Yii2 Session component works (see Sessions and Cookies in the Yii2 Guide, each step has an array of Array Objects to allow repetition of steps. So the resulting data layout in the session is
$session[StepDataKey][StepName][]

where the arrays are actually Array Objects; I wonder if your IDE is displaying the Array Objects as being private data constructs.
To access all step data within an event you can do
$stepData = $event->sender->read();

this returns the content of $session[StepDataKey]. Using the registration example, after the address step you will see something like:
$stepData = [
    'profile' => [
        0 => [
            'given_name' => 'John',
            'family_name' => 'Smith',
            'date_of_birth' => '1997-05-23',
            // _other private properties here
         ]
    ],
    [
        0 => [
            'street_address' => 'Stevenage Rd',
            'locality' => 'Fulham',
            'region' => 'London',
            'postal_code' => 'SW6 6HH',
            // _other private properties here
         ]
    ]
]

The arrays shown above are actually Array Objects, but they can be used in exactly the same way as ordinary arrays. So to access the a property of a model you do
$streetAddress = $stepData['address'][0]['street_address'];

If you only want data for a specific step you can do
$stepData = $event->sender->read('address');

Hope that helps.

@beastbytes create a wiki with this information.

Hi,
The read() method should do what you need; you can read back either all the
steps or give the name of a step to read e.g.
$event->sender->read('thisStep')
Steps are stored as PHP ArrayObjects; this allows steps to be repeated as
needed. This is the case even if a step is only used once, so you will need
to iterate over the object to get the model(s) stored in it.  (see
http://www.yiiframework.com/doc-2.0/guide-runtime-sessions-cookies.html for
why ArrayObject is used).
Hope that helps.
On Sat, Sep 5, 2015 at 8:32 PM, zmoddynamics notifications@github.com
wrote:

Hi, thanks for writing this extension. I'm having trouble obtaining a
previous event model. I want to obtain a previous event model during one of
the following events.. I've tried using $event->sender->read(), but this is
all Private Data constructs.. Is there an easier way to do this than
writing the data to a file like in your example for the registration? I
realize I can add the model to my own session variable during the
registerWizardStep function, but I don't see the need to increase the
session storage.. Is there an easier way?
—
Reply to this email directly or view it on GitHub
https://github.com/beastbytes/yii2-wizard/issues/2.

authors: beastbytes newerton zmoddynamics


text:
Re-enable python generated tests

(edited)
Thanks @havardAasen for #2156 fixing the python js tests.  I've re-enabled them in #2158 .  CSS tests remain broken.
Due to missing __init__.py files the generated test for the python css  beautifier have not been running for some time.
Add the following __init__.py file:

python/cssbeautifier/tests/generated/__init__.py

Once the needed __init__.py file is added I get test failures.  Need to fix the failures as well.

Hey @bitwiseman , I would love to work on this issue.
Can you please guide me what code should I add into __init__.py file.
Need you cooperation as I'm a beginner to Open Source contributions. :)
Thanks

That was fixed.  Sorry. Try another PR!

repo: beautify-web/js-beautify