Archive::Zip::Member is missing desiredCompressionMethod
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- backend, testing-qa
Research direction
Inspect the bundled PerlOnJava Archive::Zip implementation where compressionMethod is registered for member objects, then compare the expected desiredCompressionMethod API described in the issue. Add a project-owned regression test for member compression selection and run IO-StructuredOutput-1.008 t/1.t on both JVM and interpreter backends to verify all 37 tests pass.
Written by the indexing model from the issue text.
Description
Summary
IO-StructuredOutput-1.008 fails its complete upstream test suite on PerlOnJava because the bundled Archive::Zip::Member implementation does not provide the CPAN-compatible desiredCompressionMethod method.
CPAN evidence
- Distribution:
IO-StructuredOutput-1.008 - Failing test:
t/1.t - Archived CPAN tester run:
20260915-125610-17469 - System Perl: PASS, 37/37 tests
- PerlOnJava JVM backend: FAIL, 16/37 tests; exit status 255
- PerlOnJava interpreter backend: FAIL, 16/37 tests; exit status 255
The system-Perl comparison was run in an isolated local library containing the target distribution and its missing pure-Perl dependencies. The full upstream test suite completed successfully there.
Failure
The test reaches the CSV-output case and then aborts when IO::StructuredOutput::output calls:
$member->desiredCompressionMethod(COMPRESSION_DEFLATED);
PerlOnJava reports:
Can't locate object method "desiredCompressionMethod" via package "Archive::Zip::Member"
The failure occurs in both execution backends and is reproducible with the dependency PERL5LIB overlay selected by the CPAN tester.
Expected behavior
Archive::Zip::Member should expose the compression-selection API expected by CPAN Archive::Zip, including desiredCompressionMethod, so the CSV output path completes and t/1.t passes all 37 tests.
Implementation evidence
The bundled PerlOnJava Archive::Zip implementation registers compressionMethod for member objects but does not register or implement desiredCompressionMethod. The Java-backed ZIP writer already supports stored and deflated compression methods, so this appears to be an API compatibility omission rather than an upstream or environment failure.
Environment
- PerlOnJava commit:
1ac22252c2ed069829f8769b9ceeb14372cd163f - macOS Darwin arm64
- OpenJDK 24.0.2
- PerlOnJava reports Perl version 5.044001
Acceptance criteria
- Add
desiredCompressionMethodcompatibility forArchive::Zip::Member. - Add a project-owned regression test covering member compression selection through the PerlOnJava implementation.
- Verify
IO-StructuredOutput-1.008t/1.tpasses on both JVM and interpreter backends.
- Dominant language
- Perl
- Stars
- 64
- Forks
- 6
- Avg merge
- 5h 25m
- Merged PRs (30d)
- 157
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from fglock/PerlOnJava
-
area:cpan-port area:unicode bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
fglock/PerlOnJava#1341 ·
-
area:cpan-port bug
Difficulty 4/5 3-5 days Newbie friendliness 44/100
fglock/PerlOnJava#1459 ·
-
area:cpan-port bug
Difficulty 3/5 1-2 days Newbie friendliness 72/100
fglock/PerlOnJava#1457 ·
-
bug high-impact
Difficulty 3/5 1-2 days Newbie friendliness 67/100
fglock/PerlOnJava#1456 · 1 comment ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 72/100
fglock/PerlOnJava#1455 ·
All issues in fglock/PerlOnJava
Similar issues
-
1.severity: security
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
api7/lua-resty-saml#63 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100