Skip to content

Commit 5afea5a

Browse files
committed
Added exception message about which file contains corrupt mode bits
1 parent 4c63b00 commit 5afea5a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/main/java/org/codehaus/plexus/archiver/util/ArchiveEntryUtils.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,14 @@ public static void chmod( final File file, final int mode, final Logger logger )
146146
private static void applyPermissionsWithJvm( final File file, final String mode, final Logger logger )
147147
throws ArchiverException
148148
{
149-
final FilePermission filePermission = FilePermissionUtils.getFilePermissionFromMode( mode, logger );
149+
final FilePermission filePermission;
150+
try
151+
{
152+
filePermission = FilePermissionUtils.getFilePermissionFromMode(mode, logger);
153+
} catch (IllegalArgumentException e)
154+
{
155+
throw new ArchiverException("Problem getting permission from mode for " + file.getPath(), e);
156+
}
150157

151158
Method method;
152159
try

src/main/java/org/codehaus/plexus/archiver/util/FilePermissionUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public static FilePermission getFilePermissionFromMode( String mode, Logger logg
5757

5858

5959

60-
List modes = new ArrayList(mode.length());
60+
List<String> modes = new ArrayList<String>(mode.length());
6161
for (int i = 0,size = mode.length();i<size;i++)
6262
{
6363
modes.add( String.valueOf( mode.charAt( i ) ) );
@@ -69,7 +69,7 @@ public static FilePermission getFilePermissionFromMode( String mode, Logger logg
6969
// handle user perm
7070
try
7171
{
72-
int userMode = Integer.valueOf((String) modes.get(mode.length() == 4 ? 1 : 0));
72+
int userMode = Integer.valueOf(modes.get(mode.length() == 4 ? 1 : 0));
7373
switch ( userMode )
7474
{
7575
case 0 :
@@ -113,7 +113,7 @@ public static FilePermission getFilePermissionFromMode( String mode, Logger logg
113113
// handle all perm
114114
try
115115
{
116-
int allMode = Integer.valueOf((String) modes.get(mode.length() == 4 ? 3 : 2));
116+
int allMode = Integer.valueOf(modes.get(mode.length() == 4 ? 3 : 2));
117117
switch ( allMode )
118118
{
119119
case 0 :

0 commit comments

Comments
 (0)