我正在查看我的Java应用程序的线程转储,并注意到有时不是显示"已锁定",我看到关键字"已消除",如下所示:
"Worker [4]" prio=10 tid=0x00007fb1262d8800 nid=0x89a0 in Object.wait() [0x00007fb15b147000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at com.myapp.common.util.WaitableQueue.getAll(WaitableQueue.java:152)
- eliminated <0x00000004d0d28e18> (a com.myapp.common.util.balq.SingleQueueQController$_WorkerQueue)
at com.myapp.common.util.balq.SingleQueueQController$_WorkerQueue.getAll(SingleQueueQController.java:3527)
- locked <0x00000004d0d28e18> (a com.myapp.common.util.balq.SingleQueueQController$_WorkerQueue)
at com.myapp.common.util.AbstractWorker.read(AbstractWorker.java:678)
at com.myapp.common.util.AbstractWorker.runBulk(AbstractWorker.java:541)
at com.myapp.common.util.AbstractWorker.run(AbstractWorker.java:343)
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,我在Google上找不到任何关于此的内容."锁定"和"已删除"关键字之间有什么区别?
我们有一堆共享gulp逻辑的应用程序,所以我们制作了一个包含大量自定义任务的gulp插件.
但是我们想避免为我们开发的每个应用程序安装gulp +我们的插件(以及一半的互联网).
理想情况下,我想做:
npm install -g gulp
npm install -g <our gulp plugin>
Run Code Online (Sandbox Code Playgroud)
然后对于每个应用程序,我们只需要做:
npm link gulp
npm link <our gulp plugin>
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但问题是gulp不再能识别我们的任何自定义gulp任务.我运行的任何gulp命令都会导致:
[15:16:51] Using gulpfile /workspace/my-app/gulpfile.js
[15:16:51] Task 'dev' is not in your gulpfile
[15:16:51] Please check the documentation for proper gulpfile formatting
Run Code Online (Sandbox Code Playgroud)
'dev'任务在我的gulp插件中,为什么不找到它?我的gulpfile.js只有这个:
var gulp = require('gulp');
var mygulpplugin = require('mygulpplugin');
Run Code Online (Sandbox Code Playgroud)
当gulp +插件在本地安装时,完全相同的过程有效.有什么想法吗?
我最近发布了一个更新到我的Android应用程序,并获得了大量的崩溃报告,包括以下堆栈.我很茫然,因为堆栈中绝对没有我的代码,所以我不确定如何解决这个问题.有没有人见过这个错误?我能做些什么来解决这个问题或调试它?
java.lang.IndexOutOfBoundsException: setSpan (0 ... 11) ends beyond length 0
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1016)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:592)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
at android.widget.TextView.setSpan_internal(TextView.java:8610)
at android.widget.Editor$SuggestionsPopupWindow.onItemClick(Editor.java:2902)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1128)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2812)
at android.widget.AbsListView$1.run(AbsListView.java:3571)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)
编辑:从堆栈中,它看起来像是通过ListView - > itemClick - >然后尝试使用TextView执行某些操作.我有多个可单击的listViews,其中包含textViews ...我可以在textViews上设置一个属性来阻止这种情况发生吗?
我已经在 Go 中成功设置了 TLS 相互身份验证客户端/服务器一段时间了,但现在希望进行一些小的调整。
具体来说,我想知道是否有一种方法只需要特定的客户端证书即可进行相互身份验证。
我目前正在使用这样的东西:
// Load cert and build pool
caCert, _ := ioutil.ReadFile(caPath)
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
// Require client authentication
tlsConfig := &tls.Config{
ClientAuth: tls.RequireAndVerifyClientCert,
ClientCAs: caCertPool,
}
Run Code Online (Sandbox Code Playgroud)
效果很好,但是如果我正在读取的 PEM 文件实际上是一个证书链(A 由 B 颁发,B 是根 CA),这实际上最终会信任 B 颁发的任何证书,但我不这样做想。
有什么方法可以调整此代码以仅信任特定的 A 证书吗?
看来,如果我只在加载的 PEM 文件中包含 A,服务器握手代码会告诉客户端“将由 A 签名的所有证书发送给我”,这当然不是我想要的,因为证书 A 不是由 A 签名的。
理想情况下,我想说“您特别需要证书 A”才能成功连接。有这样的机制吗?
我有一个GAE +端点在Android客户端和应用引擎后端之间工作.
我现在正处于使用JDO将小图像存储为Blob数据类型的位置.我的模型的后端有以下两种方法:
public byte[] getPicture() {
if (picture == null) {
return null;
}
return picture.getBytes();
}
public void setPicture(byte[] bytes) {
this.picture = new Blob(bytes);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我为Android客户端生成端点时,setPicture(byte [] bytes)方法签名将转换为setPicture(String bytes).
这是一个错误还是打算?如果打算,我该如何将我的图像转换为字符串?
谢谢!
java google-app-engine android google-cloud-endpoints google-cloud-datastore