Update downloader with silent Version check -> Error opening media file - java

We use the install4j "Update downloader with silent Version check" to periodically update our application installer.
With the introduction of the "Update downloader with silent Version check", we have noticed two problems from the Users.
Error opening media file as can be seen in the screenshot. The Media file is the file that is downloaded in the 1st Step of the updater. Screenshot below
The error log file mentions
[0:918] extracting files
[0:932] Included files: 16
[3:537] ERROR: Could not open FFFFFFFFFFFFFFFF 32 C:\Users\ttttttttt\Downloads\xxxxxxxxxx_7_xxxx_yy_zz_64Bit.exe
[128:104] emptying C:\Users\ttttttttt\AppData\Local\Temp\e4j8A6C.tmp_dir1662356615
The Users have not opened the downloaded file. Normally clickin on OK and a retry generally works.
The second problem some users are facing
[![enter image description here][2]][2]
The 2nd error mentions that the bgupdater.exe is already running. Even here, clicking on "Wiederholen" generally works and the update proceeds.
What we do not understand is that why these errors arise. A retry proceeds without errors in all cases normally.
The application uses install4j version 8 and java 1.8
[2]: https://i.stack.imgur.com/jVl3I.png

The first problem looks like anti-virus software problem where the anti-virus software detects a .exe file that is extracted to the %TEMP% directory and immediately quarantines it.
For the second problem, please locate the log file of the running bgupdater process which is located in the %TEMP% directory. Either you start the bgupdater process too frequently or it is hanging somewhere, you would need to find that out. To install a new version, all executables of the installation must be closed.

Related

install4j fails to access JRE on remote service

Executing the installation program for a 64-bit Windows client, I'm confronted with a failure when a required JRE is missing and I choose to let it download the JRE from a remote service (which the client, when installed, will communicate with).
My install4j version is 7.0.12 (build 7368).
The install program is configured to bundle with the JRE labelled "Windows (amd64) 12.0.1".
I selected "Dynamic bundle" and an HTTP download from "${compiler:sys.publisherUrl}/jres/windows-amd64-12.0.1.tar.gz".
At the end of the build process, install4j tells me to
make sure that the file
C:\Users\ME.install4j7\jres\windows-amd64-12.0.1.tar.gz can be
downloaded from
https://www.NN.de/jres/windows-amd64-12.0.1.tar.gz
I followed this instruction and to confirm that I did it correctly, I entered https://www.NN.de/jres/windows-amd64-12.0.1.tar.gz in a browser and found that I could download the archive successfully.
When I run the installer, it doesn't find a suitable JRE, offers to download the JRE and tries to get it, but its attempts aren't successful: after a while it times out and then shows an error dialog, informing me about a problem and asking me to check my internet connection and try again. It also points me to a log file, which says
[0:368] Searching for a JVM
(...)
[0:393] Search sequence finished
[0:394] ERROR: No JVM found
[0:395] Download location: https://www.NN.de/jres/windows-amd64-12.0.1.tar.gz
[7:325] Downloading JRE
[7:536] ERROR: HttpQueryInfo (try 1) failed with error code 12150
(...)
[15:805] ERROR: HttpQueryInfo (try 20) failed with error code 12150
[16:255] ERROR: Giving up
My questions are obvious:
What can cause this error? What does "error code 12150" mean? Can a firewall be blocking the request?
What can I do?

java.io.IOException: The system cannot find the path specified

On a particular server (Windows 2012 server R2) I am having trouble creating a temp file. I get the following error everytime I try.
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
etc..
The error happens everytime the following code is ran:
InputStream inputStream = portalBean.createPDF( sessionID, foCode );
Things I have tried
Changed the java.io.tmpdir variable on the fly. System.setProperty("java.io.tmpdir", "C:\\");
Added -Djava.io.tmpdir=c:\\temp to the webnetwork lax file to an unrestricted location.
I tried setting the webNetwork service to run as a specified user with rights to temp files e.g. the Administrator.
Made sure I have free disk space and I cleaned out the c:\windows\temp folder.
Made sure the tmp environment variables were set to their default values.
I also tried running the service from a command prompt which was opened with the Run As Administrator option.
And the IOException lingers still. I have another server running the same code without issue (Windows Server 2012).
Does anyone else have any Ideas of what else I can try to resolve this issue? And or any tips on how I can debug the issue more thoroughly to get a grasp of what is going on?
One tool you can use to debug this is process monitor from system internal tool kit. The step is: add a filter to only monitor your process (I think it is javaw.exe in your case), after the error happens, go through the file activities in the process monitor log, you can find how the process is finding files and which directories the process searched. If the process is searching in the wrong directory, you can find it from the log.
I just used this tool to figure out a JVM crash problem today.
Based on the description of your problem, I guess the path variable of the process is changed in the middle of your code, with another tool process explore you can view the path variable of the process, it might help.
Try and create instead a directory somewhere under your home directory:
final Path tmpdir = Paths.get(System.getProperty("user.home"), "tmp");
Files.createDirectories(tmpdir);
System.setProperty("java.io.tmpdir", tmpdir.toAbsolutePath().toString());
Then try and Files.createTempFile() in there.
Note that if Files.createDirectories() refers to an existing file which is not a directory, you'll get a FileAlreadyExistsException.

Error running Selenium IDE "Error: Permission denied to access property 'nr#context'

Starting this morning (4/3/14), I have been getting errors when my Selenium IDE tests run against my site. These tests were working just fine yesterday. I am running FF 25, Selenium IDE 2.5.0. Whenever it gets to a step where it needs to click or clickandwait, I get this error,
"Error: Permission denied to access property 'nr#context' Filename -> XXXXX, lineNumber -> 5, columnNumber -> 376.
The filename changes depending on what page I happen to be on when running the test. It seems like a javascript error, but I can't see anything in the console. Could there have been a blind update to FF that occurred last night, since all these tests were working flawlessly yesterday afternoon?
Klendathu
I have found it!
In my case the problem with nr#context apear on servers where enabled New Relic monitoring and 'new relic script' present on the page (this script contains ...a="nr#context";...)
New Relic Browser agent v378, which contains a fix for this issue, was released this morning. You may need to restart your application server to pickup the new version.
To verify that you're running it, search the HTML source for 378.min.js

VisualVM Profile at JDK 1.7_21 crashes with "Access denied"

May be you can help me with this problem.
Profiler crashes with "Access denied" message, then i start it for any local application. In a logfile I found:
java.io.IOException: Отказано в доступе
at sun.tools.attach.WindowsVirtualMachine.openProcess(Native Method)
at sun.tools.attach.WindowsVirtualMachine.<init>(WindowsVirtualMachine.java:56)
at sun.tools.attach.WindowsAttachProvider.attachVirtualMachine(WindowsAttachProvider.java:69)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213)
at org.netbeans.modules.profiler.NetBeansProfiler.loadAgentIntoTargetJVM(NetBeansProfiler.java:762)
at org.netbeans.modules.profiler.NetBeansProfiler.attachToApp(NetBeansProfiler.java:734)
at com.sun.tools.visualvm.profiler.ApplicationProfilerView$MasterViewSupport.startProfiling(ApplicationProfilerView.java:309)
at com.sun.tools.visualvm.profiler.ApplicationProfilerView$MasterViewSupport.access$900(ApplicationProfilerView.java:140)
at com.sun.tools.visualvm.profiler.ApplicationProfilerView$MasterViewSupport$3.run(ApplicationProfilerView.java:262)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1372)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1952)
Application runs on the same JVM HotSpot 1.07.0_21 x32 (VisualVM from JDK 1.6 works fine), using just next options:
-client -Xmx1524M
Any suggestions?
UPD: OS is WindowsXP sp3 x32
Have you checked their troubleshooting section?
in particular:
Insufficient permissions for %TMP%\hsperfdata_username folder - make
sure you're able to create a file in the directory and eventually
update the permissions for full folder access. Alternatively you can
just re-create the folder which should automatically set the correct
access rights. See see this forums.sun.com thread for more details.
For me I got below error while creating the heap-dump:
[com.sun.tools.visualvm.attach.AttachModelImpl]: takeHeapDump java.io.IOException: Access is denied
I could manuallya access this folder %TMP%\hsperfdata_username.
Hence I thought of launching the visualVM in Administrator mode,It resolved the issue.
Thanks #Lorenzo for inputs.

java.io.IOException: Permission denied on network folder

i'm having the the post's title error when trying to write a file on a window folder , mounted on unix system. I've developed a web service which runs inside a Tomcat 6 on a linux os and need to write on a windows network folder. System administrators have mounted it on the Linux sever and have no problem to create and modify a file on it.
When i try to execute the posted code i get the following exception :
Permission denied
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:850)
The weird thing is that it seems to be related to the File.createNewFile method on a network folder , in fact the service can write on local file system without problems, both on debug (the pc i use to develop the service) and a tomcat folder system administrators have provided me on the linux server. The file gets created but is empty and the log entry following the create method doesn't get printed. Moreover if i use a plain outputstream to create and write the file i've no problems.
I cannot find any explanation about the exception on the web. Since i'm not very experienced with java , i'd like to understand why i'm getting this error. Am i using it in the wrong way ? Is it a bug of the library ? Do i miss to pass some parameter ?
As stated , i've solved the problem using a plain outputstream, this is a question to improve my understanding of java.
FileOutputStream fos = null;
try{
log.info(String.format("file length: %s",streamAttach.length));
log.info(String.format("check File : %s",filename));
File f = new File(filename);
if(f.exists())
...
boolean done= f.createNewFile();//here comes the exception
//nothing of the following happens
if(!done)
throw new NWSException("error creating file");
log.info(String.format("file %s creato", nomeFile));
thank you in advance for any answer
I ran into this problem recently and found that java.io.File.createNewFile() actually requires the "Change Permissions" permission (you can find this entry under Security->Advanced when checking folder permissions). Without this it will create the file and then subsequently throw an IOException.
It's deceptive because you will still be able to create files on the folder when manually testing, however createNewFile() will still fail if it doesn't have this particular permission (presumably such that it can change the permissions on the file its creating).
If you are using Netapp that shares an NTFS (CIFS) style filesystem to Unix you could be experience "NFS is not allowed to change permissions on a file in an NTFS-style security volume." (TR-3490 page 16)
Options here are to change to a unix filesystem or set the cifs.ntfs_ignore_unix_security_ops flag to on for the file system which quiches the NFS permission error.
java.io.UnixFileSystem.createFileExclusively(Native Method) opens the file with the O_EXCL and 0666 umask so I would get a EACCES, which really was a NFS3RR_ACCES
open("/net/storage01-a/filer/myfile", O_RDWR|O_CREAT|O_EXCL, 0666) Err#13 EACCES
Also you can use OutputStream to create the file, that does not use O_EXCL it seemes
It definitely not Java specific problem. If this Unix folder is mapped to your windows try to open file explorer and create file in this directory. I believe that you will get permission denied too. In this case fix this problem or ask your system administrator to help you.
Good luck!

Categories

Resources