我最近受到一些代码的攻击,这些代码通过我们的部署周期而不会抛出任何编译错误(我们认为)......
有问题的代码使用的Integer.compare是自Java 1.7以来的新静态方法.
服务器环境在Java 1.6上运行.我们的开发环境安装了Java 1.7.
我们的假设是将项目首选项设置为JavaSE-1.6合规性至少会给我们编译有关代码的警告,但是在eclipse中没有可见的警告或错误.
项目>属性> java编译器> JDK合规性>在java构建路径上使用来自执行环境"JavaSE-1.6"的合规性
其次,我们使用maven编译最终部署.pom明确指示遵守1.6编译器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<optimize>true</optimize>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是,maven构建与问题代码成功运行.
当代码在早期的Jvm中不能正常编译时,我怎么能告诉maven和eclipse失败?
谢谢,保罗.
使用subclipse,如何将我较旧的未更改文件提交给其他人的文件的较新版本?
我似乎记得旧版本中存在"覆盖和提交"选项,或者这可能是另一个版本控制产品......
干杯.
我有一个进程应该每 5 分钟将一个文件 ftp 到一个远程位置。
它似乎已经卡住了几个小时并且没有发送文件。
我进行了线程转储以查看发生了什么,这是我线程的状态:
"SPPersister" prio=6 tid=0x03782400 nid=0x16c4 runnable [0x0468f000..0x0468fd14]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
- locked <0x239ebea0> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
- locked <0x239ebea0> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(Unknown Source)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:364)
at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:540)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:178)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:268)
...
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码进行连接:
FTPClient client = new FTPClient();
client.setConnectTimeout(10000);
client.connect(host); // <-- stuck here
client.setDataTimeout(20000);
client.setSoTimeout(20000);
client.login(user, pass);
client.changeWorkingDirectory(dir); …Run Code Online (Sandbox Code Playgroud) 我想写一个Android应用程序,它将是一个后台服务,可以监听特定的手势或按键,然后触发一个动作.甚至可以用服务做这样的事情吗?如果是这样,有人可以指导我正确的方向.我有搜索高低可以似乎找到答案.
可以将表从一个模式移动到另一个模式:
ALTER TABLE my_table SET SCHEMA different_schema;
Run Code Online (Sandbox Code Playgroud)
但是,我找不到将函数从一个模式移动到另一个模式的等效功能.
我怎样才能做到这一点?
(版本8.3+)
有人可以解释为什么以下不能像我期望的那样工作吗?
按下"应该"按钮会导致显示只包含(空)JScrollPane,即输入字段和按钮应该消失.然而,它们一直存在,直到组件调整大小...
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
Container cp = frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(panel));
Component textField = new JTextField("i am input");
JButton button = new JButton(new AbstractAction("i am pressy")
{
@Override
public void actionPerformed(ActionEvent e)
{
// this is already on the EDT
panel.removeAll();
panel.revalidate();
}
});
panel.setLayout(new FlowLayout());
panel.add(textField);
panel.add(button);
frame.pack();
frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.页.
关于时区从夏令时更改为非夏令时的棘手问题,我感到困惑。
我正在尝试生成一系列时间戳,相隔6小时。稍后将其与数据集中具有每天00、06、12、18小时的相应时间戳的数据合并。
使用以下命令可以正常工作:
generate_series(extract(epoch from start_ts)::integer, extract(epoch from end_ts)::integer, 21600)
其中start_ts是第一个日期的00小时,而end_ts是最后一个日期的00小时(不包括)。
但是,当时区偏移量在系列的一半时从+11变为+10时,它将不再与任何记录匹配,因为系列元素变为1小时。
有没有人有关于如何在尊重时区偏移的情况下如何生成与“ 00,06,12,18 hr timestamps”匹配的“ epoch integers”或时间戳的建议?
http://www.postgresql.org/docs/8.4/static/functions-admin.html说:
pg_relation_size
接受表、索引或 Toast 表的 OID 或名称,并返回大小(以字节为单位)
但是,当我将它与有效的表名一起使用时,我收到错误:
列[表] 不存在...
我知道我的桌子存在,因为这样做
SELECT count(*) FROM [table]
Run Code Online (Sandbox Code Playgroud)
返回一个有效的数字。有任何想法吗?
我有2个不同类型的不同地图,这两个地图都是BaseClass.
我希望能够使用相同的逻辑将两个案例中的项目"保存"到地图中,使用Generics.
假设getId是一种方法BaseClass.
我需要强迫
item是的子类BaseClassmap值与该类型相同item我怎样才能做到这一点?这是一次失败的尝试,描述了我需要做的事情:
private <T><?extends BaseClass> void save(T item, Map<Long, T> map)
{
if (item.getId() == null)
{
long max = -1;
for (Long key : map.keySet())
max = Math.max(max, key);
item.setId(max + 1);
}
map.put(item.getId(), item);
}
Run Code Online (Sandbox Code Playgroud) 我有一个模块,它使用 python“线程”进行并发,使用“信号”进行关闭钩子:
signal.signal(signal.SIGINT, self.shutdownhook)
Run Code Online (Sandbox Code Playgroud)
我有另一个使用 dbus 和 gobject 的模块
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
....
GObject.threads_init()
mainloop = GObject.MainLoop()
mainloop.run()
Run Code Online (Sandbox Code Playgroud)
当我单独运行它们时,它们都按预期运行并ctrl+c通过“KeyboardInterrupt”导致终止。
但是,当我将它们一起运行时,主循环终止但从未调用关闭挂钩 - 没有kill -9 pid.
有人可以解释为什么会发生这种情况,以及如何最好地集成这两个模型
这是一个工作示例,它突出了我的问题。我无法仅使用 CTRL+C 退出程序,并且在这种情况下也不会调用关闭挂钩。
import threading
import signal
import sys
from gi.repository import GObject
def runMainloop():
print('running mainloop')
mainloop.run()
def shutdown():
print('shutdown')
def readInput():
print('readInput')
print(sys.stdin.readline())
if __name__ == '__main__':
signal.signal(signal.SIGINT, shutdown)
signal.signal(signal.SIGTERM, shutdown)
GObject.threads_init()
mainloop = GObject.MainLoop()
mainloopThread = threading.Thread(name='mainloop', target=runMainloop)
mainloopThread.setDaemon(True)
mainloopThread.start()
print('started')
inputThread = threading.Thread(name='input', target=readInput)
inputThread.start()
print('started input')
Run Code Online (Sandbox Code Playgroud)